1. 10 May, 2023 5 commits
    • Florian Westphal's avatar
      netfilter: conntrack: fix possible bug_on with enable_hooks=1 · e72eeab5
      Florian Westphal authored
      I received a bug report (no reproducer so far) where we trip over
      
      712         rcu_read_lock();
      713         ct_hook = rcu_dereference(nf_ct_hook);
      714         BUG_ON(ct_hook == NULL);  // here
      
      In nf_conntrack_destroy().
      
      First turn this BUG_ON into a WARN.  I think it was triggered
      via enable_hooks=1 flag.
      
      When this flag is turned on, the conntrack hooks are registered
      before nf_ct_hook pointer gets assigned.
      This opens a short window where packets enter the conntrack machinery,
      can have skb->_nfct set up and a subsequent kfree_skb might occur
      before nf_ct_hook is set.
      
      Call nf_conntrack_init_end() to set nf_ct_hook before we register the
      pernet ops.
      
      Fixes: ba3fbe66 ("netfilter: nf_conntrack: provide modparam to always register conntrack hooks")
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      e72eeab5
    • Florian Westphal's avatar
      netfilter: nf_tables: always release netdev hooks from notifier · dc1c9fd4
      Florian Westphal authored
      This reverts "netfilter: nf_tables: skip netdev events generated on netns removal".
      
      The problem is that when a veth device is released, the veth release
      callback will also queue the peer netns device for removal.
      
      Its possible that the peer netns is also slated for removal.  In this
      case, the device memory is already released before the pre_exit hook of
      the peer netns runs:
      
      BUG: KASAN: slab-use-after-free in nf_hook_entry_head+0x1b8/0x1d0
      Read of size 8 at addr ffff88812c0124f0 by task kworker/u8:1/45
      Workqueue: netns cleanup_net
      Call Trace:
       nf_hook_entry_head+0x1b8/0x1d0
       __nf_unregister_net_hook+0x76/0x510
       nft_netdev_unregister_hooks+0xa0/0x220
       __nft_release_hook+0x184/0x490
       nf_tables_pre_exit_net+0x12f/0x1b0
       ..
      
      Order is:
      1. First netns is released, veth_dellink() queues peer netns device
         for removal
      2. peer netns is queued for removal
      3. peer netns device is released, unreg event is triggered
      4. unreg event is ignored because netns is going down
      5. pre_exit hook calls nft_netdev_unregister_hooks but device memory
         might be free'd already.
      
      Fixes: 68a3765c ("netfilter: nf_tables: skip netdev events generated on netns removal")
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      dc1c9fd4
    • Florian Fainelli's avatar
      net: phy: bcm7xx: Correct read from expansion register · 582dbb2c
      Florian Fainelli authored
      Since the driver works in the "legacy" addressing mode, we need to write
      to the expansion register (0x17) with bits 11:8 set to 0xf to properly
      select the expansion register passed as argument.
      
      Fixes: f68d08c4 ("net: phy: bcm7xxx: Add EPHY entry for 72165")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Link: https://lore.kernel.org/r/20230508231749.1681169-1-f.fainelli@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      582dbb2c
    • Kuniyuki Iwashima's avatar
      net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs(). · dfd9248c
      Kuniyuki Iwashima authored
      KCSAN found a data race in sock_recv_cmsgs() where the read access
      to sk->sk_stamp needs READ_ONCE().
      
      BUG: KCSAN: data-race in packet_recvmsg / packet_recvmsg
      
      write (marked) to 0xffff88803c81f258 of 8 bytes by task 19171 on cpu 0:
       sock_write_timestamp include/net/sock.h:2670 [inline]
       sock_recv_cmsgs include/net/sock.h:2722 [inline]
       packet_recvmsg+0xb97/0xd00 net/packet/af_packet.c:3489
       sock_recvmsg_nosec net/socket.c:1019 [inline]
       sock_recvmsg+0x11a/0x130 net/socket.c:1040
       sock_read_iter+0x176/0x220 net/socket.c:1118
       call_read_iter include/linux/fs.h:1845 [inline]
       new_sync_read fs/read_write.c:389 [inline]
       vfs_read+0x5e0/0x630 fs/read_write.c:470
       ksys_read+0x163/0x1a0 fs/read_write.c:613
       __do_sys_read fs/read_write.c:623 [inline]
       __se_sys_read fs/read_write.c:621 [inline]
       __x64_sys_read+0x41/0x50 fs/read_write.c:621
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x72/0xdc
      
      read to 0xffff88803c81f258 of 8 bytes by task 19183 on cpu 1:
       sock_recv_cmsgs include/net/sock.h:2721 [inline]
       packet_recvmsg+0xb64/0xd00 net/packet/af_packet.c:3489
       sock_recvmsg_nosec net/socket.c:1019 [inline]
       sock_recvmsg+0x11a/0x130 net/socket.c:1040
       sock_read_iter+0x176/0x220 net/socket.c:1118
       call_read_iter include/linux/fs.h:1845 [inline]
       new_sync_read fs/read_write.c:389 [inline]
       vfs_read+0x5e0/0x630 fs/read_write.c:470
       ksys_read+0x163/0x1a0 fs/read_write.c:613
       __do_sys_read fs/read_write.c:623 [inline]
       __se_sys_read fs/read_write.c:621 [inline]
       __x64_sys_read+0x41/0x50 fs/read_write.c:621
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x72/0xdc
      
      value changed: 0xffffffffc4653600 -> 0x0000000000000000
      
      Reported by Kernel Concurrency Sanitizer on:
      CPU: 1 PID: 19183 Comm: syz-executor.5 Not tainted 6.3.0-rc7-02330-gca6270c12e20 #2
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
      
      Fixes: 6c7c98ba ("sock: avoid dirtying sk_stamp, if possible")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20230508175543.55756-1-kuniyu@amazon.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dfd9248c
    • Marek Vasut's avatar
      net: stmmac: Initialize MAC_ONEUS_TIC_COUNTER register · 8efbdbfa
      Marek Vasut authored
      Initialize MAC_ONEUS_TIC_COUNTER register with correct value derived
      from CSR clock, otherwise EEE is unstable on at least NXP i.MX8M Plus
      and Micrel KSZ9131RNX PHY, to the point where not even ARP request can
      be sent out.
      
      i.MX 8M Plus Applications Processor Reference Manual, Rev. 1, 06/2021
      11.7.6.1.34 One-microsecond Reference Timer (MAC_ONEUS_TIC_COUNTER)
      defines this register as:
      "
      This register controls the generation of the Reference time (1 microsecond
      tic) for all the LPI timers. This timer has to be programmed by the software
      initially.
      ...
      The application must program this counter so that the number of clock cycles
      of CSR clock is 1us. (Subtract 1 from the value before programming).
      For example if the CSR clock is 100MHz then this field needs to be programmed
      to value 100 - 1 = 99 (which is 0x63).
      This is required to generate the 1US events that are used to update some of
      the EEE related counters.
      "
      
      The reset value is 0x63 on i.MX8M Plus, which means expected CSR clock are
      100 MHz. However, the i.MX8M Plus "enet_qos_root_clk" are 266 MHz instead,
      which means the LPI timers reach their count much sooner on this platform.
      
      This is visible using a scope by monitoring e.g. exit from LPI mode on TX_CTL
      line from MAC to PHY. This should take 30us per STMMAC_DEFAULT_TWT_LS setting,
      during which the TX_CTL line transitions from tristate to low, and 30 us later
      from low to high. On i.MX8M Plus, this transition takes 11 us, which matches
      the 30us * 100/266 formula for misconfigured MAC_ONEUS_TIC_COUNTER register.
      
      Configure MAC_ONEUS_TIC_COUNTER based on CSR clock, so that the LPI timers
      have correct 1us reference. This then fixes EEE on i.MX8M Plus with Micrel
      KSZ9131RNX PHY.
      
      Fixes: 477286b5 ("stmmac: add GMAC4 core support")
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Tested-by: default avatarHarald Seiler <hws@denx.de>
      Reviewed-by: default avatarFrancesco Dolcini <francesco.dolcini@toradex.com>
      Tested-by: Francesco Dolcini <francesco.dolcini@toradex.com> # Toradex Verdin iMX8MP
      Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Link: https://lore.kernel.org/r/20230506235845.246105-1-marex@denx.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      8efbdbfa
  2. 09 May, 2023 1 commit
  3. 07 May, 2023 2 commits
    • Christophe JAILLET's avatar
      net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() · 27c1eaa0
      Christophe JAILLET authored
      Should of_mdiobus_register() fail, a previous usb_get_dev() call should be
      undone as in the .disconnect function.
      
      Fixes: 04e37d92 ("net: phy: add marvell usb to mdio controller")
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27c1eaa0
    • Eric Dumazet's avatar
      net: skb_partial_csum_set() fix against transport header magic value · 424f8416
      Eric Dumazet authored
      skb->transport_header uses the special 0xFFFF value
      to mark if the transport header was set or not.
      
      We must prevent callers to accidentaly set skb->transport_header
      to 0xFFFF. Note that only fuzzers can possibly do this today.
      
      syzbot reported:
      
      WARNING: CPU: 0 PID: 2340 at include/linux/skbuff.h:2847 skb_transport_offset include/linux/skbuff.h:2956 [inline]
      WARNING: CPU: 0 PID: 2340 at include/linux/skbuff.h:2847 virtio_net_hdr_to_skb+0xbcc/0x10c0 include/linux/virtio_net.h:103
      Modules linked in:
      CPU: 0 PID: 2340 Comm: syz-executor.0 Not tainted 6.3.0-syzkaller #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/14/2023
      RIP: 0010:skb_transport_header include/linux/skbuff.h:2847 [inline]
      RIP: 0010:skb_transport_offset include/linux/skbuff.h:2956 [inline]
      RIP: 0010:virtio_net_hdr_to_skb+0xbcc/0x10c0 include/linux/virtio_net.h:103
      Code: 41 39 df 0f 82 c3 04 00 00 48 8b 7c 24 10 44 89 e6 e8 08 6e 59 ff 48 85 c0 74 54 e8 ce 36 7e fc e9 37 f8 ff ff e8 c4 36 7e fc <0f> 0b e9 93 f8 ff ff 44 89 f7 44 89 e6 e8 32 38 7e fc 45 39 e6 0f
      RSP: 0018:ffffc90004497880 EFLAGS: 00010293
      RAX: ffffffff84fea55c RBX: 000000000000ffff RCX: ffff888120be2100
      RDX: 0000000000000000 RSI: 000000000000ffff RDI: 000000000000ffff
      RBP: ffffc90004497990 R08: ffffffff84fe9de5 R09: 0000000000000034
      R10: ffffea00048ebd80 R11: 0000000000000034 R12: ffff88811dc2d9c8
      R13: dffffc0000000000 R14: ffff88811dc2d9ae R15: 1ffff11023b85b35
      FS: 00007f9211a59700(0000) GS:ffff8881f6c00000(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00000000200002c0 CR3: 00000001215a5000 CR4: 00000000003506f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
      <TASK>
      packet_snd net/packet/af_packet.c:3076 [inline]
      packet_sendmsg+0x4590/0x61a0 net/packet/af_packet.c:3115
      sock_sendmsg_nosec net/socket.c:724 [inline]
      sock_sendmsg net/socket.c:747 [inline]
      __sys_sendto+0x472/0x630 net/socket.c:2144
      __do_sys_sendto net/socket.c:2156 [inline]
      __se_sys_sendto net/socket.c:2152 [inline]
      __x64_sys_sendto+0xe5/0x100 net/socket.c:2152
      do_syscall_x64 arch/x86/entry/common.c:50 [inline]
      do_syscall_64+0x2f/0x50 arch/x86/entry/common.c:80
      entry_SYSCALL_64_after_hwframe+0x63/0xcd
      RIP: 0033:0x7f9210c8c169
      Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 19 00 00 90 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 b8 ff ff ff f7 d8 64 89 01 48
      RSP: 002b:00007f9211a59168 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
      RAX: ffffffffffffffda RBX: 00007f9210dabf80 RCX: 00007f9210c8c169
      RDX: 000000000000ffed RSI: 00000000200000c0 RDI: 0000000000000003
      RBP: 00007f9210ce7ca1 R08: 0000000020000540 R09: 0000000000000014
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
      R13: 00007ffe135d65cf R14: 00007f9211a59300 R15: 0000000000022000
      
      Fixes: 66e4c8d9 ("net: warn if transport header was not set")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      424f8416
  4. 06 May, 2023 3 commits
    • Linus Torvalds's avatar
      Merge tag 'net-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · ed23734c
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter.
      
        Current release - regressions:
      
         - sched: act_pedit: free pedit keys on bail from offset check
      
        Current release - new code bugs:
      
         - pds_core:
            - Kconfig fixes (DEBUGFS and AUXILIARY_BUS)
            - fix mutex double unlock in error path
      
        Previous releases - regressions:
      
         - sched: cls_api: remove block_cb from driver_list before freeing
      
         - nf_tables: fix ct untracked match breakage
      
         - eth: mtk_eth_soc: drop generic vlan rx offload
      
         - sched: flower: fix error handler on replace
      
        Previous releases - always broken:
      
         - tcp: fix skb_copy_ubufs() vs BIG TCP
      
         - ipv6: fix skb hash for some RST packets
      
         - af_packet: don't send zero-byte data in packet_sendmsg_spkt()
      
         - rxrpc: timeout handling fixes after moving client call connection
           to the I/O thread
      
         - ixgbe: fix panic during XDP_TX with > 64 CPUs
      
         - igc: RMW the SRRCTL register to prevent losing timestamp config
      
         - dsa: mt7530: fix corrupt frames using TRGMII on 40 MHz XTAL MT7621
      
         - r8152:
            - fix flow control issue of RTL8156A
            - fix the poor throughput for 2.5G devices
            - move setting r8153b_rx_agg_chg_indicate() to fix coalescing
            - enable autosuspend
      
         - ncsi: clear Tx enable mode when handling a Config required AEN
      
         - octeontx2-pf: macsec: fixes for CN10KB ASIC rev
      
        Misc:
      
         - 9p: remove INET dependency"
      
      * tag 'net-6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits)
        net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
        pds_core: fix mutex double unlock in error path
        net/sched: flower: fix error handler on replace
        Revert "net/sched: flower: Fix wrong handle assignment during filter change"
        net/sched: flower: fix filter idr initialization
        net: fec: correct the counting of XDP sent frames
        bonding: add xdp_features support
        net: enetc: check the index of the SFI rather than the handle
        sfc: Add back mailing list
        virtio_net: suppress cpu stall when free_unused_bufs
        ice: block LAN in case of VF to VF offload
        net: dsa: mt7530: fix network connectivity with multiple CPU ports
        net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
        9p: Remove INET dependency
        netfilter: nf_tables: fix ct untracked match breakage
        af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
        igc: read before write to SRRCTL register
        pds_core: add AUXILIARY_BUS and NET_DEVLINK to Kconfig
        pds_core: remove CONFIG_DEBUG_FS from makefile
        ionic: catch failure from devlink_alloc
        ...
      ed23734c
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.4-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · a5e21900
      Linus Torvalds authored
      Pull more i2c updates from Wolfram Sang:
       "Some more driver bugfixes and a DT binding conversion"
      
      * tag 'i2c-for-6.4-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        dt-bindings: i2c: brcm,kona-i2c: convert to YAML
        i2c: gxp: fix build failure without CONFIG_I2C_SLAVE
        i2c: imx-lpi2c: avoid taking clk_prepare mutex in PM callbacks
        i2c: omap: Fix standard mode false ACK readings
        i2c: tegra: Fix PEC support for SMBUS block read
      a5e21900
    • Lukas Bulwahn's avatar
      s390: remove the unneeded select GCC12_NO_ARRAY_BOUNDS · c12753d5
      Lukas Bulwahn authored
      Commit 0da6e5fd ("gcc: disable '-Warray-bounds' for gcc-13 too") makes
      config GCC11_NO_ARRAY_BOUNDS to be for disabling -Warray-bounds in any gcc
      version 11 and upwards, and with that, removes the GCC12_NO_ARRAY_BOUNDS
      config as it is now covered by the semantics of GCC11_NO_ARRAY_BOUNDS.
      
      As GCC11_NO_ARRAY_BOUNDS is yes by default, there is no need for the s390
      architecture to explicitly select GCC11_NO_ARRAY_BOUNDS. Hence, the select
      GCC12_NO_ARRAY_BOUNDS in arch/s390/Kconfig can simply be dropped.
      
      Remove the unneeded "select GCC12_NO_ARRAY_BOUNDS".
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c12753d5
  5. 05 May, 2023 29 commits
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 644bca1d
      Jakub Kicinski authored
      There's a fix which landed in net-next, pull it in along
      with the couple of minor cleanups.
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      644bca1d
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 418d5c98
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Add Conor Dooley as a DT binding maintainer
      
       - Swap the order of parsing /memreserve/ and /reserved-memory nodes so
         that the /reserved-memory nodes which have more information are
         handled first
      
       - Fix some property dependencies in riscv,pmu binding
      
       - Update maintainers entries on a couple of bindings
      
      * tag 'devicetree-fixes-for-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        MAINTAINERS: add Conor as a dt-bindings maintainer
        dt-bindings: perf: riscv,pmu: fix property dependencies
        dt-bindings: xilinx: Remove Naga from memory and mtd bindings
        of: fdt: Scan /memreserve/ last
        dt-bindings: clock: r9a06g032-sysctrl: Change maintainer to Fabrizio Castro
        dt-bindings: pinctrl: renesas,rzv2m: Change maintainer to Fabrizio Castro
        dt-bindings: pinctrl: renesas,rzn1: Change maintainer to Fabrizio Castro
        dt-bindings: i2c: renesas,rzv2m: Change maintainer to Fabrizio Castro
      418d5c98
    • Linus Torvalds's avatar
      Merge tag 'docs-6.4-2' of git://git.lwn.net/linux · 647681bf
      Linus Torvalds authored
      Pull more documentation updates from Jonathan Corbet:
       "A handful of late-arriving documentation fixes, plus one Spanish
        translation that has been ready for some time but got applied late"
      
      * tag 'docs-6.4-2' of git://git.lwn.net/linux:
        docs/sp_SP: Add translation of process/adding-syscalls
        CREDITS: Update email address for Mat Martineau
        Documentation: update kernel stack for x86_64
        docs: Remove unnecessary unicode character
        docs: fix "Reviewd" typo
        Documentation: timers: hrtimers: Make hybrid union historical
        docs/admin-guide/mm/ksm.rst fix intraface -> interface typo
        doc:it_IT: fix some typos
      647681bf
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · e919a3f7
      Linus Torvalds authored
      Pull more tracing updates from Steven Rostedt:
      
       - Make buffer_percent read/write.
      
         The buffer_percent file is how users can state how long to block on
         the tracing buffer depending on how much is in the buffer. When it
         hits the "buffer_percent" it will wake the task waiting on the
         buffer. For some reason it was set to read-only.
      
         This was not noticed because testing was done as root without
         SELinux, but with SELinux it will prevent even root to write to it
         without having CAP_DAC_OVERRIDE.
      
       - The "touched_functions" was added this merge window, but one of the
         reasons for adding it was not implemented.
      
         That was to show what functions were not only touched, but had either
         a direct trampoline attached to it, or a kprobe or live kernel
         patching that can "hijack" the function to run a different function.
         The point is to know if there's functions in the kernel that may not
         be behaving as the kernel code shows. This can be used for debugging.
      
         TODO: Add this information to kernel oops too.
      
      * tag 'trace-v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ftrace: Add MODIFIED flag to show if IPMODIFY or direct was attached
        tracing: Fix permissions for the buffer_percent file
      e919a3f7
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2023-05-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b115d85a
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - Introduce local{,64}_try_cmpxchg() - a slightly more optimal
         primitive, which will be used in perf events ring-buffer code
      
       - Simplify/modify rwsems on PREEMPT_RT, to address writer starvation
      
       - Misc cleanups/fixes
      
      * tag 'locking-core-2023-05-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/atomic: Correct (cmp)xchg() instrumentation
        locking/x86: Define arch_try_cmpxchg_local()
        locking/arch: Wire up local_try_cmpxchg()
        locking/generic: Wire up local{,64}_try_cmpxchg()
        locking/atomic: Add generic try_cmpxchg{,64}_local() support
        locking/rwbase: Mitigate indefinite writer starvation
        locking/arch: Rename all internal __xchg() names to __arch_xchg()
      b115d85a
    • Linus Torvalds's avatar
      Merge branch 'x86-uaccess-cleanup': x86 uaccess header cleanups · d5ed10bb
      Linus Torvalds authored
      Merge my x86 uaccess updates branch.
      
      The LAM ("Linear Address Masking") updates in this release made me
      unhappy about how "access_ok()" was done, and it actually turned out to
      have a couple of small bugs in it too.  This is my cleanup of the code:
      
       - use the sign bit of the __user pointer rather than masking the
         address and checking it against the TASK_SIZE range.
      
         We already did this part for the get/put_user() side, but
         'access_ok()' did the naïve "mask and range check" thing, which not
         only generates nasty code, but also ended up meaning that __access_ok
         itself didn't do a good job, and so copy_from_user_nmi() didn't get
         the check right.
      
       - move all the code that is 64-bit only into the 64-bit version of the
         header file, so that we don't unnecessarily pollute the shared x86
         code and make it look like LAM might work in 32-bit too.
      
       - fix a bug in the address masking (that doesn't end up mattering: in
         this case the fix was to just remove the buggy code entirely).
      
       - a couple of trivial cleanups and added commentary about the
         access_ok() rules.
      
      * x86-uaccess-cleanup:
        x86-64: mm: clarify the 'positive addresses' user address rules
        x86: mm: remove 'sign' games from LAM untagged_addr*() macros
        x86: uaccess: move 32-bit and 64-bit parts into proper <asm/uaccess_N.h> header
        x86: mm: remove architecture-specific 'access_ok()' define
        x86-64: make access_ok() independent of LAM
      d5ed10bb
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.4-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 982365a8
      Linus Torvalds authored
      Pull more RISC-V updates from Palmer Dabbelt:
      
       - Support for hibernation
      
       - The .rela.dyn section has been moved to the init area
      
       - A fix for the SBI probing to allow for implementation-defined
         behavior
      
       - Various other fixes and cleanups throughout the tree
      
      * tag 'riscv-for-linus-6.4-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: include cpufeature.h in cpufeature.c
        riscv: Move .rela.dyn to the init sections
        dt-bindings: riscv: explicitly mention assumption of Zicsr & Zifencei support
        riscv: compat_syscall_table: Fixup compile warning
        RISC-V: fixup in-flight collision with ARCH_WANT_OPTIMIZE_VMEMMAP rename
        RISC-V: fix sifive and thead section mismatches in errata
        RISC-V: Align SBI probe implementation with spec
        riscv: mm: remove redundant parameter of create_fdt_early_page_table
        riscv: Adjust dependencies of HAVE_DYNAMIC_FTRACE selection
        RISC-V: Add arch functions to support hibernation/suspend-to-disk
        RISC-V: mm: Enable huge page support to kernel_page_present() function
        RISC-V: Factor out common code of __cpu_resume_enter()
        RISC-V: Change suspend_save_csrs and suspend_restore_csrs to public function
      982365a8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 493804a6
      Linus Torvalds authored
      Pull more kvm updates from Paolo Bonzini:
       "This includes the 6.4 changes for RISC-V, and a few bugfix patches for
        other architectures. For x86, this closes a longstanding performance
        issue in the newer and (usually) more scalable page table management
        code.
      
        RISC-V:
         - ONE_REG interface to enable/disable SBI extensions
         - Zbb extension for Guest/VM
         - AIA CSR virtualization
      
        x86:
         - Fix a long-standing TDP MMU flaw, where unloading roots on a vCPU
           can result in the root being freed even though the root is
           completely valid and can be reused as-is (with a TLB flush).
      
        s390:
         - A couple of bugfixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: s390: fix race in gmap_make_secure()
        KVM: s390: pv: fix asynchronous teardown for small VMs
        KVM: x86: Preserve TDP MMU roots until they are explicitly invalidated
        RISC-V: KVM: Virtualize per-HART AIA CSRs
        RISC-V: KVM: Use bitmap for irqs_pending and irqs_pending_mask
        RISC-V: KVM: Add ONE_REG interface for AIA CSRs
        RISC-V: KVM: Implement subtype for CSR ONE_REG interface
        RISC-V: KVM: Initial skeletal support for AIA
        RISC-V: KVM: Drop the _MASK suffix from hgatp.VMID mask defines
        RISC-V: Detect AIA CSRs from ISA string
        RISC-V: Add AIA related CSR defines
        RISC-V: KVM: Allow Zbb extension for Guest/VM
        RISC-V: KVM: Add ONE_REG interface to enable/disable SBI extensions
        RISC-V: KVM: Alphabetize selects
        KVM: RISC-V: Retry fault if vma_lookup() results become invalid
      493804a6
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.4-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7163a211
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Remove an ACPI backlight quirk for Lenovo ThinkPad W530, added during
        the 6.3 cycle, that turned out to do more harm than help (Hans de
        Goede)"
      
      * tag 'acpi-6.4-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: video: Remove acpi_backlight=video quirk for Lenovo ThinkPad W530
      7163a211
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.4-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 817e1af1
      Linus Torvalds authored
      Pull thermal control fixes from Rafael Wysocki:
       "These fix a NULL pointer dereference in the Intel powerclamp driver
        introduced during the 6.3 cycle and update MAINTAINERS to match recent
        code changes.
      
        Specifics:
      
         - Fix NULL pointer access in the Intel powerclamp thermal driver that
           occurs on attempts to set the cooling device state to 0 in the
           default configuration (Srinivas Pandruvada)
      
         - Drop the stale MAINTAINERS entry for the Intel Menlow thermal
           driver that has been removed recently (Lukas Bulwahn)"
      
      * tag 'thermal-6.4-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        MAINTAINERS: remove section INTEL MENLOW THERMAL DRIVER
        thermal: intel: powerclamp: Fix NULL pointer access issue
      817e1af1
    • Linus Torvalds's avatar
      Merge tag 'phy-fixes-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy · b49178e6
      Linus Torvalds authored
      Pull phy fixes from Vinod Koul:
      
       - Fix for mediatek driver warning for variable used uninitialized and
         for wrong pll math
      
      * tag 'phy-fixes-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy:
        phy: mediatek: hdmi: mt8195: fix wrong pll calculus
        phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc
      b49178e6
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2023-05-05' of git://anongit.freedesktop.org/drm/drm · 084f51d4
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "This is the fixes for the last couple of weeks for i915 and last 3
        weeks for amdgpu, lots of them but pretty scattered around and all
        pretty small.
      
        amdgpu:
         - SR-IOV fixes
         - DCN 3.2 fixes
         - DC mclk handling fixes
         - eDP fixes
         - SubVP fixes
         - HDCP regression fix
         - DSC fixes
         - DC FP fixes
         - DCN 3.x fixes
         - Display flickering fix when switching between vram and gtt
         - Z8 power saving fix
         - Fix hang when skipping modeset
         - GPU reset fixes
         - Doorbell fix when resizing BARs
         - Fix spurious warnings in gmc
         - Locking fix for AMDGPU_SCHED IOCTL
         - SR-IOV fix
         - DCN 3.1.4 fix
         - DCN 3.2 fix
         - Fix job cleanup when CS is aborted
      
        i915:
         - skl pipe source size check
         - mtl transcoder mask fix
         - DSI power on sequence fix
         - GuC versioning corner case fix"
      
      * tag 'drm-next-2023-05-05' of git://anongit.freedesktop.org/drm/drm: (48 commits)
        drm/amdgpu: drop redundant sched job cleanup when cs is aborted
        drm/amd/display: filter out invalid bits in pipe_fuses
        drm/amd/display: Change default Z8 watermark values
        drm/amdgpu: disable SDMA WPTR_POLL_ENABLE for SR-IOV
        drm/amdgpu: add a missing lock for AMDGPU_SCHED
        drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
        drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v10_0_hw_fini
        drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v11_0_hw_fini
        drm/amdgpu: Enable doorbell selfring after resize FB BAR
        drm/amdgpu: Use the default reset when loading or reloading the driver
        drm/amdgpu: Fix mode2 reset for sienna cichlid
        drm/i915/dsi: Use unconditional msleep() instead of intel_dsi_msleep()
        drm/i915/mtl: Add the missing CPU transcoder mask in intel_device_info
        drm/i915/guc: Actually return an error if GuC version range check fails
        drm/amd/display: Lowering min Z8 residency time
        drm/amd/display: fix flickering caused by S/G mode
        drm/amd/display: Set min_width and min_height capability for DCN30
        drm/amd/display: Isolate remaining FPU code in DCN32
        drm/amd/display: Update bounding box values for DCN321
        drm/amd/display: Do not clear GPINT register when releasing DMUB from reset
        ...
      084f51d4
    • Steven Rostedt (Google)'s avatar
      ftrace: Add MODIFIED flag to show if IPMODIFY or direct was attached · 6ce2c04f
      Steven Rostedt (Google) authored
      If a function had ever had IPMODIFY or DIRECT attached to it, where this
      is how live kernel patching and BPF overrides work, mark them and display
      an "M" in the enabled_functions and touched_functions files. This can be
      used for debugging. If a function had been modified and later there's a bug
      in the code related to that function, this can be used to know if the cause
      is possibly from a live kernel patch or a BPF program that changed the
      behavior of the code.
      
      Also update the documentation on the enabled_functions and
      touched_functions output, as it was missing direct callers and CALL_OPS.
      And include this new modify attribute.
      
      Link: https://lore.kernel.org/linux-trace-kernel/20230502213233.004e3ae4@gandalf.local.home
      
      Cc: Mark Rutland <mark.rutland@arm.com>
      Acked-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      6ce2c04f
    • Lukas Bulwahn's avatar
      MAINTAINERS: remove section INTEL MENLOW THERMAL DRIVER · 2492ba4c
      Lukas Bulwahn authored
      Commit 2b6a7409 ("thermal: intel: menlow: Get rid of this driver")
      removes the driver drivers/thermal/intel/intel_menlow.c, but misses to
      remove its reference in MAINTAINERS.
      
      Hence, ./scripts/get_maintainer.pl --self-test=patterns complains about a
      broken reference.
      
      Remove the INTEL MENLOW THERMAL DRIVER section in MAINTAINERS.
      
      Fixes: 2b6a7409 ("thermal: intel: menlow: Get rid of this driver")
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2492ba4c
    • Conor Dooley's avatar
      MAINTAINERS: add Conor as a dt-bindings maintainer · 6997f847
      Conor Dooley authored
      Rob asked if I would be interested in helping with the dt-bindings
      maintenance, and since I am a glutton for punishment I accepted.
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Acked-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Link: https://lore.kernel.org/r/20230504-renderer-alive-1c01d431b2a7@spudSigned-off-by: default avatarRob Herring <robh@kernel.org>
      6997f847
    • Paolo Bonzini's avatar
      Merge tag 'kvm-s390-next-6.4-2' of... · 7a8016d9
      Paolo Bonzini authored
      Merge tag 'kvm-s390-next-6.4-2' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      
      For 6.4
      7a8016d9
    • Paolo Bonzini's avatar
      Merge tag 'kvm-x86-mmu-6.4-2' of https://github.com/kvm-x86/linux into HEAD · 29b38e76
      Paolo Bonzini authored
      Fix a long-standing flaw in x86's TDP MMU where unloading roots on a vCPU can
      result in the root being freed even though the root is completely valid and
      can be reused as-is (with a TLB flush).
      29b38e76
    • Paolo Bonzini's avatar
      Merge tag 'kvm-riscv-6.4-1' of https://github.com/kvm-riscv/linux into HEAD · d4fba4df
      Paolo Bonzini authored
      KVM/riscv changes for 6.4
      
      - ONE_REG interface to enable/disable SBI extensions
      - Zbb extension for Guest/VM
      - AIA CSR virtualization
      d4fba4df
    • Florian Fainelli's avatar
      net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop() · 93e0401e
      Florian Fainelli authored
      The call to phy_stop() races with the later call to phy_disconnect(),
      resulting in concurrent phy_suspend() calls being run from different
      CPUs. The final call to phy_disconnect() ensures that the PHY is
      stopped and suspended, too.
      
      Fixes: c96e731c ("net: bcmgenet: connect and disconnect from the PHY state machine")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93e0401e
    • Shannon Nelson's avatar
      pds_core: fix mutex double unlock in error path · 1e76f427
      Shannon Nelson authored
      Fix a double unlock in an error handling path by unlocking as soon as
      the error is seen and removing unlocks in the error cleanup path.
      
      Link: https://lore.kernel.org/kernel-janitors/209a09f6-5ec6-40c7-a5ec-6260d8f54d25@kili.mountain/
      Fixes: 523847df ("pds_core: add devcmd device interfaces")
      Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
      Signed-off-by: default avatarShannon Nelson <shannon.nelson@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e76f427
    • David S. Miller's avatar
      Merge branch 'tc-action-fixes' · 1a304495
      David S. Miller authored
      Vlad Buslov says:
      
      ====================
      Fixes for miss to tc action series
      
      Changes V1 -> V2:
      
      - Added new patch reverting Ivan's fix for the same issue.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a304495
    • Vlad Buslov's avatar
      net/sched: flower: fix error handler on replace · fd741f0d
      Vlad Buslov authored
      When replacing a filter (i.e. 'fold' pointer is not NULL) the insertion of
      new filter to idr is postponed until later in code since handle is already
      provided by the user. However, the error handling code in fl_change()
      always assumes that the new filter had been inserted into idr. If error
      handler is reached when replacing existing filter it may remove it from idr
      therefore making it unreachable for delete or dump afterwards. Fix the
      issue by verifying that 'fold' argument wasn't provided by caller before
      calling idr_remove().
      
      Fixes: 08a0063d ("net/sched: flower: Move filter handle initialization earlier")
      Signed-off-by: default avatarVlad Buslov <vladbu@nvidia.com>
      Reviewed-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fd741f0d
    • Vlad Buslov's avatar
      Revert "net/sched: flower: Fix wrong handle assignment during filter change" · 5110f3ff
      Vlad Buslov authored
      This reverts commit 32eff6ba.
      
      Superseded by the following commit in this series.
      Signed-off-by: default avatarVlad Buslov <vladbu@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5110f3ff
    • Vlad Buslov's avatar
      net/sched: flower: fix filter idr initialization · dd4f6bbf
      Vlad Buslov authored
      The cited commit moved idr initialization too early in fl_change() which
      allows concurrent users to access the filter that is still being
      initialized and is in inconsistent state, which, in turn, can cause NULL
      pointer dereference [0]. Since there is no obvious way to fix the ordering
      without reverting the whole cited commit, alternative approach taken to
      first insert NULL pointer into idr in order to allocate the handle but
      still cause fl_get() to return NULL and prevent concurrent users from
      seeing the filter while providing miss-to-action infrastructure with valid
      handle id early in fl_change().
      
      [  152.434728] general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN
      [  152.436163] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
      [  152.437269] CPU: 4 PID: 3877 Comm: tc Not tainted 6.3.0-rc4+ #5
      [  152.438110] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
      [  152.439644] RIP: 0010:fl_dump_key+0x8b/0x1d10 [cls_flower]
      [  152.440461] Code: 01 f2 02 f2 c7 40 08 04 f2 04 f2 c7 40 0c 04 f3 f3 f3 65 48 8b 04 25 28 00 00 00 48 89 84 24 00 01 00 00 48 89 c8 48 c1 e8 03 <0f> b6 04 10 84 c0 74 08 3c 03 0f 8e 98 19 00 00 8b 13 85 d2 74 57
      [  152.442885] RSP: 0018:ffff88817a28f158 EFLAGS: 00010246
      [  152.443851] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
      [  152.444826] RDX: dffffc0000000000 RSI: ffffffff8500ae80 RDI: ffff88810a987900
      [  152.445791] RBP: ffff888179d88240 R08: ffff888179d8845c R09: ffff888179d88240
      [  152.446780] R10: ffffed102f451e48 R11: 00000000fffffff2 R12: ffff88810a987900
      [  152.447741] R13: ffffffff8500ae80 R14: ffff88810a987900 R15: ffff888149b3c738
      [  152.448756] FS:  00007f5eb2a34800(0000) GS:ffff88881ec00000(0000) knlGS:0000000000000000
      [  152.449888] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  152.450685] CR2: 000000000046ad19 CR3: 000000010b0bd006 CR4: 0000000000370ea0
      [  152.451641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  152.452628] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  152.453588] Call Trace:
      [  152.454032]  <TASK>
      [  152.454447]  ? netlink_sendmsg+0x7a1/0xcb0
      [  152.455109]  ? sock_sendmsg+0xc5/0x190
      [  152.455689]  ? ____sys_sendmsg+0x535/0x6b0
      [  152.456320]  ? ___sys_sendmsg+0xeb/0x170
      [  152.456916]  ? do_syscall_64+0x3d/0x90
      [  152.457529]  ? entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  152.458321]  ? ___sys_sendmsg+0xeb/0x170
      [  152.458958]  ? __sys_sendmsg+0xb5/0x140
      [  152.459564]  ? do_syscall_64+0x3d/0x90
      [  152.460122]  ? entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  152.460852]  ? fl_dump_key_options.part.0+0xea0/0xea0 [cls_flower]
      [  152.461710]  ? _raw_spin_lock+0x7a/0xd0
      [  152.462299]  ? _raw_read_lock_irq+0x30/0x30
      [  152.462924]  ? nla_put+0x15e/0x1c0
      [  152.463480]  fl_dump+0x228/0x650 [cls_flower]
      [  152.464112]  ? fl_tmplt_dump+0x210/0x210 [cls_flower]
      [  152.464854]  ? __kmem_cache_alloc_node+0x1a7/0x330
      [  152.465592]  ? nla_put+0x15e/0x1c0
      [  152.466160]  tcf_fill_node+0x515/0x9a0
      [  152.466766]  ? tc_setup_offload_action+0xf0/0xf0
      [  152.467463]  ? __alloc_skb+0x13c/0x2a0
      [  152.468067]  ? __build_skb_around+0x330/0x330
      [  152.468814]  ? fl_get+0x107/0x1a0 [cls_flower]
      [  152.469503]  tc_del_tfilter+0x718/0x1330
      [  152.470115]  ? is_bpf_text_address+0xa/0x20
      [  152.470765]  ? tc_ctl_chain+0xee0/0xee0
      [  152.471335]  ? __kernel_text_address+0xe/0x30
      [  152.471948]  ? unwind_get_return_address+0x56/0xa0
      [  152.472639]  ? __thaw_task+0x150/0x150
      [  152.473218]  ? arch_stack_walk+0x98/0xf0
      [  152.473839]  ? __stack_depot_save+0x35/0x4c0
      [  152.474501]  ? stack_trace_save+0x91/0xc0
      [  152.475119]  ? security_capable+0x51/0x90
      [  152.475741]  rtnetlink_rcv_msg+0x2c1/0x9d0
      [  152.476387]  ? rtnl_calcit.isra.0+0x2b0/0x2b0
      [  152.477042]  ? __sys_sendmsg+0xb5/0x140
      [  152.477664]  ? do_syscall_64+0x3d/0x90
      [  152.478255]  ? entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  152.479010]  ? __stack_depot_save+0x35/0x4c0
      [  152.479679]  ? __stack_depot_save+0x35/0x4c0
      [  152.480346]  netlink_rcv_skb+0x12c/0x360
      [  152.480929]  ? rtnl_calcit.isra.0+0x2b0/0x2b0
      [  152.481517]  ? do_syscall_64+0x3d/0x90
      [  152.482061]  ? netlink_ack+0x1550/0x1550
      [  152.482612]  ? rhashtable_walk_peek+0x170/0x170
      [  152.483262]  ? kmem_cache_alloc_node+0x1af/0x390
      [  152.483875]  ? _copy_from_iter+0x3d6/0xc70
      [  152.484528]  netlink_unicast+0x553/0x790
      [  152.485168]  ? netlink_attachskb+0x6a0/0x6a0
      [  152.485848]  ? unwind_next_frame+0x11cc/0x1a10
      [  152.486538]  ? arch_stack_walk+0x61/0xf0
      [  152.487169]  netlink_sendmsg+0x7a1/0xcb0
      [  152.487799]  ? netlink_unicast+0x790/0x790
      [  152.488355]  ? iovec_from_user.part.0+0x4d/0x220
      [  152.488990]  ? _raw_spin_lock+0x7a/0xd0
      [  152.489598]  ? netlink_unicast+0x790/0x790
      [  152.490236]  sock_sendmsg+0xc5/0x190
      [  152.490796]  ____sys_sendmsg+0x535/0x6b0
      [  152.491394]  ? import_iovec+0x7/0x10
      [  152.491964]  ? kernel_sendmsg+0x30/0x30
      [  152.492561]  ? __copy_msghdr+0x3c0/0x3c0
      [  152.493160]  ? do_syscall_64+0x3d/0x90
      [  152.493706]  ___sys_sendmsg+0xeb/0x170
      [  152.494283]  ? may_open_dev+0xd0/0xd0
      [  152.494858]  ? copy_msghdr_from_user+0x110/0x110
      [  152.495541]  ? __handle_mm_fault+0x2678/0x4ad0
      [  152.496205]  ? copy_page_range+0x2360/0x2360
      [  152.496862]  ? __fget_light+0x57/0x520
      [  152.497449]  ? mas_find+0x1c0/0x1c0
      [  152.498026]  ? sockfd_lookup_light+0x1a/0x140
      [  152.498703]  __sys_sendmsg+0xb5/0x140
      [  152.499306]  ? __sys_sendmsg_sock+0x20/0x20
      [  152.499951]  ? do_user_addr_fault+0x369/0xd80
      [  152.500595]  do_syscall_64+0x3d/0x90
      [  152.501185]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  152.501917] RIP: 0033:0x7f5eb294f887
      [  152.502494] Code: 0a 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10
      [  152.505008] RSP: 002b:00007ffd2c708f78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      [  152.506152] RAX: ffffffffffffffda RBX: 00000000642d9472 RCX: 00007f5eb294f887
      [  152.507134] RDX: 0000000000000000 RSI: 00007ffd2c708fe0 RDI: 0000000000000003
      [  152.508113] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
      [  152.509119] R10: 00007f5eb2808708 R11: 0000000000000246 R12: 0000000000000001
      [  152.510068] R13: 0000000000000000 R14: 00007ffd2c70d1b8 R15: 0000000000485400
      [  152.511031]  </TASK>
      [  152.511444] Modules linked in: cls_flower sch_ingress openvswitch nsh mlx5_vdpa vringh vhost_iotlb vdpa mlx5_ib mlx5_core rpcrdma rdma_ucm ib_iser libiscsi scsi_transport_iscsi ib_umad rdma_cm ib_ipoib iw_cm ib_cm ib_uverbs ib_core xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_nat nf_nat br_netfilter overlay zram zsmalloc fuse [last unloaded: mlx5_core]
      [  152.515720] ---[ end trace 0000000000000000 ]---
      
      Fixes: 08a0063d ("net/sched: flower: Move filter handle initialization earlier")
      Signed-off-by: default avatarVlad Buslov <vladbu@nvidia.com>
      Reviewed-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd4f6bbf
    • Shenwei Wang's avatar
      net: fec: correct the counting of XDP sent frames · 26312c68
      Shenwei Wang authored
      In the current xdp_xmit implementation, if any single frame fails to
      transmit due to insufficient buffer descriptors, the function nevertheless
      reports success in sending all frames. This results in erroneously
      indicating that frames were transmitted when in fact they were dropped.
      
      This patch fixes the issue by ensureing the return value properly
      indicates the actual number of frames successfully transmitted, rather than
      potentially reporting success for all frames when some could not transmit.
      
      Fixes: 6d6b39f1 ("net: fec: add initial XDP support")
      Signed-off-by: default avatarGagandeep Singh <g.singh@nxp.com>
      Signed-off-by: default avatarShenwei Wang <shenwei.wang@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      26312c68
    • Lorenzo Bianconi's avatar
      bonding: add xdp_features support · cb9e6e58
      Lorenzo Bianconi authored
      Introduce xdp_features support for bonding driver according to the slave
      devices attached to the master one. xdp_features is required whenever we
      want to xdp_redirect traffic into a bond device and then into selected
      slaves attached to it.
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Acked-by: default avatarJay Vosburgh <jay.vosburgh@canonical.com>
      Fixes: 66c0e13a ("drivers: net: turn on XDP features")
      Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
      Reviewed-by: default avatarJussi Maki <joamaki@gmail.com>
      Tested-by: default avatarJussi Maki <joamaki@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cb9e6e58
    • Wei Fang's avatar
      net: enetc: check the index of the SFI rather than the handle · 299efdc2
      Wei Fang authored
      We should check whether the current SFI (Stream Filter Instance) table
      is full before creating a new SFI entry. However, the previous logic
      checks the handle by mistake and might lead to unpredictable behavior.
      
      Fixes: 888ae5a3 ("net: enetc: add tc flower psfp offload driver")
      Signed-off-by: default avatarWei Fang <wei.fang@nxp.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      299efdc2
    • Martin Habets's avatar
      sfc: Add back mailing list · c00ce547
      Martin Habets authored
      We used to have a mailing list in the MAINTAINERS file, but removed this
      when we became part of Xilinx as it stopped working.
      Now inside AMD we have the list again. Add it back so patches will be seen
      by all sfc developers.
      Signed-off-by: default avatarMartin Habets <habetsm.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c00ce547
    • Wenliang Wang's avatar
      virtio_net: suppress cpu stall when free_unused_bufs · f8bb5104
      Wenliang Wang authored
      For multi-queue and large ring-size use case, the following error
      occurred when free_unused_bufs:
      rcu: INFO: rcu_sched self-detected stall on CPU.
      
      Fixes: 986a4f4d ("virtio_net: multiqueue support")
      Signed-off-by: default avatarWenliang Wang <wangwenliang.1995@bytedance.com>
      Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f8bb5104