06 Jan, 2021

2 commits

  • [ Upstream commit 38dc717e97153e46375ee21797aa54777e5498f3 ]

    Apparently there has been a longstanding race between udev/systemd and
    the module loader. Currently, the module loader sends a uevent right
    after sysfs initialization, but before the module calls its init
    function. However, some udev rules expect that the module has
    initialized already upon receiving the uevent.

    This race has been triggered recently (see link in references) in some
    systemd mount unit files. For instance, the configfs module creates the
    /sys/kernel/config mount point in its init function, however the module
    loader issues the uevent before this happens. sys-kernel-config.mount
    expects to be able to mount /sys/kernel/config upon receipt of the
    module loading uevent, but if the configfs module has not called its
    init function yet, then this directory will not exist and the mount unit
    fails. A similar situation exists for sys-fs-fuse-connections.mount, as
    the fuse sysfs mount point is created during the fuse module's init
    function. If udev is faster than module initialization then the mount
    unit would fail in a similar fashion.

    To fix this race, delay the module KOBJ_ADD uevent until after the
    module has finished calling its init routine.

    References: https://github.com/systemd/systemd/issues/17586
    Reviewed-by: Greg Kroah-Hartman
    Tested-By: Nicolas Morey-Chaisemartin
    Signed-off-by: Jessica Yu
    Signed-off-by: Sasha Levin

    Jessica Yu
     
  • [ Upstream commit 5e8ed280dab9eeabc1ba0b2db5dbe9fe6debb6b5 ]

    If a module fails to load due to an error in prepare_coming_module(),
    the following error handling in load_module() runs with
    MODULE_STATE_COMING in module's state. Fix it by correctly setting
    MODULE_STATE_GOING under "bug_cleanup" label.

    Signed-off-by: Miroslav Benes
    Signed-off-by: Jessica Yu
    Signed-off-by: Sasha Levin

    Miroslav Benes
     

23 Oct, 2020

1 commit


16 Oct, 2020

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big set of char, misc, and other assorted driver subsystem
    patches for 5.10-rc1.

    There's a lot of different things in here, all over the drivers/
    directory. Some summaries:

    - soundwire driver updates

    - habanalabs driver updates

    - extcon driver updates

    - nitro_enclaves new driver

    - fsl-mc driver and core updates

    - mhi core and bus updates

    - nvmem driver updates

    - eeprom driver updates

    - binder driver updates and fixes

    - vbox minor bugfixes

    - fsi driver updates

    - w1 driver updates

    - coresight driver updates

    - interconnect driver updates

    - misc driver updates

    - other minor driver updates

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (396 commits)
    binder: fix UAF when releasing todo list
    docs: w1: w1_therm: Fix broken xref, mistakes, clarify text
    misc: Kconfig: fix a HISI_HIKEY_USB dependency
    LSM: Fix type of id parameter in kernel_post_load_data prototype
    misc: Kconfig: add a new dependency for HISI_HIKEY_USB
    firmware_loader: fix a kernel-doc markup
    w1: w1_therm: make w1_poll_completion static
    binder: simplify the return expression of binder_mmap
    test_firmware: Test partial read support
    firmware: Add request_partial_firmware_into_buf()
    firmware: Store opt_flags in fw_priv
    fs/kernel_file_read: Add "offset" arg for partial reads
    IMA: Add support for file reads without contents
    LSM: Add "contents" flag to kernel_read_file hook
    module: Call security_kernel_post_load_data()
    firmware_loader: Use security_post_load_data()
    LSM: Introduce kernel_post_load_data() hook
    fs/kernel_read_file: Add file_size output argument
    fs/kernel_read_file: Switch buffer size arg to size_t
    fs/kernel_read_file: Remove redundant size argument
    ...

    Linus Torvalds
     

13 Oct, 2020

1 commit

  • Corentin hit the following workqueue warning when running with
    CRYPTO_MANAGER_EXTRA_TESTS:

    WARNING: CPU: 2 PID: 147 at kernel/workqueue.c:1473 __queue_work+0x3b8/0x3d0
    Modules linked in: ghash_generic
    CPU: 2 PID: 147 Comm: modprobe Not tainted
    5.6.0-rc1-next-20200214-00068-g166c9264f0b1-dirty #545
    Hardware name: Pine H64 model A (DT)
    pc : __queue_work+0x3b8/0x3d0
    Call trace:
    __queue_work+0x3b8/0x3d0
    queue_work_on+0x6c/0x90
    do_init_module+0x188/0x1f0
    load_module+0x1d00/0x22b0

    I wasn't able to reproduce on x86 or rpi 3b+.

    This is

    WARN_ON(!list_empty(&work->entry))

    from __queue_work(), and it happens because the init_free_wq work item
    isn't initialized in time for a crypto test that requests the gcm
    module. Some crypto tests were recently moved earlier in boot as
    explained in commit c4741b230597 ("crypto: run initcalls for generic
    implementations earlier"), which went into mainline less than two weeks
    before the Fixes commit.

    Avoid the warning by statically initializing init_free_wq and the
    corresponding llist.

    Link: https://lore.kernel.org/lkml/20200217204803.GA13479@Red/
    Fixes: 1a7b7d922081 ("modules: Use vmalloc special flag")
    Reported-by: Corentin Labbe
    Tested-by: Corentin Labbe
    Tested-on: sun50i-h6-pine-h64
    Tested-on: imx8mn-ddr4-evk
    Tested-on: sun50i-a64-bananapi-m64
    Reviewed-by: Eric Biggers
    Signed-off-by: Daniel Jordan
    Signed-off-by: Jessica Yu

    Daniel Jordan
     

05 Oct, 2020

7 commits

  • To perform partial reads, callers of kernel_read_file*() must have a
    non-NULL file_size argument and a preallocated buffer. The new "offset"
    argument can then be used to seek to specific locations in the file to
    fill the buffer to, at most, "buf_size" per call.

    Where possible, the LSM hooks can report whether a full file has been
    read or not so that the contents can be reasoned about.

    Signed-off-by: Kees Cook
    Link: https://lore.kernel.org/r/20201002173828.2099543-14-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • Now that there is an API for checking loaded contents for modules
    loaded without a file, call into the LSM hooks.

    Signed-off-by: Kees Cook
    Reviewed-by: KP Singh
    Acked-by: Jessica Yu
    Link: https://lore.kernel.org/r/20201002173828.2099543-11-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • There are a few places in the kernel where LSMs would like to have
    visibility into the contents of a kernel buffer that has been loaded or
    read. While security_kernel_post_read_file() (which includes the
    buffer) exists as a pairing for security_kernel_read_file(), no such
    hook exists to pair with security_kernel_load_data().

    Earlier proposals for just using security_kernel_post_read_file() with a
    NULL file argument were rejected (i.e. "file" should always be valid for
    the security_..._file hooks, but it appears at least one case was
    left in the kernel during earlier refactoring. (This will be fixed in
    a subsequent patch.)

    Since not all cases of security_kernel_load_data() can have a single
    contiguous buffer made available to the LSM hook (e.g. kexec image
    segments are separately loaded), there needs to be a way for the LSM to
    reason about its expectations of the hook coverage. In order to handle
    this, add a "contents" argument to the "kernel_load_data" hook that
    indicates if the newly added "kernel_post_load_data" hook will be called
    with the full contents once loaded. That way, LSMs requiring full contents
    can choose to unilaterally reject "kernel_load_data" with contents=false
    (which is effectively the existing hook coverage), but when contents=true
    they can allow it and later evaluate the "kernel_post_load_data" hook
    once the buffer is loaded.

    With this change, LSMs can gain coverage over non-file-backed data loads
    (e.g. init_module(2) and firmware userspace helper), which will happen
    in subsequent patches.

    Additionally prepare IMA to start processing these cases.

    Signed-off-by: Kees Cook
    Reviewed-by: KP Singh
    Link: https://lore.kernel.org/r/20201002173828.2099543-9-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • In preparation for adding partial read support, add an optional output
    argument to kernel_read_file*() that reports the file size so callers
    can reason more easily about their reading progress.

    Signed-off-by: Kees Cook
    Reviewed-by: Mimi Zohar
    Reviewed-by: Luis Chamberlain
    Reviewed-by: James Morris
    Acked-by: Scott Branden
    Link: https://lore.kernel.org/r/20201002173828.2099543-8-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • In preparation for refactoring kernel_read_file*(), remove the redundant
    "size" argument which is not needed: it can be included in the return
    code, with callers adjusted. (VFS reads already cannot be larger than
    INT_MAX.)

    Signed-off-by: Kees Cook
    Reviewed-by: Mimi Zohar
    Reviewed-by: Luis Chamberlain
    Reviewed-by: James Morris
    Acked-by: Scott Branden
    Link: https://lore.kernel.org/r/20201002173828.2099543-6-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     
  • Move kernel_read_file* out of linux/fs.h to its own linux/kernel_read_file.h
    include file. That header gets pulled in just about everywhere
    and doesn't really need functions not related to the general fs interface.

    Suggested-by: Christoph Hellwig
    Signed-off-by: Scott Branden
    Signed-off-by: Kees Cook
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Mimi Zohar
    Reviewed-by: Luis Chamberlain
    Acked-by: Greg Kroah-Hartman
    Acked-by: James Morris
    Link: https://lore.kernel.org/r/20200706232309.12010-2-scott.branden@broadcom.com
    Link: https://lore.kernel.org/r/20201002173828.2099543-4-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Scott Branden
     
  • FIRMWARE_PREALLOC_BUFFER is a "how", not a "what", and confuses the LSMs
    that are interested in filtering between types of things. The "how"
    should be an internal detail made uninteresting to the LSMs.

    Fixes: a098ecd2fa7d ("firmware: support loading into a pre-allocated buffer")
    Fixes: fd90bc559bfb ("ima: based on policy verify firmware signatures (pre-allocated buffer)")
    Fixes: 4f0496d8ffa3 ("ima: based on policy warn about loading firmware (pre-allocated buffer)")
    Signed-off-by: Kees Cook
    Reviewed-by: Mimi Zohar
    Reviewed-by: Luis Chamberlain
    Acked-by: Scott Branden
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20201002173828.2099543-2-keescook@chromium.org
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     

02 Sep, 2020

1 commit

  • When kernel module loading failed, user space only get one of the
    following error messages:

    - ENOEXEC
    This is the most confusing one. From corrupted ELF header to bad
    WRITE|EXEC flags check introduced by in module_enforce_rwx_sections()
    all returns this error number.

    - EPERM
    This is for blacklisted modules. But mod doesn't do extra explain
    on this error either.

    - ENOMEM
    The only error which needs no explain.

    This means, if a user got "Exec format error" from modprobe, it provides
    no meaningful way for the user to debug, and will take extra time
    communicating to get extra info.

    So this patch will add extra error messages for -ENOEXEC and -EPERM
    errors, allowing user to do better debugging and reporting.

    Reviewed-by: Lucas De Marchi
    Signed-off-by: Qu Wenruo
    Signed-off-by: Jessica Yu

    Qu Wenruo
     

01 Sep, 2020

2 commits

  • Add infrastructure for an arch-specific CONFIG_HAVE_STATIC_CALL_INLINE
    option, which is a faster version of CONFIG_HAVE_STATIC_CALL. At
    runtime, the static call sites are patched directly, rather than using
    the out-of-line trampolines.

    Compared to out-of-line static calls, the performance benefits are more
    modest, but still measurable. Steven Rostedt did some tracepoint
    measurements:

    https://lkml.kernel.org/r/20181126155405.72b4f718@gandalf.local.home

    This code is heavily inspired by the jump label code (aka "static
    jumps"), as some of the concepts are very similar.

    For more details, see the comments in include/linux/static_call.h.

    [peterz: simplified interface; merged trampolines]

    Signed-off-by: Josh Poimboeuf
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Ingo Molnar
    Reviewed-by: Steven Rostedt (VMware)
    Cc: Linus Torvalds
    Link: https://lore.kernel.org/r/20200818135804.684334440@infradead.org

    Josh Poimboeuf
     
  • Now that notifiers got unbroken; use the proper interface to handle
    notifier errors and propagate them.

    There were already MODULE_STATE_COMING notifiers that failed; notably:

    - jump_label_module_notifier()
    - tracepoint_module_notify()
    - bpf_event_notify()

    By propagating this error, we fix those users.

    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Ingo Molnar
    Reviewed-by: Miroslav Benes
    Acked-by: Jessica Yu
    Acked-by: Josh Poimboeuf
    Link: https://lore.kernel.org/r/20200818135804.444372853@infradead.org

    Peter Zijlstra
     

15 Aug, 2020

1 commit

  • Pull module updates from Jessica Yu:
    "The most important change would be Christoph Hellwig's patch
    implementing proprietary taint inheritance, in an effort to discourage
    the creation of GPL "shim" modules that interface between GPL symbols
    and proprietary symbols.

    Summary:

    - Have modules that use symbols from proprietary modules inherit the
    TAINT_PROPRIETARY_MODULE taint, in an effort to prevent GPL shim
    modules that are used to circumvent _GPL exports. These are modules
    that claim to be GPL licensed while also using symbols from
    proprietary modules. Such modules will be rejected while non-GPL
    modules will inherit the proprietary taint.

    - Module export space cleanup. Unexport symbols that are unused
    outside of module.c or otherwise used in only built-in code"

    * tag 'modules-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
    modules: inherit TAINT_PROPRIETARY_MODULE
    modules: return licensing information from find_symbol
    modules: rename the licence field in struct symsearch to license
    modules: unexport __module_address
    modules: unexport __module_text_address
    modules: mark each_symbol_section static
    modules: mark find_symbol static
    modules: mark ref_module static
    modules: linux/moduleparam.h: drop duplicated word in a comment

    Linus Torvalds
     

08 Aug, 2020

2 commits

  • …ux/kernel/git/kees/linux

    Pull sysfs module section fix from Kees Cook:
    "Fix sysfs module section output overflow.

    About a month after my kallsyms_show_value() refactoring landed, 0day
    noticed that there was a path through the kernfs binattr read handlers
    that did not have PAGE_SIZEd buffers, and the module "sections" read
    handler made a bad assumption about this, resulting in it stomping on
    memory when reached through small-sized splice() calls.

    I've added a set of tests to find these kinds of regressions more
    quickly in the future as well"

    Sefltests-acked-by: Shuah Khan <skhan@linuxfoundation.org>

    * tag 'kallsyms_show_value-fix-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    selftests: splice: Check behavior of full and short splices
    module: Correctly truncate sysfs sections output

    Linus Torvalds
     
  • The only-root-readable /sys/module/$module/sections/$section files
    did not truncate their output to the available buffer size. While most
    paths into the kernfs read handlers end up using PAGE_SIZE buffers,
    it's possible to get there through other paths (e.g. splice, sendfile).
    Actually limit the output to the "count" passed into the read function,
    and report it back correctly. *sigh*

    Reported-by: kernel test robot
    Link: https://lore.kernel.org/lkml/20200805002015.GE23458@shao2-debian
    Fixes: ed66f991bb19 ("module: Refactor section attr into bin attribute")
    Cc: stable@vger.kernel.org
    Reviewed-by: Greg Kroah-Hartman
    Acked-by: Jessica Yu
    Signed-off-by: Kees Cook

    Kees Cook
     

05 Aug, 2020

1 commit

  • If a TAINT_PROPRIETARY_MODULE exports symbol, inherit the taint flag
    for all modules importing these symbols, and don't allow loading
    symbols from TAINT_PROPRIETARY_MODULE modules if the module previously
    imported gplonly symbols. Add a anti-circumvention devices so people
    don't accidentally get themselves into trouble this way.

    Comment from Greg:
    "Ah, the proven-to-be-illegal "GPL Condom" defense :)"

    [jeyu: pr_info -> pr_err and pr_warn as per discussion]
    Link: http://lore.kernel.org/r/20200730162957.GA22469@lst.de
    Acked-by: Daniel Vetter
    Reviewed-by: Greg Kroah-Hartman
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jessica Yu

    Christoph Hellwig
     

01 Aug, 2020

7 commits


24 Jul, 2020

1 commit

  • dyndbg populates its callsite info into __verbose section, change that
    to a more specific and descriptive name, __dyndbg.

    Also, per checkpatch:
    simplify __attribute(..) to __section(__dyndbg) declaration.

    and 1 spelling fix, decriptor

    Acked-by:
    Signed-off-by: Jim Cromie
    Link: https://lore.kernel.org/r/20200719231058.1586423-6-jim.cromie@gmail.com
    Signed-off-by: Greg Kroah-Hartman

    Jim Cromie
     

10 Jul, 2020

1 commit

  • Pull kallsyms fix from Kees Cook:
    "Refactor kallsyms_show_value() users for correct cred.

    I'm not delighted by the timing of getting these changes to you, but
    it does fix a handful of kernel address exposures, and no one has
    screamed yet at the patches.

    Several users of kallsyms_show_value() were performing checks not
    during "open". Refactor everything needed to gain proper checks
    against file->f_cred for modules, kprobes, and bpf"

    * tag 'kallsyms_show_value-v5.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    selftests: kmod: Add module address visibility test
    bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
    kprobes: Do not expose probe addresses to non-CAP_SYSLOG
    module: Do not expose section addresses to non-CAP_SYSLOG
    module: Refactor section attr into bin attribute
    kallsyms: Refactor kallsyms_show_value() to take cred

    Linus Torvalds
     

09 Jul, 2020

3 commits

  • The printing of section addresses in /sys/module/*/sections/* was not
    using the correct credentials to evaluate visibility.

    Before:

    # cat /sys/module/*/sections/.*text
    0xffffffffc0458000
    ...
    # capsh --drop=CAP_SYSLOG -- -c "cat /sys/module/*/sections/.*text"
    0xffffffffc0458000
    ...

    After:

    # cat /sys/module/*/sections/*.text
    0xffffffffc0458000
    ...
    # capsh --drop=CAP_SYSLOG -- -c "cat /sys/module/*/sections/.*text"
    0x0000000000000000
    ...

    Additionally replaces the existing (safe) /proc/modules check with
    file->f_cred for consistency.

    Reported-by: Dominik Czarnota
    Fixes: be71eda5383f ("module: Fix display of wrong module .text address")
    Cc: stable@vger.kernel.org
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Signed-off-by: Kees Cook

    Kees Cook
     
  • In order to gain access to the open file's f_cred for kallsym visibility
    permission checks, refactor the module section attributes to use the
    bin_attribute instead of attribute interface. Additionally removes the
    redundant "name" struct member.

    Cc: stable@vger.kernel.org
    Reviewed-by: Greg Kroah-Hartman
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Signed-off-by: Kees Cook

    Kees Cook
     
  • In order to perform future tests against the cred saved during open(),
    switch kallsyms_show_value() to operate on a cred, and have all current
    callers pass current_cred(). This makes it very obvious where callers
    are checking the wrong credential in their "read" contexts. These will
    be fixed in the coming patches.

    Additionally switch return value to bool, since it is always used as a
    direct permission check, not a 0-on-success, negative-on-error style
    function return.

    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook

    Kees Cook
     

04 Jul, 2020

1 commit

  • Fix the recently added new __vmalloc_node_range callers to pass the
    correct values as the owner for display in /proc/vmallocinfo.

    Fixes: 800e26b81311 ("x86/hyperv: allocate the hypercall page with only read and execute bits")
    Fixes: 10d5e97c1bf8 ("arm64: use PAGE_KERNEL_ROX directly in alloc_insn_page")
    Fixes: 7a0e27b2a0ce ("mm: remove vmalloc_exec")
    Reported-by: Ard Biesheuvel
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/20200627075649.2455097-1-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

26 Jun, 2020

1 commit

  • Merge vmalloc_exec into its only caller. Note that for !CONFIG_MMU
    __vmalloc_node_range maps to __vmalloc, which directly clears the
    __GFP_HIGHMEM added by the vmalloc_exec stub anyway.

    Link: http://lkml.kernel.org/r/20200618064307.32739-4-hch@lst.de
    Signed-off-by: Christoph Hellwig
    Reviewed-by: David Hildenbrand
    Acked-by: Peter Zijlstra (Intel)
    Cc: Catalin Marinas
    Cc: Dexuan Cui
    Cc: Jessica Yu
    Cc: Vitaly Kuznetsov
    Cc: Wei Liu
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

09 Jun, 2020

1 commit

  • flush_icache_range generally operates on kernel addresses, but for some
    reason m68k needed a set_fs override. Move that into the m68k code
    insted of keeping it in the module loader.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Acked-by: Jessica Yu
    Cc: Alexei Starovoitov
    Cc: Daniel Borkmann
    Cc: Martin KaFai Lau
    Cc: Song Liu
    Cc: Yonghong Song
    Link: http://lkml.kernel.org/r/20200515143646.3857579-30-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

06 Jun, 2020

1 commit


05 Jun, 2020

1 commit

  • Pull livepatching updates from Jiri Kosina:

    - simplifications and improvements for issues Peter Ziljstra found
    during his previous work on W^X cleanups.

    This allows us to remove livepatch arch-specific .klp.arch sections
    and add proper support for jump labels in patched code.

    Also, this patchset removes the last module_disable_ro() usage in the
    tree.

    Patches from Josh Poimboeuf and Peter Zijlstra

    - a few other minor cleanups

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
    MAINTAINERS: add lib/livepatch to LIVE PATCHING
    livepatch: add arch-specific headers to MAINTAINERS
    livepatch: Make klp_apply_object_relocs static
    MAINTAINERS: adjust to livepatch .klp.arch removal
    module: Make module_enable_ro() static again
    x86/module: Use text_mutex in apply_relocate_add()
    module: Remove module_disable_ro()
    livepatch: Remove module_disable_ro() usage
    x86/module: Use text_poke() for late relocations
    s390/module: Use s390_kernel_write() for late relocations
    s390: Change s390_kernel_write() return type to match memcpy()
    livepatch: Prevent module-specific KLP rela sections from referencing vmlinux symbols
    livepatch: Remove .klp.arch
    livepatch: Apply vmlinux-specific KLP relocations early
    livepatch: Disallow vmlinux.ko

    Linus Torvalds
     

04 Jun, 2020

1 commit

  • Pull networking updates from David Miller:

    1) Allow setting bluetooth L2CAP modes via socket option, from Luiz
    Augusto von Dentz.

    2) Add GSO partial support to igc, from Sasha Neftin.

    3) Several cleanups and improvements to r8169 from Heiner Kallweit.

    4) Add IF_OPER_TESTING link state and use it when ethtool triggers a
    device self-test. From Andrew Lunn.

    5) Start moving away from custom driver versions, use the globally
    defined kernel version instead, from Leon Romanovsky.

    6) Support GRO vis gro_cells in DSA layer, from Alexander Lobakin.

    7) Allow hard IRQ deferral during NAPI, from Eric Dumazet.

    8) Add sriov and vf support to hinic, from Luo bin.

    9) Support Media Redundancy Protocol (MRP) in the bridging code, from
    Horatiu Vultur.

    10) Support netmap in the nft_nat code, from Pablo Neira Ayuso.

    11) Allow UDPv6 encapsulation of ESP in the ipsec code, from Sabrina
    Dubroca. Also add ipv6 support for espintcp.

    12) Lots of ReST conversions of the networking documentation, from Mauro
    Carvalho Chehab.

    13) Support configuration of ethtool rxnfc flows in bcmgenet driver,
    from Doug Berger.

    14) Allow to dump cgroup id and filter by it in inet_diag code, from
    Dmitry Yakunin.

    15) Add infrastructure to export netlink attribute policies to
    userspace, from Johannes Berg.

    16) Several optimizations to sch_fq scheduler, from Eric Dumazet.

    17) Fallback to the default qdisc if qdisc init fails because otherwise
    a packet scheduler init failure will make a device inoperative. From
    Jesper Dangaard Brouer.

    18) Several RISCV bpf jit optimizations, from Luke Nelson.

    19) Correct the return type of the ->ndo_start_xmit() method in several
    drivers, it's netdev_tx_t but many drivers were using
    'int'. From Yunjian Wang.

    20) Add an ethtool interface for PHY master/slave config, from Oleksij
    Rempel.

    21) Add BPF iterators, from Yonghang Song.

    22) Add cable test infrastructure, including ethool interfaces, from
    Andrew Lunn. Marvell PHY driver is the first to support this
    facility.

    23) Remove zero-length arrays all over, from Gustavo A. R. Silva.

    24) Calculate and maintain an explicit frame size in XDP, from Jesper
    Dangaard Brouer.

    25) Add CAP_BPF, from Alexei Starovoitov.

    26) Support terse dumps in the packet scheduler, from Vlad Buslov.

    27) Support XDP_TX bulking in dpaa2 driver, from Ioana Ciornei.

    28) Add devm_register_netdev(), from Bartosz Golaszewski.

    29) Minimize qdisc resets, from Cong Wang.

    30) Get rid of kernel_getsockopt and kernel_setsockopt in order to
    eliminate set_fs/get_fs calls. From Christoph Hellwig.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2517 commits)
    selftests: net: ip_defrag: ignore EPERM
    net_failover: fixed rollback in net_failover_open()
    Revert "tipc: Fix potential tipc_aead refcnt leak in tipc_crypto_rcv"
    Revert "tipc: Fix potential tipc_node refcnt leak in tipc_rcv"
    vmxnet3: allow rx flow hash ops only when rss is enabled
    hinic: add set_channels ethtool_ops support
    selftests/bpf: Add a default $(CXX) value
    tools/bpf: Don't use $(COMPILE.c)
    bpf, selftests: Use bpf_probe_read_kernel
    s390/bpf: Use bcr 0,%0 as tail call nop filler
    s390/bpf: Maintain 8-byte stack alignment
    selftests/bpf: Fix verifier test
    selftests/bpf: Fix sample_cnt shared between two threads
    bpf, selftests: Adapt cls_redirect to call csum_level helper
    bpf: Add csum_level helper for fixing up csum levels
    bpf: Fix up bpf_skb_adjust_room helper's skb csum setting
    sfc: add missing annotation for efx_ef10_try_update_nic_stats_vf()
    crypto/chtls: IPv6 support for inline TLS
    Crypto/chcr: Fixes a coccinile check error
    Crypto/chcr: Fixes compilations warnings
    ...

    Linus Torvalds
     

03 Jun, 2020

2 commits

  • Merge updates from Andrew Morton:
    "A few little subsystems and a start of a lot of MM patches.

    Subsystems affected by this patch series: squashfs, ocfs2, parisc,
    vfs. With mm subsystems: slab-generic, slub, debug, pagecache, gup,
    swap, memcg, pagemap, memory-failure, vmalloc, kasan"

    * emailed patches from Andrew Morton : (128 commits)
    kasan: move kasan_report() into report.c
    mm/mm_init.c: report kasan-tag information stored in page->flags
    ubsan: entirely disable alignment checks under UBSAN_TRAP
    kasan: fix clang compilation warning due to stack protector
    x86/mm: remove vmalloc faulting
    mm: remove vmalloc_sync_(un)mappings()
    x86/mm/32: implement arch_sync_kernel_mappings()
    x86/mm/64: implement arch_sync_kernel_mappings()
    mm/ioremap: track which page-table levels were modified
    mm/vmalloc: track which page-table levels were modified
    mm: add functions to track page directory modifications
    s390: use __vmalloc_node in stack_alloc
    powerpc: use __vmalloc_node in alloc_vm_stack
    arm64: use __vmalloc_node in arch_alloc_vmap_stack
    mm: remove vmalloc_user_node_flags
    mm: switch the test_vmalloc module to use __vmalloc_node
    mm: remove __vmalloc_node_flags_caller
    mm: remove both instances of __vmalloc_node_flags
    mm: remove the prot argument to __vmalloc_node
    mm: remove the pgprot argument to __vmalloc
    ...

    Linus Torvalds
     
  • The pgprot argument to __vmalloc is always PAGE_KERNEL now, so remove it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Reviewed-by: Michael Kelley [hyperv]
    Acked-by: Gao Xiang [erofs]
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Wei Liu
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-22-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

02 Jun, 2020

1 commit

  • Pull ARM updates from Russell King:

    - remove a now unnecessary usage of the KERNEL_DS for
    sys_oabi_epoll_ctl()

    - update my email address in a number of drivers

    - decompressor EFI updates from Ard Biesheuvel

    - module unwind section handling updates

    - sparsemem Kconfig cleanups

    - make act_mm macro respect THREAD_SIZE

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8980/1: Allow either FLATMEM or SPARSEMEM on the multiplatform build
    ARM: 8979/1: Remove redundant ARCH_SPARSEMEM_DEFAULT setting
    ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
    ARM: decompressor: run decompressor in place if loaded via UEFI
    ARM: decompressor: move GOT into .data for EFI enabled builds
    ARM: decompressor: defer loading of the contents of the LC0 structure
    ARM: decompressor: split off _edata and stack base into separate object
    ARM: decompressor: move headroom variable out of LC0
    ARM: 8976/1: module: allow arch overrides for .init section names
    ARM: 8975/1: module: fix handling of unwind init sections
    ARM: 8974/1: use SPARSMEM_STATIC when SPARSEMEM is enabled
    ARM: 8971/1: replace the sole use of a symbol with its definition
    ARM: 8969/1: decompressor: simplify libfdt builds
    Update rmk's email address in various drivers
    ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()

    Linus Torvalds