Skip to content
Permalink
Youling-Tang/M…
Switch branches/tags

Commits on Apr 19, 2021

  1. MIPS: Fix cmdline "mem=" parameter parsing

    This problem may only occur on NUMA platforms. When machine start with the
    "mem=" parameter on Loongson64, it cannot boot. When parsing the "mem="
    parameter, first remove all RAM, and then add memory through memblock_add(),
    which causes the newly added memory to be located on MAX_NUMNODES.
    
    The solution is to add the current "mem=" parameter range to the memory area
    of the corresponding node, instead of adding all of it to the MAX_NUMNODES
    node area. Get the node number corresponding to the "mem=" parameter range
    through pa_to_nid(), and then add it to the corresponding node through
    memblock_add_node().
    
    Signed-off-by: Jinyang He <hejinyang@loongson.cn>
    Signed-off-by: Youling Tang <tangyouling@loongson.cn>
    Youling Tang authored and intel-lab-lkp committed Apr 19, 2021

Commits on Apr 18, 2021

  1. Linux 5.12-rc8

    torvalds committed Apr 18, 2021
  2. Merge tag 'arm-fixes-5.12-3' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/soc/soc
    
    Pull ARM SoC fixes from Arnd Bergmann:
     "Another smaller set of fixes for three of the Arm platforms:
    
      TI OMAP:
    
         Fix swapped mmc device order also for omap3 that got changed with
         the recent PROBE_PREFER_ASYNCHRONOUS changes. While eventually the
         aliases should be board specific, all the mmc device instances are
         all there in the SoC, and we do probe them by default so that PM
         runtime can idle the devices if left enabled from the bootloader.
    
      Qualcomm Snapdragon:
    
         This bypasses the recently introduced interconnect handling in
         the GENI (serial engine) driver when running off ACPI, as this
         causes the GENI probe to fail and the Lenovo Yoga C630 to boot
         without keyboard and touchpad.
    
      Allwinner:
    
         One 32kHz clock fix for the beelink gs1, a CD polarity fix for the
         SoPine, some MAINTAINERS maintainance, and a clk / reset switch to
         our headers"
    
    * tag 'arm-fixes-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
      arm64: dts: allwinner: h6: beelink-gs1: Remove ext. 32 kHz osc reference
      MAINTAINERS: Match on allwinner keyword
      MAINTAINERS: Add our new mailing-list
      arm64: dts: allwinner: Fix SD card CD GPIO for SOPine systems
      arm64: dts: allwinner: h6: Switch to macros for RSB clock/reset indices
      ARM: OMAP2+: Fix uninitialized sr_inst
      ARM: dts: Fix swapped mmc order for omap3
      ARM: OMAP2+: Fix warning for omap_init_time_of()
      soc: qcom: geni: shield geni_icc_get() for ACPI boot
    torvalds committed Apr 18, 2021
  3. Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm

    Pull ARM fixes from Russell King:
    
     - Halve maximum number of CPUs if DEBUG_KMAP_LOCAL is enabled
    
     - Fix conversion for_each_membock() to for_each_mem_range()
    
     - Fix footbridge PCI mapping
    
     - Avoid uprobes hooking on thumb instructions
    
    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
      ARM: 9071/1: uprobes: Don't hook on thumb instructions
      ARM: footbridge: fix PCI interrupt mapping
      ARM: 9069/1: NOMMU: Fix conversion for_each_membock() to for_each_mem_range()
      ARM: 9063/1: mm: reduce maximum number of CPUs if DEBUG_KMAP_LOCAL is enabled
    torvalds committed Apr 18, 2021
  4. ARM: 9071/1: uprobes: Don't hook on thumb instructions

    Since uprobes is not supported for thumb, check that the thumb bit is
    not set when matching the uprobes instruction hooks.
    
    The Arm UDF instructions used for uprobes triggering
    (UPROBE_SWBP_ARM_INSN and UPROBE_SS_ARM_INSN) coincidentally share the
    same encoding as a pair of unallocated 32-bit thumb instructions (not
    UDF) when the condition code is 0b1111 (0xf). This in effect makes it
    possible to trigger the uprobes functionality from thumb, and at that
    using two unallocated instructions which are not permanently undefined.
    
    Signed-off-by: Fredrik Strupe <fredrik@strupe.net>
    Cc: stable@vger.kernel.org
    Fixes: c7edc9e ("ARM: add uprobes support")
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    frestr authored and Russell King committed Apr 18, 2021
  5. Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/jejb/scsi
    
    Pull SCSI fixes from James Bottomley:
     "Two fixes: the libsas fix is for a problem that occurs when trying to
      change the cache type of an ATA device and the libiscsi one is a
      regression fix from this merge window"
    
    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
      scsi: libsas: Reset num_scatter if libata marks qc as NODATA
      scsi: iscsi: Fix iSCSI cls conn state
    torvalds committed Apr 18, 2021
  6. Merge tag 'drm-fixes-2021-04-18' of git://anongit.freedesktop.org/drm…

    …/drm
    
    Pull vmwgfx fixes from Dave Airlie:
     "This contains two regression fixes for vmwgfx, one due to a refactor
      which meant locks were being used before initialisation, and the other
      in fixing up some warnings from the core when destroying pinned
      buffers.
    
      vmwgfx:
    
       - fixed unpinning before destruction
    
       - lockdep init reordering"
    
    * tag 'drm-fixes-2021-04-18' of git://anongit.freedesktop.org/drm/drm:
      drm/vmwgfx: Make sure bo's are unpinned before putting them back
      drm/vmwgfx: Fix the lockdep breakage
      drm/vmwgfx: Make sure we unpin no longer needed buffers
    torvalds committed Apr 18, 2021

Commits on Apr 17, 2021

  1. Merge tag 'vmwgfx-fixes-2021-04-14' of gitlab.freedesktop.org:zack/vm…

    …wgfx into drm-fixes
    
    vmwgfx fixes for regressions in 5.12
    
    Here's a set of 3 patches fixing ugly regressions
    in the vmwgfx driver. We broke lock initialization
    code and ended up using spinlocks before initialization
    breaking lockdep.
    Also there was a bit of a fallout from drm changes
    which made the core validate that unreferenced buffers
    have been unpinned. vmwgfx pinning code predates a lot
    of the core drm and wasn't written to account for those
    semantics. Fortunately changes required to fix it
    are not too intrusive.
    The changes have been validated by our internal ci.
    
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    From: Zack Rusin <zackr@vmware.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/f7add0a2-162e-3bd2-b1be-344a94f2acbf@vmware.com
    airlied committed Apr 17, 2021
  2. Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/wsa/linux
    
    Pull i2c fix from Wolfram Sang:
     "One more driver bugfix for I2C"
    
    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
      i2c: mv64xxx: Fix random system lock caused by runtime PM
    torvalds committed Apr 17, 2021
  3. readdir: make sure to verify directory entry for legacy interfaces too

    This does the directory entry name verification for the legacy
    "fillonedir" (and compat) interface that goes all the way back to the
    dark ages before we had a proper dirent, and the readdir() system call
    returned just a single entry at a time.
    
    Nobody should use this interface unless you still have binaries from
    1991, but let's do it right.
    
    This came up during discussions about unsafe_copy_to_user() and proper
    checking of all the inputs to it, as the networking layer is looking to
    use it in a few new places.  So let's make sure the _old_ users do it
    all right and proper, before we add new ones.
    
    See also commit 8a23eb8 ("Make filldir[64]() verify the directory
    entry filename is valid") which did the proper modern interfaces that
    people actually use. It had a note:
    
        Note that I didn't bother adding the checks to any legacy interfaces
        that nobody uses.
    
    which this now corrects.  Note that we really don't care about POSIX and
    the presense of '/' in a directory entry, but verify_dirent_name() also
    ends up doing the proper name length verification which is what the
    input checking discussion was about.
    
    [ Another option would be to remove the support for this particular very
      old interface: any binaries that use it are likely a.out binaries, and
      they will no longer run anyway since we removed a.out binftm support
      in commit eac6165 ("x86: Deprecate a.out support").
    
      But I'm not sure which came first: getdents() or ELF support, so let's
      pretend somebody might still have a working binary that uses the
      legacy readdir() case.. ]
    
    Link: https://lore.kernel.org/lkml/CAHk-=wjbvzCAhAtvG0d81W5o0-KT5PPTHhfJ5ieDFq+bGtgOYg@mail.gmail.com/
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Apr 17, 2021
  4. Merge tag 'net-5.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes from Jakub Kicinski:
     "Networking fixes for 5.12-rc8, including fixes from netfilter, and
      bpf. BPF verifier changes stand out, otherwise things have slowed
      down.
    
      Current release - regressions:
    
       - gro: ensure frag0 meets IP header alignment
    
       - Revert "net: stmmac: re-init rx buffers when mac resume back"
    
       - ethernet: macb: fix the restore of cmp registers
    
      Previous releases - regressions:
    
       - ixgbe: Fix NULL pointer dereference in ethtool loopback test
    
       - ixgbe: fix unbalanced device enable/disable in suspend/resume
    
       - phy: marvell: fix detection of PHY on Topaz switches
    
       - make tcp_allowed_congestion_control readonly in non-init netns
    
       - xen-netback: Check for hotplug-status existence before watching
    
      Previous releases - always broken:
    
       - bpf: mitigate a speculative oob read of up to map value size by
         tightening the masking window
    
       - sctp: fix race condition in sctp_destroy_sock
    
       - sit, ip6_tunnel: Unregister catch-all devices
    
       - netfilter: nftables: clone set element expression template
    
       - netfilter: flowtable: fix NAT IPv6 offload mangling
    
       - net: geneve: check skb is large enough for IPv4/IPv6 header
    
       - netlink: don't call ->netlink_bind with table lock held"
    
    * tag 'net-5.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (52 commits)
      netlink: don't call ->netlink_bind with table lock held
      MAINTAINERS: update my email
      bpf: Update selftests to reflect new error states
      bpf: Tighten speculative pointer arithmetic mask
      bpf: Move sanitize_val_alu out of op switch
      bpf: Refactor and streamline bounds check into helper
      bpf: Improve verifier error messages for users
      bpf: Rework ptr_limit into alu_limit and add common error path
      bpf: Ensure off_reg has no mixed signed bounds for all types
      bpf: Move off_reg into sanitize_ptr_alu
      bpf: Use correct permission flag for mixed signed bounds arithmetic
      ch_ktls: do not send snd_una update to TCB in middle
      ch_ktls: tcb close causes tls connection failure
      ch_ktls: fix device connection close
      ch_ktls: Fix kernel panic
      i40e: fix the panic when running bpf in xdpdrv mode
      net/mlx5e: fix ingress_ifindex check in mlx5e_flower_parse_meta
      net/mlx5e: Fix setting of RS FEC mode
      net/mlx5: Fix setting of devlink traps in switchdev mode
      Revert "net: stmmac: re-init rx buffers when mac resume back"
      ...
    torvalds committed Apr 17, 2021
  5. Merge tag 'libnvdimm-fixes-for-5.12-rc8' of git://git.kernel.org/pub/…

    …scm/linux/kernel/git/nvdimm/nvdimm
    
    Pull libnvdimm fixes from Dan Williams:
     "The largest change is for a regression that landed during -rc1 for
      block-device read-only handling. Vaibhav found a new use for the
      ability (originally introduced by virtio_pmem) to call back to the
      platform to flush data, but also found an original bug in that
      implementation. Lastly, Arnd cleans up some compile warnings in dax.
    
      This has all appeared in -next with no reported issues.
    
      Summary:
    
       - Fix a regression of read-only handling in the pmem driver
    
       - Fix a compile warning
    
       - Fix support for platform cache flush commands on powerpc/papr"
    
    * tag 'libnvdimm-fixes-for-5.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
      libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC
      libnvdimm: Notify disk drivers to revalidate region read-only
      dax: avoid -Wempty-body warnings
    torvalds committed Apr 17, 2021
  6. Merge tag 'cxl-fixes-for-5.12-rc8' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/cxl/cxl
    
    Pull CXL memory class fixes from Dan Williams:
     "A collection of fixes for the CXL memory class driver introduced in
      this release cycle.
    
      The driver was primarily developed on a work-in-progress QEMU
      emulation of the interface and we have since found a couple places
      where it hid spec compliance bugs in the driver, or had a spec
      implementation bug itself.
    
      The biggest change here is replacing a percpu_ref with an rwsem to
      cleanup a couple bugs in the error unwind path during ioctl device
      init. Lastly there were some minor cleanups to not export the
      power-management sysfs-ABI for the ioctl device, use the proper sysfs
      helper for emitting values, and prevent subtle bugs as new
      administration commands are added to the supported list.
    
      The bulk of it has appeared in -next save for the top commit which was
      found today and validated on a fixed-up QEMU model.
    
      Summary:
    
       - Fix support for CXL memory devices with registers offset from the
         BAR base.
    
       - Fix the reporting of device capacity.
    
       - Fix the driver commands list definition to be disconnected from the
         UAPI command list.
    
       - Replace percpu_ref with rwsem to fix initialization error path.
    
       - Fix leaks in the driver initialization error path.
    
       - Drop the power/ directory from CXL device sysfs.
    
       - Use the recommended sysfs helper for attribute 'show'
         implementations"
    
    * tag 'cxl-fixes-for-5.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
      cxl/mem: Fix memory device capacity probing
      cxl/mem: Fix register block offset calculation
      cxl/mem: Force array size of mem_commands[] to CXL_MEM_COMMAND_ID_MAX
      cxl/mem: Disable cxl device power management
      cxl/mem: Do not rely on device_add() side effects for dev_set_name() failures
      cxl/mem: Fix synchronization mechanism for device removal vs ioctl operations
      cxl/mem: Use sysfs_emit() for attribute show routines
    torvalds committed Apr 17, 2021
  7. Merge branch 'akpm' (patches from Andrew)

    Merge misc fixes from Andrew Morton:
     "12 patches.
    
      Subsystems affected by this patch series: mm (documentation, kasan,
      and pagemap), csky, ia64, gcov, and lib"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
      lib: remove "expecting prototype" kernel-doc warnings
      gcov: clang: fix clang-11+ build
      mm: ptdump: fix build failure
      mm/mapping_dirty_helpers: guard hugepage pud's usage
      ia64: tools: remove duplicate definition of ia64_mf() on ia64
      ia64: tools: remove inclusion of ia64-specific version of errno.h header
      ia64: fix discontig.c section mismatches
      ia64: remove duplicate entries in generic_defconfig
      csky: change a Kconfig symbol name to fix e1000 build error
      kasan: remove redundant config option
      kasan: fix hwasan build for gcc
      mm: eliminate "expecting prototype" kernel-doc warnings
    torvalds committed Apr 17, 2021
  8. cxl/mem: Fix memory device capacity probing

    The CXL Identify Memory Device output payload emits capacity in 256MB
    units. The driver is treating the capacity field as bytes. This was
    missed because QEMU reports bytes when it should report bytes / 256MB.
    
    Fixes: 8adaf74 ("cxl/mem: Find device capabilities")
    Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
    Cc: Ben Widawsky <ben.widawsky@intel.com>
    Link: https://lore.kernel.org/r/161862021044.3259705.7008520073059739760.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    djbw committed Apr 17, 2021
  9. netlink: don't call ->netlink_bind with table lock held

    When I added support to allow generic netlink multicast groups to be
    restricted to subscribers with CAP_NET_ADMIN I was unaware that a
    genl_bind implementation already existed in the past.
    
    It was reverted due to ABBA deadlock:
    
    1. ->netlink_bind gets called with the table lock held.
    2. genetlink bind callback is invoked, it grabs the genl lock.
    
    But when a new genl subsystem is (un)registered, these two locks are
    taken in reverse order.
    
    One solution would be to revert again and add a comment in genl
    referring 1e82a62, "genetlink: remove genl_bind").
    
    This would need a second change in mptcp to not expose the raw token
    value anymore, e.g.  by hashing the token with a secret key so userspace
    can still associate subflow events with the correct mptcp connection.
    
    However, Paolo Abeni reminded me to double-check why the netlink table is
    locked in the first place.
    
    I can't find one.  netlink_bind() is already called without this lock
    when userspace joins a group via NETLINK_ADD_MEMBERSHIP setsockopt.
    Same holds for the netlink_unbind operation.
    
    Digging through the history, commit f773608
    ("netlink: access nlk groups safely in netlink bind and getname")
    expanded the lock scope.
    
    commit 3a20773 ("net: netlink: cap max groups which will be considered in netlink_bind()")
    ... removed the nlk->ngroups access that the lock scope
    extension was all about.
    
    Reduce the lock scope again and always call ->netlink_bind without
    the table lock.
    
    The Fixes tag should be vs. the patch mentioned in the link below,
    but that one got squash-merged into the patch that came earlier in the
    series.
    
    Fixes: 4d54cc3 ("mptcp: avoid lock_fast usage in accept path")
    Link: https://lore.kernel.org/mptcp/20210213000001.379332-8-mathew.j.martineau@linux.intel.com/T/#u
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Cc: Xin Long <lucien.xin@gmail.com>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Cc: Sean Tranchetti <stranche@codeaurora.org>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Cc: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Florian Westphal authored and davem330 committed Apr 17, 2021

Commits on Apr 16, 2021

  1. Merge tag 'io_uring-5.12-2021-04-16' of git://git.kernel.dk/linux-block

    Pull io_uring fix from Jens Axboe:
     "Fix for a potential hang at exit with SQPOLL from Pavel"
    
    * tag 'io_uring-5.12-2021-04-16' of git://git.kernel.dk/linux-block:
      io_uring: fix early sqd_list removal sqpoll hangs
    torvalds committed Apr 16, 2021
  2. lib: remove "expecting prototype" kernel-doc warnings

    Fix various kernel-doc warnings in lib/ due to missing or erroneous
    function names.
    
    Add kernel-doc for some function parameters that was missing.  Use
    kernel-doc "Return:" notation in earlycpio.c.
    
    Quietens the following warnings:
    
      lib/earlycpio.c:61: warning: expecting prototype for cpio_data find_cpio_data(). Prototype was for find_cpio_data() instead
    
      lib/lru_cache.c:640: warning: expecting prototype for lc_dump(). Prototype was for lc_seq_dump_details() instead
      lru_cache.c:90: warning: Function parameter or member 'cache' not described in 'lc_create'
    
      lib/parman.c:368: warning: expecting prototype for parman_item_del(). Prototype was for parman_item_remove() instead
      parman.c:309: warning: Excess function parameter 'prority' description in 'parman_prio_init'
    
      lib/radix-tree.c:703: warning: expecting prototype for __radix_tree_insert(). Prototype was for radix_tree_insert() instead
      radix-tree.c:180: warning: Excess function parameter 'addr' description in 'radix_tree_find_next_bit'
      radix-tree.c:180: warning: Excess function parameter 'size' description in 'radix_tree_find_next_bit'
      radix-tree.c:931: warning: Function parameter or member 'iter' not described in 'radix_tree_iter_replace'
    
    Link: https://lkml.kernel.org/r/20210411221756.15461-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Philipp Reisner <philipp.reisner@linbit.com>
    Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
    Cc: Jiri Pirko <jiri@nvidia.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    rddunlap authored and torvalds committed Apr 16, 2021
  3. gcov: clang: fix clang-11+ build

    With clang-11+, the code is broken due to my kvmalloc() conversion
    (which predated the clang-11 support code) leaving one vmalloc() in
    place.  Fix that.
    
    Link: https://lkml.kernel.org/r/20210412214210.6e1ecca9cdc5.I24459763acf0591d5e6b31c7e3a59890d802f79c@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    jmberg-intel authored and torvalds committed Apr 16, 2021
  4. mm: ptdump: fix build failure

    READ_ONCE() cannot be used for reading PTEs.  Use ptep_get() instead, to
    avoid the following errors:
    
        CC      mm/ptdump.o
      In file included from <command-line>:
      mm/ptdump.c: In function 'ptdump_pte_entry':
      include/linux/compiler_types.h:320:38: error: call to '__compiletime_assert_207' declared with attribute error: Unsupported access size for {READ,WRITE}_ONCE().
        320 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
            |                                      ^
      include/linux/compiler_types.h:301:4: note: in definition of macro '__compiletime_assert'
        301 |    prefix ## suffix();    \
            |    ^~~~~~
      include/linux/compiler_types.h:320:2: note: in expansion of macro '_compiletime_assert'
        320 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
            |  ^~~~~~~~~~~~~~~~~~~
      include/asm-generic/rwonce.h:36:2: note: in expansion of macro 'compiletime_assert'
         36 |  compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
            |  ^~~~~~~~~~~~~~~~~~
      include/asm-generic/rwonce.h:49:2: note: in expansion of macro 'compiletime_assert_rwonce_type'
         49 |  compiletime_assert_rwonce_type(x);    \
            |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      mm/ptdump.c:114:14: note: in expansion of macro 'READ_ONCE'
        114 |  pte_t val = READ_ONCE(*pte);
            |              ^~~~~~~~~
      make[2]: *** [mm/ptdump.o] Error 1
    
    See commit 481e980 ("mm: Allow arches to provide ptep_get()") and
    commit c0e1c8c ("powerpc/8xx: Provide ptep_get() with 16k pages")
    for details.
    
    Link: https://lkml.kernel.org/r/912b349e2bcaa88939904815ca0af945740c6bd4.1618478922.git.christophe.leroy@csgroup.eu
    Fixes: 30d621f ("mm: add generic ptdump")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Steven Price <steven.price@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    chleroy authored and torvalds committed Apr 16, 2021
  5. mm/mapping_dirty_helpers: guard hugepage pud's usage

    Mapping dirty helpers have, so far, been only used on X86, but a port of
    vmwgfx to ARM64 exposed a problem which results in a compilation error
    on ARM64 systems:
    
      mm/mapping_dirty_helpers.c: In function `wp_clean_pud_entry':
      mm/mapping_dirty_helpers.c:172:32: error: implicit declaration of function `pud_dirty'; did you mean `pmd_dirty'? [-Werror=implicit-function-declaration]
    
    This is due to the fact that mapping_dirty_helpers code assumes that
    pud_dirty is always defined, which is not the case for architectures
    that don't define CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD.
    
    ARM64 arch is a little inconsistent when it comes to PUD hugepage
    helpers, e.g. it defines pud_young but not pud_dirty but regardless of
    that the core kernel code shouldn't assume that any of the PUD hugepage
    helpers are available unless CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
    is defined.  This prevents compilation errors whenever one of the
    drivers is ported to new architectures.
    
    Link: https://lkml.kernel.org/r/20210409165151.694574-1-zackr@vmware.com
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Reviewed-by: Thomas Hellstrm (Intel) <thomas_os@shipmail.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    zackr authored and torvalds committed Apr 16, 2021
  6. ia64: tools: remove duplicate definition of ia64_mf() on ia64

    The ia64_mf() macro defined in tools/arch/ia64/include/asm/barrier.h is
    already defined in <asm/gcc_intrin.h> on ia64 which causes libbpf
    failing to build:
    
        CC       /usr/src/linux/tools/bpf/bpftool//libbpf/staticobjs/libbpf.o
      In file included from /usr/src/linux/tools/include/asm/barrier.h:24,
                       from /usr/src/linux/tools/include/linux/ring_buffer.h:4,
                       from libbpf.c:37:
      /usr/src/linux/tools/include/asm/../../arch/ia64/include/asm/barrier.h:43: error: "ia64_mf" redefined [-Werror]
         43 | #define ia64_mf()       asm volatile ("mf" ::: "memory")
            |
      In file included from /usr/include/ia64-linux-gnu/asm/intrinsics.h:20,
                       from /usr/include/ia64-linux-gnu/asm/swab.h:11,
                       from /usr/include/linux/swab.h:8,
                       from /usr/include/linux/byteorder/little_endian.h:13,
                       from /usr/include/ia64-linux-gnu/asm/byteorder.h:5,
                       from /usr/src/linux/tools/include/uapi/linux/perf_event.h:20,
                       from libbpf.c:36:
      /usr/include/ia64-linux-gnu/asm/gcc_intrin.h:382: note: this is the location of the previous definition
        382 | #define ia64_mf() __asm__ volatile ("mf" ::: "memory")
            |
      cc1: all warnings being treated as errors
    
    Thus, remove the definition from tools/arch/ia64/include/asm/barrier.h.
    
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    glaubitz authored and torvalds committed Apr 16, 2021
  7. ia64: tools: remove inclusion of ia64-specific version of errno.h header

    There is no longer an ia64-specific version of the errno.h header below
    arch/ia64/include/uapi/asm/, so trying to build tools/bpf fails with:
    
        CC       /usr/src/linux/tools/bpf/bpftool/btf_dumper.o
      In file included from /usr/src/linux/tools/include/linux/err.h:8,
                       from btf_dumper.c:11:
      /usr/src/linux/tools/include/uapi/asm/errno.h:13:10: fatal error: ../../../arch/ia64/include/uapi/asm/errno.h: No such file or directory
         13 | #include "../../../arch/ia64/include/uapi/asm/errno.h"
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
    
    Thus, just remove the inclusion of the ia64-specific errno.h so that the
    build will use the generic errno.h header on this target which was used
    there anyway as the ia64-specific errno.h was just a wrapper for the
    generic header.
    
    Fixes: c25f867 ("ia64: remove unneeded uapi asm-generic wrappers")
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    John Paul Adrian Glaubitz authored and torvalds committed Apr 16, 2021
  8. ia64: fix discontig.c section mismatches

    Fix IA64 discontig.c Section mismatch warnings.
    
    When CONFIG_SPARSEMEM=y and CONFIG_MEMORY_HOTPLUG=y, the functions
    computer_pernodesize() and scatter_node_data() should not be marked as
    __meminit because they are needed after init, on any memory hotplug
    event.  Also, early_nr_cpus_node() is called by compute_pernodesize(),
    so early_nr_cpus_node() cannot be __meminit either.
    
      WARNING: modpost: vmlinux.o(.text.unlikely+0x1612): Section mismatch in reference from the function arch_alloc_nodedata() to the function .meminit.text:compute_pernodesize()
      The function arch_alloc_nodedata() references the function __meminit compute_pernodesize().
      This is often because arch_alloc_nodedata lacks a __meminit annotation or the annotation of compute_pernodesize is wrong.
    
      WARNING: modpost: vmlinux.o(.text.unlikely+0x1692): Section mismatch in reference from the function arch_refresh_nodedata() to the function .meminit.text:scatter_node_data()
      The function arch_refresh_nodedata() references the function __meminit scatter_node_data().
      This is often because arch_refresh_nodedata lacks a __meminit annotation or the annotation of scatter_node_data is wrong.
    
      WARNING: modpost: vmlinux.o(.text.unlikely+0x1502): Section mismatch in reference from the function compute_pernodesize() to the function .meminit.text:early_nr_cpus_node()
      The function compute_pernodesize() references the function __meminit early_nr_cpus_node().
      This is often because compute_pernodesize lacks a __meminit annotation or the annotation of early_nr_cpus_node is wrong.
    
    Link: https://lkml.kernel.org/r/20210411001201.3069-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Mike Rapoport <rppt@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    rddunlap authored and torvalds committed Apr 16, 2021
  9. ia64: remove duplicate entries in generic_defconfig

    Fix ia64 generic_defconfig duplicate entries, as warned by:
    
      arch/ia64/configs/generic_defconfig: warning: override: reassigning to symbol ATA:  => 58
      arch/ia64/configs/generic_defconfig: warning: override: reassigning to symbol ATA_PIIX:  => 59
    
    These 2 symbols still have the same value as in the removed lines.
    
    Link: https://lkml.kernel.org/r/20210411020255.18052-1-rdunlap@infradead.org
    Fixes: c331649 ("ia64: Use libata instead of the legacy ide driver in defconfigs")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    rddunlap authored and torvalds committed Apr 16, 2021
  10. csky: change a Kconfig symbol name to fix e1000 build error

    e1000's #define of CONFIG_RAM_BASE conflicts with a Kconfig symbol in
    arch/csky/Kconfig.
    
    The symbol in e1000 has been around longer, so change arch/csky/ to use
    DRAM_BASE instead of RAM_BASE to remove the conflict.  (although e1000
    is also a 2-line change)
    
    Link: https://lkml.kernel.org/r/20210411055335.7111-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Acked-by: Guo Ren <guoren@kernel.org>
    Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    rddunlap authored and torvalds committed Apr 16, 2021
  11. kasan: remove redundant config option

    CONFIG_KASAN_STACK and CONFIG_KASAN_STACK_ENABLE both enable KASAN stack
    instrumentation, but we should only need one config, so that we remove
    CONFIG_KASAN_STACK_ENABLE and make CONFIG_KASAN_STACK workable.  see [1].
    
    When enable KASAN stack instrumentation, then for gcc we could do no
    prompt and default value y, and for clang prompt and default value n.
    
    This patch fixes the following compilation warning:
    
      include/linux/kasan.h:333:30: warning: 'CONFIG_KASAN_STACK' is not defined, evaluates to 0 [-Wundef]
    
    [akpm@linux-foundation.org: fix merge snafu]
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=210221 [1]
    Link: https://lkml.kernel.org/r/20210226012531.29231-1-walter-zh.wu@mediatek.com
    Fixes: d9b571c ("kasan: fix KASAN_STACK dependency for HW_TAGS")
    Signed-off-by: Walter Wu <walter-zh.wu@mediatek.com>
    Suggested-by: Dmitry Vyukov <dvyukov@google.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Andrey Konovalov <andreyknvl@google.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    truhuan authored and torvalds committed Apr 16, 2021
  12. kasan: fix hwasan build for gcc

    gcc-11 adds support for -fsanitize=kernel-hwaddress, so it becomes
    possible to enable CONFIG_KASAN_SW_TAGS.
    
    Unfortunately this fails to build at the moment, because the
    corresponding command line arguments use llvm specific syntax.
    
    Change it to use the cc-param macro instead, which works on both clang
    and gcc.
    
    [elver@google.com: fixup for "kasan: fix hwasan build for gcc"]
      Link: https://lkml.kernel.org/r/YHQZVfVVLE/LDK2v@elver.google.com
    
    Link: https://lkml.kernel.org/r/20210323124112.1229772-1-arnd@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Marco Elver <elver@google.com>
    Reviewed-by: Marco Elver <elver@google.com>
    Acked-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Michal Marek <michal.lkml@markovi.net>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    arndb authored and torvalds committed Apr 16, 2021
  13. mm: eliminate "expecting prototype" kernel-doc warnings

    Fix stray kernel-doc warnings in mm/ due to mis-typed or missing function
    names.
    
    Quietens these kernel-doc warnings:
    
      mm/mmu_gather.c:264: warning: expecting prototype for tlb_gather_mmu(). Prototype was for __tlb_gather_mmu() instead
      mm/oom_kill.c:180: warning: expecting prototype for Check whether unreclaimable slab amount is greater than(). Prototype was for should_dump_unreclaim_slab() instead
      mm/shuffle.c:155: warning: expecting prototype for shuffle_free_memory(). Prototype was for __shuffle_free_memory() instead
    
    Link: https://lkml.kernel.org/r/20210411210642.11362-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    rddunlap authored and torvalds committed Apr 16, 2021
  14. Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

    Daniel Borkmann says:
    
    ====================
    pull-request: bpf 2021-04-17
    
    The following pull-request contains BPF updates for your *net* tree.
    
    We've added 10 non-merge commits during the last 9 day(s) which contain
    a total of 8 files changed, 175 insertions(+), 111 deletions(-).
    
    The main changes are:
    
    1) Fix a potential NULL pointer dereference in libbpf's xsk
       umem handling, from Ciara Loftus.
    
    2) Mitigate a speculative oob read of up to map value size by
       tightening the masking window, from Daniel Borkmann.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Apr 16, 2021
  15. MAINTAINERS: update my email

    Update my email and change myself to Reviewer.
    
    Signed-off-by: Lijun Pan <lijunp213@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Lijun Pan authored and davem330 committed Apr 16, 2021
  16. bpf: Update selftests to reflect new error states

    Update various selftest error messages:
    
     * The 'Rx tried to sub from different maps, paths, or prohibited types'
       is reworked into more specific/differentiated error messages for better
       guidance.
    
     * The change into 'value -4294967168 makes map_value pointer be out of
       bounds' is due to moving the mixed bounds check into the speculation
       handling and thus occuring slightly later than above mentioned sanity
       check.
    
     * The change into 'math between map_value pointer and register with
       unbounded min value' is similarly due to register sanity check coming
       before the mixed bounds check.
    
     * The case of 'map access: known scalar += value_ptr from different maps'
       now loads fine given masks are the same from the different paths (despite
       max map value size being different).
    
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: John Fastabend <john.fastabend@gmail.com>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    borkmann committed Apr 16, 2021
  17. bpf: Tighten speculative pointer arithmetic mask

    This work tightens the offset mask we use for unprivileged pointer arithmetic
    in order to mitigate a corner case reported by Piotr and Benedict where in
    the speculative domain it is possible to advance, for example, the map value
    pointer by up to value_size-1 out-of-bounds in order to leak kernel memory
    via side-channel to user space.
    
    Before this change, the computed ptr_limit for retrieve_ptr_limit() helper
    represents largest valid distance when moving pointer to the right or left
    which is then fed as aux->alu_limit to generate masking instructions against
    the offset register. After the change, the derived aux->alu_limit represents
    the largest potential value of the offset register which we mask against which
    is just a narrower subset of the former limit.
    
    For minimal complexity, we call sanitize_ptr_alu() from 2 observation points
    in adjust_ptr_min_max_vals(), that is, before and after the simulated alu
    operation. In the first step, we retieve the alu_state and alu_limit before
    the operation as well as we branch-off a verifier path and push it to the
    verification stack as we did before which checks the dst_reg under truncation,
    in other words, when the speculative domain would attempt to move the pointer
    out-of-bounds.
    
    In the second step, we retrieve the new alu_limit and calculate the absolute
    distance between both. Moreover, we commit the alu_state and final alu_limit
    via update_alu_sanitation_state() to the env's instruction aux data, and bail
    out from there if there is a mismatch due to coming from different verification
    paths with different states.
    
    Reported-by: Piotr Krysiuk <piotras@gmail.com>
    Reported-by: Benedict Schlueter <benedict.schlueter@rub.de>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: John Fastabend <john.fastabend@gmail.com>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Tested-by: Benedict Schlueter <benedict.schlueter@rub.de>
    borkmann committed Apr 16, 2021
  18. bpf: Move sanitize_val_alu out of op switch

    Add a small sanitize_needed() helper function and move sanitize_val_alu()
    out of the main opcode switch. In upcoming work, we'll move sanitize_ptr_alu()
    as well out of its opcode switch so this helps to streamline both.
    
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: John Fastabend <john.fastabend@gmail.com>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    borkmann committed Apr 16, 2021
  19. bpf: Refactor and streamline bounds check into helper

    Move the bounds check in adjust_ptr_min_max_vals() into a small helper named
    sanitize_check_bounds() in order to simplify the former a bit.
    
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: John Fastabend <john.fastabend@gmail.com>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    borkmann committed Apr 16, 2021
Older