Skip to content
Permalink
Lad-Prabhakar/…
Switch branches/tags

Commits on Dec 17, 2021

  1. ata: pata_platform: Merge pata_of_platform into pata_platform

    Merge the OF pata_of_platform driver into pata_platform.
    
    Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    prabhakarlad authored and intel-lab-lkp committed Dec 17, 2021
  2. ata: pata_platform: make use of platform_get_mem_or_io()

    Make use of platform_get_mem_or_io() to simplify the code.
    
    Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    prabhakarlad authored and intel-lab-lkp committed Dec 17, 2021

Commits on Dec 16, 2021

  1. Merge tag 'audit-pr-20211216' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/pcmoore/audit
    
    Pull audit fix from Paul Moore:
     "A single patch to fix a problem where the audit queue could grow
      unbounded when the audit daemon is forcibly stopped"
    
    * tag 'audit-pr-20211216' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
      audit: improve robustness of the audit queue handling
    torvalds committed Dec 16, 2021
  2. Merge tag 'net-5.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes from Jakub Kicinski:
     "Networking fixes, including fixes from mac80211, wifi, bpf.
    
      Relatively large batches of fixes from BPF and the WiFi stack, calm in
      general networking.
    
      Current release - regressions:
    
       - dpaa2-eth: fix buffer overrun when reporting ethtool statistics
    
      Current release - new code bugs:
    
       - bpf: fix incorrect state pruning for <8B spill/fill
    
       - iavf:
           - add missing unlocks in iavf_watchdog_task()
           - do not override the adapter state in the watchdog task (again)
    
       - mlxsw: spectrum_router: consolidate MAC profiles when possible
    
      Previous releases - regressions:
    
       - mac80211 fixes:
           - rate control, avoid driver crash for retransmitted frames
           - regression in SSN handling of addba tx
           - a memory leak where sta_info is not freed
           - marking TX-during-stop for TX in in_reconfig, prevent stall
    
       - cfg80211: acquire wiphy mutex on regulatory work
    
       - wifi drivers: fix build regressions and LED config dependency
    
       - virtio_net: fix rx_drops stat for small pkts
    
       - dsa: mv88e6xxx: unforce speed & duplex in mac_link_down()
    
      Previous releases - always broken:
    
       - bpf fixes:
           - kernel address leakage in atomic fetch
           - kernel address leakage in atomic cmpxchg's r0 aux reg
           - signed bounds propagation after mov32
           - extable fixup offset
           - extable address check
    
       - mac80211:
           - fix the size used for building probe request
           - send ADDBA requests using the tid/queue of the aggregation
             session
           - agg-tx: don't schedule_and_wake_txq() under sta->lock, avoid
             deadlocks
           - validate extended element ID is present
    
       - mptcp:
           - never allow the PM to close a listener subflow (null-defer)
           - clear 'kern' flag from fallback sockets, prevent crash
           - fix deadlock in __mptcp_push_pending()
    
       - inet_diag: fix kernel-infoleak for UDP sockets
    
       - xsk: do not sleep in poll() when need_wakeup set
    
       - smc: avoid very long waits in smc_release()
    
       - sch_ets: don't remove idle classes from the round-robin list
    
       - netdevsim:
           - zero-initialize memory for bpf map's value, prevent info leak
           - don't let user space overwrite read only (max) ethtool parms
    
       - ixgbe: set X550 MDIO speed before talking to PHY
    
       - stmmac:
           - fix null-deref in flower deletion w/ VLAN prio Rx steering
           - dwmac-rk: fix oob read in rk_gmac_setup
    
       - ice: time stamping fixes
    
       - systemport: add global locking for descriptor life cycle"
    
    * tag 'net-5.16-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (89 commits)
      bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
      selftest/bpf: Add a test that reads various addresses.
      bpf: Fix extable address check.
      bpf: Fix extable fixup offset.
      bpf, selftests: Add test case trying to taint map value pointer
      bpf: Make 32->64 bounds propagation slightly more robust
      bpf: Fix signed bounds propagation after mov32
      sit: do not call ipip6_dev_free() from sit_init_net()
      net: systemport: Add global locking for descriptor lifecycle
      net/smc: Prevent smc_release() from long blocking
      net: Fix double 0x prefix print in SKB dump
      virtio_net: fix rx_drops stat for small pkts
      dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED
      sfc_ef100: potential dereference of null pointer
      net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup
      net: usb: lan78xx: add Allied Telesis AT29M2-AF
      net/packet: rx_owner_map depends on pg_vec
      netdevsim: Zero-initialize memory for new map's value in function nsim_bpf_map_alloc
      dpaa2-eth: fix ethtool statistics
      ixgbe: set X550 MDIO speed before talking to PHY
      ...
    torvalds committed Dec 16, 2021
  3. Merge tag 'soc-fixes-5.16-3' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/soc/soc
    
    Pull ARM SoC fixes from Arnd Bergmann:
     "There are a number of DT fixes, mostly for mistakes found through
      static checking of the dts files again, as well as a couple of minor
      changes to address incorrect DT settings.
    
      For i.MX, there is yet another series of devitree changes to update
      RGMII delay settings for ethernet, which is an ongoing problem after
      some driver changes.
    
      For SoC specific device drivers, a number of smaller fixes came up:
    
       - i.MX SoC identification was incorrectly registered non-i.MX
         machines when the driver is built-in
    
       - One fix on imx8m-blk-ctrl driver to get i.MX8MM MIPI reset work
         properly
    
       - a few compile fixes for warnings that get in the way of -Werror
    
       - a string overflow in the scpi firmware driver
    
       - a boot failure with FORTIFY_SOURCE on Rockchips machines
    
       - broken error handling in the AMD TEE driver
    
       - a revert for a tegra reset driver commit that broke HDA"
    
    * tag 'soc-fixes-5.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (25 commits)
      soc/tegra: fuse: Fix bitwise vs. logical OR warning
      firmware: arm_scpi: Fix string overflow in SCPI genpd driver
      soc: imx: Register SoC device only on i.MX boards
      soc: imx: imx8m-blk-ctrl: Fix imx8mm mipi reset
      ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
      arm64: dts: imx8mq: remove interconnect property from lcdif
      ARM: socfpga: dts: fix qspi node compatible
      arm64: dts: apple: add #interrupt-cells property to pinctrl nodes
      dt-bindings: i2c: apple,i2c: allow multiple compatibles
      arm64: meson: remove COMMON_CLK
      arm64: meson: fix dts for JetHub D1
      tee: amdtee: fix an IS_ERR() vs NULL bug
      arm64: dts: apple: change ethernet0 device type to ethernet
      arm64: dts: ten64: remove redundant interrupt declaration for gpio-keys
      arm64: dts: rockchip: fix poweroff on helios64
      arm64: dts: rockchip: fix audio-supply for Rock Pi 4
      arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
      arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply
      arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-edge
      ARM: rockchip: Use memcpy_toio instead of memcpy on smp bring-up
      ...
    torvalds committed Dec 16, 2021
  4. Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

    Daniel Borkmann says:
    
    ====================
    pull-request: bpf 2021-12-16
    
    We've added 15 non-merge commits during the last 7 day(s) which contain
    a total of 12 files changed, 434 insertions(+), 30 deletions(-).
    
    The main changes are:
    
    1) Fix incorrect verifier state pruning behavior for <8B register spill/fill,
       from Paul Chaignon.
    
    2) Fix x86-64 JIT's extable handling for fentry/fexit when return pointer
       is an ERR_PTR(), from Alexei Starovoitov.
    
    3) Fix 3 different possibilities that BPF verifier missed where unprivileged
       could leak kernel addresses, from Daniel Borkmann.
    
    4) Fix xsk's poll behavior under need_wakeup flag, from Magnus Karlsson.
    
    5) Fix an oob-write in test_verifier due to a missed MAX_NR_MAPS bump,
       from Kumar Kartikeya Dwivedi.
    
    6) Fix a race in test_btf_skc_cls_ingress selftest, from Martin KaFai Lau.
    
    * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
      bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
      selftest/bpf: Add a test that reads various addresses.
      bpf: Fix extable address check.
      bpf: Fix extable fixup offset.
      bpf, selftests: Add test case trying to taint map value pointer
      bpf: Make 32->64 bounds propagation slightly more robust
      bpf: Fix signed bounds propagation after mov32
      bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer
      bpf: Fix kernel address leakage in atomic cmpxchg's r0 aux reg
      bpf, selftests: Add test case for atomic fetch on spilled pointer
      bpf: Fix kernel address leakage in atomic fetch
      selftests/bpf: Fix OOB write in test_verifier
      xsk: Do not sleep in poll() when need_wakeup set
      selftests/bpf: Tests for state pruning with u32 spill/fill
      bpf: Fix incorrect state pruning for <8B spill/fill
    ====================
    
    Link: https://lore.kernel.org/r/20211216210005.13815-1-daniel@iogearbox.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Dec 16, 2021
  5. bpf, selftests: Fix racing issue in btf_skc_cls_ingress test

    The libbpf CI reported occasional failure in btf_skc_cls_ingress:
    
      test_syncookie:FAIL:Unexpected syncookie states gen_cookie:80326634 recv_cookie:0
      bpf prog error at line 97
    
    "error at line 97" means the bpf prog cannot find the listening socket
    when the final ack is received.  It then skipped processing
    the syncookie in the final ack which then led to "recv_cookie:0".
    
    The problem is the userspace program did not do accept() and went
    ahead to close(listen_fd) before the kernel (and the bpf prog) had
    a chance to process the final ack.
    
    The fix is to add accept() call so that the userspace will wait for
    the kernel to finish processing the final ack first before close()-ing
    everything.
    
    Fixes: 9a856ca ("bpf: selftest: Add test_btf_skc_cls_ingress")
    Reported-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20211216191630.466151-1-kafai@fb.com
    iamkafai authored and borkmann committed Dec 16, 2021
  6. selftest/bpf: Add a test that reads various addresses.

    Add a function to bpf_testmod that returns invalid kernel and user addresses.
    Then attach an fexit program to that function that tries to read
    memory through these addresses.
    
    This logic checks that bpf_probe_read_kernel and BPF_PROBE_MEM logic is sane.
    
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Alexei Starovoitov authored and borkmann committed Dec 16, 2021
  7. bpf: Fix extable address check.

    The verifier checks that PTR_TO_BTF_ID pointer is either valid or NULL,
    but it cannot distinguish IS_ERR pointer from valid one.
    
    When offset is added to IS_ERR pointer it may become small positive
    value which is a user address that is not handled by extable logic
    and has to be checked for at the runtime.
    
    Tighten BPF_PROBE_MEM pointer check code to prevent this case.
    
    Fixes: 4c5de12 ("bpf: Emit explicit NULL pointer checks for PROBE_LDX instructions.")
    Reported-by: Lorenzo Fontana <lorenzo.fontana@elastic.co>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Alexei Starovoitov authored and borkmann committed Dec 16, 2021
  8. bpf: Fix extable fixup offset.

    The prog - start_of_ldx is the offset before the faulting ldx to the location
    after it, so this will be used to adjust pt_regs->ip for jumping over it and
    continuing, and with old temp it would have been fixed up to the wrong offset,
    causing crash.
    
    Fixes: 4c5de12 ("bpf: Emit explicit NULL pointer checks for PROBE_LDX instructions.")
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Reviewed-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Alexei Starovoitov authored and borkmann committed Dec 16, 2021
  9. Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/clk/linux
    
    Pull clk fix from Stephen Boyd:
     "A single fix for the clk framework that needed some more bake time in
      linux-next.
    
      The problem is that two clks being registered at the same time can
      lead to a busted clk tree if the parent isn't fully registered by the
      time the child finds the parent. We rejigger the place where we mark
      the parent as fully registered so that the child can't find the parent
      until things are proper"
    
    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
      clk: Don't parent clks until the parent is fully registered
    torvalds committed Dec 16, 2021
  10. bpf, selftests: Add test case trying to taint map value pointer

    Add a test case which tries to taint map value pointer arithmetic into a
    unknown scalar with subsequent export through the map.
    
    Before fix:
    
      # ./test_verifier 1186
      #1186/u map access: trying to leak tained dst reg FAIL
      Unexpected success to load!
      verification time 24 usec
      stack depth 8
      processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
      #1186/p map access: trying to leak tained dst reg FAIL
      Unexpected success to load!
      verification time 8 usec
      stack depth 8
      processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
      Summary: 0 PASSED, 0 SKIPPED, 2 FAILED
    
    After fix:
    
      # ./test_verifier 1186
      #1186/u map access: trying to leak tained dst reg OK
      #1186/p map access: trying to leak tained dst reg OK
      Summary: 2 PASSED, 0 SKIPPED, 0 FAILED
    
    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 Dec 16, 2021
  11. bpf: Make 32->64 bounds propagation slightly more robust

    Make the bounds propagation in __reg_assign_32_into_64() slightly more
    robust and readable by aligning it similarly as we did back in the
    __reg_combine_64_into_32() counterpart. Meaning, only propagate or
    pessimize them as a smin/smax pair.
    
    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 Dec 16, 2021
  12. bpf: Fix signed bounds propagation after mov32

    For the case where both s32_{min,max}_value bounds are positive, the
    __reg_assign_32_into_64() directly propagates them to their 64 bit
    counterparts, otherwise it pessimises them into [0,u32_max] universe and
    tries to refine them later on by learning through the tnum as per comment
    in mentioned function. However, that does not always happen, for example,
    in mov32 operation we call zext_32_to_64(dst_reg) which invokes the
    __reg_assign_32_into_64() as is without subsequent bounds update as
    elsewhere thus no refinement based on tnum takes place.
    
    Thus, not calling into the __update_reg_bounds() / __reg_deduce_bounds() /
    __reg_bound_offset() triplet as we do, for example, in case of ALU ops via
    adjust_scalar_min_max_vals(), will lead to more pessimistic bounds when
    dumping the full register state:
    
    Before fix:
    
      0: (b4) w0 = -1
      1: R0_w=invP4294967295
         (id=0,imm=ffffffff,
          smin_value=4294967295,smax_value=4294967295,
          umin_value=4294967295,umax_value=4294967295,
          var_off=(0xffffffff; 0x0),
          s32_min_value=-1,s32_max_value=-1,
          u32_min_value=-1,u32_max_value=-1)
    
      1: (bc) w0 = w0
      2: R0_w=invP4294967295
         (id=0,imm=ffffffff,
          smin_value=0,smax_value=4294967295,
          umin_value=4294967295,umax_value=4294967295,
          var_off=(0xffffffff; 0x0),
          s32_min_value=-1,s32_max_value=-1,
          u32_min_value=-1,u32_max_value=-1)
    
    Technically, the smin_value=0 and smax_value=4294967295 bounds are not
    incorrect, but given the register is still a constant, they break assumptions
    about const scalars that smin_value == smax_value and umin_value == umax_value.
    
    After fix:
    
      0: (b4) w0 = -1
      1: R0_w=invP4294967295
         (id=0,imm=ffffffff,
          smin_value=4294967295,smax_value=4294967295,
          umin_value=4294967295,umax_value=4294967295,
          var_off=(0xffffffff; 0x0),
          s32_min_value=-1,s32_max_value=-1,
          u32_min_value=-1,u32_max_value=-1)
    
      1: (bc) w0 = w0
      2: R0_w=invP4294967295
         (id=0,imm=ffffffff,
          smin_value=4294967295,smax_value=4294967295,
          umin_value=4294967295,umax_value=4294967295,
          var_off=(0xffffffff; 0x0),
          s32_min_value=-1,s32_max_value=-1,
          u32_min_value=-1,u32_max_value=-1)
    
    Without the smin_value == smax_value and umin_value == umax_value invariant
    being intact for const scalars, it is possible to leak out kernel pointers
    from unprivileged user space if the latter is enabled. For example, when such
    registers are involved in pointer arithmtics, then adjust_ptr_min_max_vals()
    will taint the destination register into an unknown scalar, and the latter
    can be exported and stored e.g. into a BPF map value.
    
    Fixes: 3f50f13 ("bpf: Verifier, do explicit ALU32 bounds tracking")
    Reported-by: Kuee K1r0a <liulin063@gmail.com>
    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 Dec 16, 2021
  13. Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/arm64/linux
    
    Pull arm64 fix from Catalin Marinas:
     "Fix missing error code on kexec failure path"
    
    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      arm64: kexec: Fix missing error code 'ret' warning in load_other_segments()
    torvalds committed Dec 16, 2021
  14. Merge tag 'for-5.16/dm-fixes' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/device-mapper/linux-dm
    
    Pull device mapper fixes from Mike Snitzer:
    
     - Fix use after free in DM btree remove's rebalance_children()
    
     - Fix DM integrity data corruption, introduced during 5.16 merge, due
       to improper use of bvec_kmap_local()
    
    * tag 'for-5.16/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
      dm integrity: fix data corruption due to improper use of bvec_kmap_local
      dm btree remove: fix use after free in rebalance_children()
    torvalds committed Dec 16, 2021
  15. arm64: kexec: Fix missing error code 'ret' warning in load_other_segm…

    …ents()
    
    Since commit ac10be5 ("arm64: Use common
    of_kexec_alloc_and_setup_fdt()"), smatch reports the following warning:
    
      arch/arm64/kernel/machine_kexec_file.c:152 load_other_segments()
      warn: missing error code 'ret'
    
    Return code is not set to an error code in load_other_segments() when
    of_kexec_alloc_and_setup_fdt() call returns a NULL dtb. This results
    in status success (return code set to 0) being returned from
    load_other_segments().
    
    Set return code to -EINVAL if of_kexec_alloc_and_setup_fdt() returns
    NULL dtb.
    
    Signed-off-by: Lakshmi Ramasubramanian <nramas@linux.microsoft.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Fixes: ac10be5 ("arm64: Use common of_kexec_alloc_and_setup_fdt()")
    Link: https://lore.kernel.org/r/20211210010121.101823-1-nramas@linux.microsoft.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    nramas authored and ctmarinas committed Dec 16, 2021
  16. afs: Fix mmap

    Fix afs_add_open_map() to check that the vnode isn't already on the list
    when it adds it.  It's possible that afs_drop_open_mmap() decremented
    the cb_nr_mmap counter, but hadn't yet got into the locked section to
    remove it.
    
    Also vnode->cb_mmap_link should be initialised, so fix that too.
    
    Fixes: 6e0e99d ("afs: Fix mmap coherency vs 3rd-party changes")
    Reported-by: kafs-testing+fedora34_64checkkafs-build-300@auristor.com
    Suggested-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Tested-by: kafs-testing+fedora34_64checkkafs-build-300@auristor.com
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/686465.1639435380@warthog.procyon.org.uk/ # v1
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    dhowells authored and torvalds committed Dec 16, 2021
  17. sit: do not call ipip6_dev_free() from sit_init_net()

    ipip6_dev_free is sit dev->priv_destructor, already called
    by register_netdevice() if something goes wrong.
    
    Alternative would be to make ipip6_dev_free() robust against
    multiple invocations, but other drivers do not implement this
    strategy.
    
    syzbot reported:
    
    dst_release underflow
    WARNING: CPU: 0 PID: 5059 at net/core/dst.c:173 dst_release+0xd8/0xe0 net/core/dst.c:173
    Modules linked in:
    CPU: 1 PID: 5059 Comm: syz-executor.4 Not tainted 5.16.0-rc5-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:dst_release+0xd8/0xe0 net/core/dst.c:173
    Code: 4c 89 f2 89 d9 31 c0 5b 41 5e 5d e9 da d5 44 f9 e8 1d 90 5f f9 c6 05 87 48 c6 05 01 48 c7 c7 80 44 99 8b 31 c0 e8 e8 67 29 f9 <0f> 0b eb 85 0f 1f 40 00 53 48 89 fb e8 f7 8f 5f f9 48 83 c3 a8 48
    RSP: 0018:ffffc9000aa5faa0 EFLAGS: 00010246
    RAX: d6894a925dd15a00 RBX: 00000000ffffffff RCX: 0000000000040000
    RDX: ffffc90005e19000 RSI: 000000000003ffff RDI: 0000000000040000
    RBP: 0000000000000000 R08: ffffffff816a1f42 R09: ffffed1017344f2c
    R10: ffffed1017344f2c R11: 0000000000000000 R12: 0000607f462b1358
    R13: 1ffffffff1bfd305 R14: ffffe8ffffcb1358 R15: dffffc0000000000
    FS:  00007f66c71a2700(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f88aaed5058 CR3: 0000000023e0f000 CR4: 00000000003506f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     dst_cache_destroy+0x107/0x1e0 net/core/dst_cache.c:160
     ipip6_dev_free net/ipv6/sit.c:1414 [inline]
     sit_init_net+0x229/0x550 net/ipv6/sit.c:1936
     ops_init+0x313/0x430 net/core/net_namespace.c:140
     setup_net+0x35b/0x9d0 net/core/net_namespace.c:326
     copy_net_ns+0x359/0x5c0 net/core/net_namespace.c:470
     create_new_namespaces+0x4ce/0xa00 kernel/nsproxy.c:110
     unshare_nsproxy_namespaces+0x11e/0x180 kernel/nsproxy.c:226
     ksys_unshare+0x57d/0xb50 kernel/fork.c:3075
     __do_sys_unshare kernel/fork.c:3146 [inline]
     __se_sys_unshare kernel/fork.c:3144 [inline]
     __x64_sys_unshare+0x34/0x40 kernel/fork.c:3144
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x7f66c882ce99
    Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007f66c71a2168 EFLAGS: 00000246 ORIG_RAX: 0000000000000110
    RAX: ffffffffffffffda RBX: 00007f66c893ff60 RCX: 00007f66c882ce99
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000048040200
    RBP: 00007f66c8886ff1 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 00007fff6634832f R14: 00007f66c71a2300 R15: 0000000000022000
     </TASK>
    
    Fixes: cf124db ("net: Fix inconsistent teardown and release of private netdev state.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20211216111741.1387540-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    neebe000 authored and Jakub Kicinski committed Dec 16, 2021
  18. net: systemport: Add global locking for descriptor lifecycle

    The descriptor list is a shared resource across all of the transmit queues, and
    the locking mechanism used today only protects concurrency across a given
    transmit queue between the transmit and reclaiming. This creates an opportunity
    for the SYSTEMPORT hardware to work on corrupted descriptors if we have
    multiple producers at once which is the case when using multiple transmit
    queues.
    
    This was particularly noticeable when using multiple flows/transmit queues and
    it showed up in interesting ways in that UDP packets would get a correct UDP
    header checksum being calculated over an incorrect packet length. Similarly TCP
    packets would get an equally correct checksum computed by the hardware over an
    incorrect packet length.
    
    The SYSTEMPORT hardware maintains an internal descriptor list that it re-arranges
    when the driver produces a new descriptor anytime it writes to the
    WRITE_PORT_{HI,LO} registers, there is however some delay in the hardware to
    re-organize its descriptors and it is possible that concurrent TX queues
    eventually break this internal allocation scheme to the point where the
    length/status part of the descriptor gets used for an incorrect data buffer.
    
    The fix is to impose a global serialization for all TX queues in the short
    section where we are writing to the WRITE_PORT_{HI,LO} registers which solves
    the corruption even with multiple concurrent TX queues being used.
    
    Fixes: 80105be ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20211215202450.4086240-1-f.fainelli@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    ffainelli authored and Jakub Kicinski committed Dec 16, 2021
  19. net/smc: Prevent smc_release() from long blocking

    In nginx/wrk benchmark, there's a hung problem with high probability
    on case likes that: (client will last several minutes to exit)
    
    server: smc_run nginx
    
    client: smc_run wrk -c 10000 -t 1 http://server
    
    Client hangs with the following backtrace:
    
    0 [ffffa7ce8Of3bbf8] __schedule at ffffffff9f9eOd5f
    1 [ffffa7ce8Of3bc88] schedule at ffffffff9f9eløe6
    2 [ffffa7ce8Of3bcaO] schedule_timeout at ffffffff9f9e3f3c
    3 [ffffa7ce8Of3bd2O] wait_for_common at ffffffff9f9el9de
    4 [ffffa7ce8Of3bd8O] __flush_work at ffffffff9fOfeOl3
    5 [ffffa7ce8øf3bdfO] smc_release at ffffffffcO697d24 [smc]
    6 [ffffa7ce8Of3be2O] __sock_release at ffffffff9f8O2e2d
    7 [ffffa7ce8Of3be4ø] sock_close at ffffffff9f8ø2ebl
    8 [ffffa7ce8øf3be48] __fput at ffffffff9f334f93
    9 [ffffa7ce8Of3be78] task_work_run at ffffffff9flOlff5
    10 [ffffa7ce8Of3beaO] do_exit at ffffffff9fOe5Ol2
    11 [ffffa7ce8Of3bflO] do_group_exit at ffffffff9fOe592a
    12 [ffffa7ce8Of3bf38] __x64_sys_exit_group at ffffffff9fOe5994
    13 [ffffa7ce8Of3bf4O] do_syscall_64 at ffffffff9f9d4373
    14 [ffffa7ce8Of3bfsO] entry_SYSCALL_64_after_hwframe at ffffffff9fa0007c
    
    This issue dues to flush_work(), which is used to wait for
    smc_connect_work() to finish in smc_release(). Once lots of
    smc_connect_work() was pending or all executing work dangling,
    smc_release() has to block until one worker comes to free, which
    is equivalent to wait another smc_connnect_work() to finish.
    
    In order to fix this, There are two changes:
    
    1. For those idle smc_connect_work(), cancel it from the workqueue; for
       executing smc_connect_work(), waiting for it to finish. For that
       purpose, replace flush_work() with cancel_work_sync().
    
    2. Since smc_connect() hold a reference for passive closing, if
       smc_connect_work() has been cancelled, release the reference.
    
    Fixes: 24ac3a0 ("net/smc: rebuild nonblocking connect")
    Reported-by: Tony Lu <tonylu@linux.alibaba.com>
    Tested-by: Dust Li <dust.li@linux.alibaba.com>
    Reviewed-by: Dust Li <dust.li@linux.alibaba.com>
    Reviewed-by: Tony Lu <tonylu@linux.alibaba.com>
    Signed-off-by: D. Wythe <alibuda@linux.alibaba.com>
    Acked-by: Karsten Graul <kgraul@linux.ibm.com>
    Link: https://lore.kernel.org/r/1639571361-101128-1-git-send-email-alibuda@linux.alibaba.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    D. Wythe authored and Jakub Kicinski committed Dec 16, 2021
  20. Merge tag 'tegra-for-5.16-soc-fixes' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tegra/linux into arm/fixes
    
    soc/tegra: Fixes for v5.16-rc6
    
    This contains a single build fix without which ARM allmodconfig builds
    are broken if -Werror is enabled.
    
    * tag 'tegra-for-5.16-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
      soc/tegra: fuse: Fix bitwise vs. logical OR warning
    
    Link: https://lore.kernel.org/r/20211215162618.3568474-1-thierry.reding@gmail.com
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    arndb committed Dec 16, 2021
  21. net: Fix double 0x prefix print in SKB dump

    When printing netdev features %pNF already takes care of the 0x prefix,
    remove the explicit one.
    
    Fixes: 6413139 ("skbuff: increase verbosity when dumping skb data")
    Signed-off-by: Gal Pressman <gal@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Gal Pressman authored and davem330 committed Dec 16, 2021
  22. virtio_net: fix rx_drops stat for small pkts

    We found the stat of rx drops for small pkts does not increment when
    build_skb fail, it's not coherent with other mode's rx drops stat.
    
    Signed-off-by: Wenliang Wang <wangwenliang.1995@bytedance.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    wwlliangliang authored and davem330 committed Dec 16, 2021
  23. dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED

    Debug print uses invalid check to detect if speed is unforced:
    (speed != SPEED_UNFORCED) should be used instead of (!speed).
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Andrey Eremeev <Axtone4all@yandex.ru>
    Fixes: 96a2b40 ("net: dsa: mv88e6xxx: add port's MAC speed setter")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    molchalin authored and davem330 committed Dec 16, 2021
  24. sfc_ef100: potential dereference of null pointer

    The return value of kmalloc() needs to be checked.
    To avoid use in efx_nic_update_stats() in case of the failure of alloc.
    
    Fixes: b593b6f ("sfc_ef100: statistics gathering")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    JiangJias authored and davem330 committed Dec 16, 2021
  25. net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup

    KASAN reports an out-of-bounds read in rk_gmac_setup on the line:
    
    	while (ops->regs[i]) {
    
    This happens for most platforms since the regs flexible array member is
    empty, so the memory after the ops structure is being read here.  It
    seems that mostly this happens to contain zero anyway, so we get lucky
    and everything still works.
    
    To avoid adding redundant data to nearly all the ops structures, add a
    new flag to indicate whether the regs field is valid and avoid this loop
    when it is not.
    
    Fixes: 3bb3d6b ("net: stmmac: Add RK3566/RK3568 SoC support")
    Signed-off-by: John Keeping <john@metanate.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    johnkeeping authored and davem330 committed Dec 16, 2021
  26. Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …tnguy/net-queue
    
    Tony Nguyen says:
    
    ====================
    Intel Wired LAN Driver Updates 2021-12-15
    
    This series contains updates to igb, igbvf, igc and ixgbe drivers.
    
    Karen moves checks for invalid VF MAC filters to occur earlier for
    igb.
    
    Letu Ren fixes a double free issue in igbvf probe.
    
    Sasha fixes incorrect min value being used when calculating for max for
    igc.
    
    Robert Schlabbach adds documentation on enabling NBASE-T support for
    ixgbe.
    
    Cyril Novikov adds missing initialization of MDIO bus speed for ixgbe.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Dec 16, 2021
  27. net: usb: lan78xx: add Allied Telesis AT29M2-AF

    This adds the vendor and product IDs for the AT29M2-AF which is a
    lan7801-based device.
    
    Signed-off-by: Greg Jesionowski <jesionowskigreg@gmail.com>
    Link: https://lore.kernel.org/r/20211214221027.305784-1-jesionowskigreg@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Greg Jesionowski authored and Jakub Kicinski committed Dec 16, 2021
  28. net/packet: rx_owner_map depends on pg_vec

    Packet sockets may switch ring versions. Avoid misinterpreting state
    between versions, whose fields share a union. rx_owner_map is only
    allocated with a packet ring (pg_vec) and both are swapped together.
    If pg_vec is NULL, meaning no packet ring was allocated, then neither
    was rx_owner_map. And the field may be old state from a tpacket_v3.
    
    Fixes: 61fad68 ("net/packet: tpacket_rcv: avoid a producer race condition")
    Reported-by: Syzbot <syzbot+1ac0994a0a0c55151121@syzkaller.appspotmail.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20211215143937.106178-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    wdebruij authored and Jakub Kicinski committed Dec 16, 2021
  29. netdevsim: Zero-initialize memory for new map's value in function nsi…

    …m_bpf_map_alloc
    
    Zero-initialize memory for new map's value in function nsim_bpf_map_alloc
    since it may cause a potential kernel information leak issue, as follows:
    1. nsim_bpf_map_alloc calls nsim_map_alloc_elem to allocate elements for
    a new map.
    2. nsim_map_alloc_elem uses kmalloc to allocate map's value, but doesn't
    zero it.
    3. A user application can use IOCTL BPF_MAP_LOOKUP_ELEM to get specific
    element's information in the map.
    4. The kernel function map_lookup_elem will call bpf_map_copy_value to get
    the information allocated at step-2, then use copy_to_user to copy to the
    user buffer.
    This can only leak information for an array map.
    
    Fixes: 395cacb ("netdevsim: bpf: support fake map offload")
    Suggested-by: Jakub Kicinski <kuba@kernel.org>
    Acked-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Haimin Zhang <tcs.kernel@gmail.com>
    Link: https://lore.kernel.org/r/20211215111530.72103-1-tcs.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Haimin Zhang authored and Jakub Kicinski committed Dec 16, 2021
  30. dpaa2-eth: fix ethtool statistics

    Unfortunately, with the blamed commit I also added a side effect in the
    ethtool stats shown. Because I added two more fields in the per channel
    structure without verifying if its size is used in any way, part of the
    ethtool statistics were off by 2.
    Fix this by not looking up the size of the structure but instead on a
    fixed value kept in a macro.
    
    Fixes: fc398be ("net: dpaa2: add adaptive interrupt coalescing")
    Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Link: https://lore.kernel.org/r/20211215105831.290070-1-ioana.ciornei@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    IoanaCiornei authored and Jakub Kicinski committed Dec 16, 2021

Commits on Dec 15, 2021

  1. ixgbe: set X550 MDIO speed before talking to PHY

    The MDIO bus speed must be initialized before talking to the PHY the first
    time in order to avoid talking to it using a speed that the PHY doesn't
    support.
    
    This fixes HW initialization error -17 (IXGBE_ERR_PHY_ADDR_INVALID) on
    Denverton CPUs (a.k.a. the Atom C3000 family) on ports with a 10Gb network
    plugged in. On those devices, HLREG0[MDCSPD] resets to 1, which combined
    with the 10Gb network results in a 24MHz MDIO speed, which is apparently
    too fast for the connected PHY. PHY register reads over MDIO bus return
    garbage, leading to initialization failure.
    
    Reproduced with Linux kernel 4.19 and 5.15-rc7. Can be reproduced using
    the following setup:
    
    * Use an Atom C3000 family system with at least one X552 LAN on the SoC
    * Disable PXE or other BIOS network initialization if possible
      (the interface must not be initialized before Linux boots)
    * Connect a live 10Gb Ethernet cable to an X550 port
    * Power cycle (not reset, doesn't always work) the system and boot Linux
    * Observe: ixgbe interfaces w/ 10GbE cables plugged in fail with error -17
    
    Fixes: e84db72 ("ixgbe: Introduce function to control MDIO speed")
    Signed-off-by: Cyril Novikov <cnovikov@lynx.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Cyril Novikov authored and anguy11 committed Dec 15, 2021
  2. dm integrity: fix data corruption due to improper use of bvec_kmap_local

    Commit 25058d1 ("dm integrity: use bvec_kmap_local in
    __journal_read_write") didn't account for __journal_read_write() later
    adding the biovec's bv_offset. As such using bvec_kmap_local() caused
    the start of the biovec to be skipped.
    
    Trivial test that illustrates data corruption:
    
      # integritysetup format /dev/pmem0
      # integritysetup open /dev/pmem0 integrityroot
      # mkfs.xfs /dev/mapper/integrityroot
      ...
      bad magic number
      bad magic number
      Metadata corruption detected at xfs_sb block 0x0/0x1000
      libxfs_writebufr: write verifer failed on xfs_sb bno 0x0/0x1000
      releasing dirty buffer (bulk) to free list!
    
    Fix this by using kmap_local_page() instead of bvec_kmap_local() in
    __journal_read_write().
    
    Fixes: 25058d1 ("dm integrity: use bvec_kmap_local in __journal_read_write")
    Reported-by: Tony Asleson <tasleson@redhat.com>
    Reviewed-by: Heinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    snitm committed Dec 15, 2021
  3. ixgbe: Document how to enable NBASE-T support

    Commit a296d66 ("ixgbe: Add ethtool support to enable 2.5 and 5.0
    Gbps support") introduced suppression of the advertisement of NBASE-T
    speeds by default, according to Todd Fujinaka to accommodate customers
    with network switches which could not cope with advertised NBASE-T
    speeds, as posted in the E1000-devel mailing list:
    
    https://sourceforge.net/p/e1000/mailman/message/37106269/
    
    However, the suppression was not documented at all, nor was how to
    enable NBASE-T support.
    
    Properly document the NBASE-T suppression and how to enable NBASE-T
    support.
    
    Fixes: a296d66 ("ixgbe: Add ethtool support to enable 2.5 and 5.0 Gbps support")
    Reported-by: Robert Schlabbach <robert_s@gmx.net>
    Signed-off-by: Robert Schlabbach <robert_s@gmx.net>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    robert-sc authored and anguy11 committed Dec 15, 2021
Older