1. 07 Jan, 2024 6 commits
    • Linus Walleij's avatar
      net: ethernet: cortina: Drop TSO support · ac631873
      Linus Walleij authored
      The recent change to allow large frames without hardware checksumming
      slotted in software checksumming in the driver if hardware could not
      do it.
      
      This will however upset TSO (TCP Segment Offloading). Typical
      error dumps includes this:
      
      skb len=2961 headroom=222 headlen=66 tailroom=0
      (...)
      WARNING: CPU: 0 PID: 956 at net/core/dev.c:3259 skb_warn_bad_offload+0x7c/0x108
      gemini-ethernet-port: caps=(0x0000010000154813, 0x00002007ffdd7889)
      
      And the packets do not go through.
      
      The TSO implementation is bogus: a TSO enabled driver must propagate
      the skb_shinfo(skb)->gso_size value to the TSO engine on the NIC.
      
      Drop the size check and TSO offloading features for now: this
      needs to be fixed up properly.
      
      After this ethernet works fine on Gemini devices with a direct connected
      PHY such as D-Link DNS-313.
      
      Also tested to still be working with a DSA switch using the Gemini
      ethernet as conduit interface.
      
      Link: https://lore.kernel.org/netdev/CANn89iJLfxng1sYL5Zk0mknXpyYQPCp83m3KgD2KJ2_hKCpEUg@mail.gmail.com/Suggested-by: default avatarEric Dumazet <edumazet@google.com>
      Fixes: d4d0c5b4 ("net: ethernet: cortina: Handle large frames")
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ac631873
    • Petr Tesarik's avatar
      net: stmmac: fix ethtool per-queue statistics · 61921bda
      Petr Tesarik authored
      Fix per-queue statistics for devices with more than one queue.
      
      The output data pointer is currently reset in each loop iteration,
      effectively summing all queue statistics in the first four u64 values.
      
      The summary values are not even labeled correctly. For example, if eth0 has
      2 queues, ethtool -S eth0 shows:
      
           q0_tx_pkt_n: 374 (actually tx_pkt_n over all queues)
           q0_tx_irq_n: 23  (actually tx_normal_irq_n over all queues)
           q1_tx_pkt_n: 462 (actually rx_pkt_n over all queues)
           q1_tx_irq_n: 446 (actually rx_normal_irq_n over all queues)
           q0_rx_pkt_n: 0
           q0_rx_irq_n: 0
           q1_rx_pkt_n: 0
           q1_rx_irq_n: 0
      
      Fixes: 133466c3 ("net: stmmac: use per-queue 64 bit statistics where necessary")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPetr Tesarik <petr@tesarici.cz>
      Reviewed-by: default avatarJisheng Zhang <jszhang@kernel.org>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61921bda
    • Eric Dumazet's avatar
      ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim() · d375b98e
      Eric Dumazet authored
      syzbot pointed out [1] that NEXTHDR_FRAGMENT handling is broken.
      
      Reading frag_off can only be done if we pulled enough bytes
      to skb->head. Currently we might access garbage.
      
      [1]
      BUG: KMSAN: uninit-value in ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0
      ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0
      ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline]
      ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432
      __netdev_start_xmit include/linux/netdevice.h:4940 [inline]
      netdev_start_xmit include/linux/netdevice.h:4954 [inline]
      xmit_one net/core/dev.c:3548 [inline]
      dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
      __dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349
      dev_queue_xmit include/linux/netdevice.h:3134 [inline]
      neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592
      neigh_output include/net/neighbour.h:542 [inline]
      ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137
      ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222
      NF_HOOK_COND include/linux/netfilter.h:303 [inline]
      ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243
      dst_output include/net/dst.h:451 [inline]
      ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155
      ip6_send_skb net/ipv6/ip6_output.c:1952 [inline]
      ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972
      rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582
      rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920
      inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847
      sock_sendmsg_nosec net/socket.c:730 [inline]
      __sock_sendmsg net/socket.c:745 [inline]
      ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584
      ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
      __sys_sendmsg net/socket.c:2667 [inline]
      __do_sys_sendmsg net/socket.c:2676 [inline]
      __se_sys_sendmsg net/socket.c:2674 [inline]
      __x64_sys_sendmsg+0x307/0x490 net/socket.c:2674
      do_syscall_x64 arch/x86/entry/common.c:52 [inline]
      do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83
      entry_SYSCALL_64_after_hwframe+0x63/0x6b
      
      Uninit was created at:
      slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768
      slab_alloc_node mm/slub.c:3478 [inline]
      __kmem_cache_alloc_node+0x5c9/0x970 mm/slub.c:3517
      __do_kmalloc_node mm/slab_common.c:1006 [inline]
      __kmalloc_node_track_caller+0x118/0x3c0 mm/slab_common.c:1027
      kmalloc_reserve+0x249/0x4a0 net/core/skbuff.c:582
      pskb_expand_head+0x226/0x1a00 net/core/skbuff.c:2098
      __pskb_pull_tail+0x13b/0x2310 net/core/skbuff.c:2655
      pskb_may_pull_reason include/linux/skbuff.h:2673 [inline]
      pskb_may_pull include/linux/skbuff.h:2681 [inline]
      ip6_tnl_parse_tlv_enc_lim+0x901/0xbb0 net/ipv6/ip6_tunnel.c:408
      ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline]
      ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432
      __netdev_start_xmit include/linux/netdevice.h:4940 [inline]
      netdev_start_xmit include/linux/netdevice.h:4954 [inline]
      xmit_one net/core/dev.c:3548 [inline]
      dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
      __dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349
      dev_queue_xmit include/linux/netdevice.h:3134 [inline]
      neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592
      neigh_output include/net/neighbour.h:542 [inline]
      ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137
      ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222
      NF_HOOK_COND include/linux/netfilter.h:303 [inline]
      ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243
      dst_output include/net/dst.h:451 [inline]
      ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155
      ip6_send_skb net/ipv6/ip6_output.c:1952 [inline]
      ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972
      rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582
      rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920
      inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847
      sock_sendmsg_nosec net/socket.c:730 [inline]
      __sock_sendmsg net/socket.c:745 [inline]
      ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584
      ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
      __sys_sendmsg net/socket.c:2667 [inline]
      __do_sys_sendmsg net/socket.c:2676 [inline]
      __se_sys_sendmsg net/socket.c:2674 [inline]
      __x64_sys_sendmsg+0x307/0x490 net/socket.c:2674
      do_syscall_x64 arch/x86/entry/common.c:52 [inline]
      do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83
      entry_SYSCALL_64_after_hwframe+0x63/0x6b
      
      CPU: 0 PID: 7345 Comm: syz-executor.3 Not tainted 6.7.0-rc8-syzkaller-00024-gac865f00 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/17/2023
      
      Fixes: fbfa743a ("ipv6: fix ip6_tnl_parse_tlv_enc_lim()")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d375b98e
    • David Howells's avatar
      rxrpc: Fix skbuff cleanup of call's recvmsg_queue and rx_oos_queue · 4fc68c4c
      David Howells authored
      Fix rxrpc_cleanup_ring() to use rxrpc_purge_queue() rather than
      skb_queue_purge() so that the count of outstanding skbuffs is correctly
      updated when a failed call is cleaned up.
      
      Without this rmmod may hang waiting for rxrpc_n_rx_skbs to become zero.
      
      Fixes: 5d7edbc9 ("rxrpc: Get rid of the Rx ring")
      Reported-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: "David S. Miller" <davem@davemloft.net>
      cc: Eric Dumazet <edumazet@google.com>
      cc: Jakub Kicinski <kuba@kernel.org>
      cc: Paolo Abeni <pabeni@redhat.com>
      cc: linux-afs@lists.infradead.org
      cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4fc68c4c
    • Asmaa Mnebhi's avatar
      mlxbf_gige: Enable the GigE port in mlxbf_gige_open · a460f4a6
      Asmaa Mnebhi authored
      At the moment, the GigE port is enabled in the mlxbf_gige_probe
      function. If the mlxbf_gige_open is not executed, this could cause
      pause frames to increase in the case where there is high backgroud
      traffic. This results in clogging the port.
      So move enabling the OOB port to mlxbf_gige_open.
      
      Fixes: f92e1869 ("Add Mellanox BlueField Gigabit Ethernet driver")
      Reviewed-by: default avatarDavid Thompson <davthompson@nvidia.com>
      Signed-off-by: default avatarAsmaa Mnebhi <asmaa@nvidia.com>
      Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a460f4a6
    • Asmaa Mnebhi's avatar
      mlxbf_gige: Fix intermittent no ip issue · ef210ef8
      Asmaa Mnebhi authored
      Although the link is up, there is no ip assigned on setups with high background
      traffic. Nothing is transmitted nor received. The RX error count keeps on
      increasing. After several minutes, the RX error count stagnates and the
      GigE interface finally gets an ip.
      
      The issue is that mlxbf_gige_rx_init() is called before phy_start().
      As soon as the RX DMA is enabled in mlxbf_gige_rx_init(), the RX CI reaches the max
      of 128, and becomes equal to RX PI. RX CI doesn't decrease since the code hasn't
      ran phy_start yet.
      Bring the PHY up before starting the RX.
      
      Fixes: f92e1869 ("Add Mellanox BlueField Gigabit Ethernet driver")
      Reviewed-by: default avatarDavid Thompson <davthompson@nvidia.com>
      Signed-off-by: default avatarAsmaa Mnebhi <asmaa@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef210ef8
  2. 05 Jan, 2024 2 commits
    • Tao Liu's avatar
      net/sched: act_ct: fix skb leak and crash on ooo frags · 3f14b377
      Tao Liu authored
      act_ct adds skb->users before defragmentation. If frags arrive in order,
      the last frag's reference is reset in:
      
        inet_frag_reasm_prepare
          skb_morph
      
      which is not straightforward.
      
      However when frags arrive out of order, nobody unref the last frag, and
      all frags are leaked. The situation is even worse, as initiating packet
      capture can lead to a crash[0] when skb has been cloned and shared at the
      same time.
      
      Fix the issue by removing skb_get() before defragmentation. act_ct
      returns TC_ACT_CONSUMED when defrag failed or in progress.
      
      [0]:
      [  843.804823] ------------[ cut here ]------------
      [  843.809659] kernel BUG at net/core/skbuff.c:2091!
      [  843.814516] invalid opcode: 0000 [#1] PREEMPT SMP
      [  843.819296] CPU: 7 PID: 0 Comm: swapper/7 Kdump: loaded Tainted: G S 6.7.0-rc3 #2
      [  843.824107] Hardware name: XFUSION 1288H V6/BC13MBSBD, BIOS 1.29 11/25/2022
      [  843.828953] RIP: 0010:pskb_expand_head+0x2ac/0x300
      [  843.833805] Code: 8b 70 28 48 85 f6 74 82 48 83 c6 08 bf 01 00 00 00 e8 38 bd ff ff 8b 83 c0 00 00 00 48 03 83 c8 00 00 00 e9 62 ff ff ff 0f 0b <0f> 0b e8 8d d0 ff ff e9 b3 fd ff ff 81 7c 24 14 40 01 00 00 4c 89
      [  843.843698] RSP: 0018:ffffc9000cce07c0 EFLAGS: 00010202
      [  843.848524] RAX: 0000000000000002 RBX: ffff88811a211d00 RCX: 0000000000000820
      [  843.853299] RDX: 0000000000000640 RSI: 0000000000000000 RDI: ffff88811a211d00
      [  843.857974] RBP: ffff888127d39518 R08: 00000000bee97314 R09: 0000000000000000
      [  843.862584] R10: 0000000000000000 R11: ffff8881109f0000 R12: 0000000000000880
      [  843.867147] R13: ffff888127d39580 R14: 0000000000000640 R15: ffff888170f7b900
      [  843.871680] FS:  0000000000000000(0000) GS:ffff889ffffc0000(0000) knlGS:0000000000000000
      [  843.876242] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  843.880778] CR2: 00007fa42affcfb8 CR3: 000000011433a002 CR4: 0000000000770ef0
      [  843.885336] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  843.889809] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  843.894229] PKRU: 55555554
      [  843.898539] Call Trace:
      [  843.902772]  <IRQ>
      [  843.906922]  ? __die_body+0x1e/0x60
      [  843.911032]  ? die+0x3c/0x60
      [  843.915037]  ? do_trap+0xe2/0x110
      [  843.918911]  ? pskb_expand_head+0x2ac/0x300
      [  843.922687]  ? do_error_trap+0x65/0x80
      [  843.926342]  ? pskb_expand_head+0x2ac/0x300
      [  843.929905]  ? exc_invalid_op+0x50/0x60
      [  843.933398]  ? pskb_expand_head+0x2ac/0x300
      [  843.936835]  ? asm_exc_invalid_op+0x1a/0x20
      [  843.940226]  ? pskb_expand_head+0x2ac/0x300
      [  843.943580]  inet_frag_reasm_prepare+0xd1/0x240
      [  843.946904]  ip_defrag+0x5d4/0x870
      [  843.950132]  nf_ct_handle_fragments+0xec/0x130 [nf_conntrack]
      [  843.953334]  tcf_ct_act+0x252/0xd90 [act_ct]
      [  843.956473]  ? tcf_mirred_act+0x516/0x5a0 [act_mirred]
      [  843.959657]  tcf_action_exec+0xa1/0x160
      [  843.962823]  fl_classify+0x1db/0x1f0 [cls_flower]
      [  843.966010]  ? skb_clone+0x53/0xc0
      [  843.969173]  tcf_classify+0x24d/0x420
      [  843.972333]  tc_run+0x8f/0xf0
      [  843.975465]  __netif_receive_skb_core+0x67a/0x1080
      [  843.978634]  ? dev_gro_receive+0x249/0x730
      [  843.981759]  __netif_receive_skb_list_core+0x12d/0x260
      [  843.984869]  netif_receive_skb_list_internal+0x1cb/0x2f0
      [  843.987957]  ? mlx5e_handle_rx_cqe_mpwrq_rep+0xfa/0x1a0 [mlx5_core]
      [  843.991170]  napi_complete_done+0x72/0x1a0
      [  843.994305]  mlx5e_napi_poll+0x28c/0x6d0 [mlx5_core]
      [  843.997501]  __napi_poll+0x25/0x1b0
      [  844.000627]  net_rx_action+0x256/0x330
      [  844.003705]  __do_softirq+0xb3/0x29b
      [  844.006718]  irq_exit_rcu+0x9e/0xc0
      [  844.009672]  common_interrupt+0x86/0xa0
      [  844.012537]  </IRQ>
      [  844.015285]  <TASK>
      [  844.017937]  asm_common_interrupt+0x26/0x40
      [  844.020591] RIP: 0010:acpi_safe_halt+0x1b/0x20
      [  844.023247] Code: ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 65 48 8b 04 25 00 18 03 00 48 8b 00 a8 08 75 0c 66 90 0f 00 2d 81 d0 44 00 fb f4 <fa> c3 0f 1f 00 89 fa ec 48 8b 05 ee 88 ed 00 a9 00 00 00 80 75 11
      [  844.028900] RSP: 0018:ffffc90000533e70 EFLAGS: 00000246
      [  844.031725] RAX: 0000000000004000 RBX: 0000000000000001 RCX: 0000000000000000
      [  844.034553] RDX: ffff889ffffc0000 RSI: ffffffff828b7f20 RDI: ffff88a090f45c64
      [  844.037368] RBP: ffff88a0901a2800 R08: ffff88a090f45c00 R09: 00000000000317c0
      [  844.040155] R10: 00ec812281150475 R11: ffff889fffff0e04 R12: ffffffff828b7fa0
      [  844.042962] R13: ffffffff828b7f20 R14: 0000000000000001 R15: 0000000000000000
      [  844.045819]  acpi_idle_enter+0x7b/0xc0
      [  844.048621]  cpuidle_enter_state+0x7f/0x430
      [  844.051451]  cpuidle_enter+0x2d/0x40
      [  844.054279]  do_idle+0x1d4/0x240
      [  844.057096]  cpu_startup_entry+0x2a/0x30
      [  844.059934]  start_secondary+0x104/0x130
      [  844.062787]  secondary_startup_64_no_verify+0x16b/0x16b
      [  844.065674]  </TASK>
      
      Fixes: b57dc7c1 ("net/sched: Introduce action ct")
      Signed-off-by: default avatarTao Liu <taoliu828@163.com>
      Link: https://lore.kernel.org/r/20231228081457.936732-1-taoliu828@163.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3f14b377
    • Linus Torvalds's avatar
      Merge tag 'net-6.7-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 1f874787
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from wireless and netfilter.
      
        We haven't accumulated much over the break. If it wasn't for the
        uninterrupted stream of fixes for Intel drivers this PR would be very
        slim. There was a handful of user reports, however, either they stood
        out because of the lower traffic or users have had more time to test
        over the break. The ones which are v6.7-relevant should be wrapped up.
      
        Current release - regressions:
      
         - Revert "net: ipv6/addrconf: clamp preferred_lft to the minimum
           required", it caused issues on networks where routers send prefixes
           with preferred_lft=0
      
         - wifi:
            - iwlwifi: pcie: don't synchronize IRQs from IRQ, prevent deadlock
            - mac80211: fix re-adding debugfs entries during reconfiguration
      
        Current release - new code bugs:
      
         - tcp: print AO/MD5 messages only if there are any keys
      
        Previous releases - regressions:
      
         - virtio_net: fix missing dma unmap for resize, prevent OOM
      
        Previous releases - always broken:
      
         - mptcp: prevent tcp diag from closing listener subflows
      
         - nf_tables:
            - set transport header offset for egress hook, fix IPv4 mangling
            - skip set commit for deleted/destroyed sets, avoid double deactivation
      
         - nat: make sure action is set for all ct states, fix openvswitch
           matching on ICMP packets in related state
      
         - eth: mlxbf_gige: fix receive hang under heavy traffic
      
         - eth: r8169: fix PCI error on system resume for RTL8168FP
      
         - net: add missing getsockopt(SO_TIMESTAMPING_NEW) and cmsg handling"
      
      * tag 'net-6.7-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (52 commits)
        net/tcp: Only produce AO/MD5 logs if there are any keys
        net: Implement missing SO_TIMESTAMPING_NEW cmsg support
        bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
        net: ravb: Wait for operating mode to be applied
        asix: Add check for usbnet_get_endpoints
        octeontx2-af: Re-enable MAC TX in otx2_stop processing
        octeontx2-af: Always configure NIX TX link credits based on max frame size
        net/smc: fix invalid link access in dumping SMC-R connections
        net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
        virtio_net: fix missing dma unmap for resize
        igc: Fix hicredit calculation
        ice: fix Get link status data length
        i40e: Restore VF MSI-X state during PCI reset
        i40e: fix use-after-free in i40e_aqc_add_filters()
        net: Save and restore msg_namelen in sock_sendmsg
        netfilter: nft_immediate: drop chain reference counter on error
        netfilter: nf_nat: fix action not being set for all ct states
        net: bcmgenet: Fix FCS generation for fragmented skbuffs
        mptcp: prevent tcp diag from closing listener subflows
        MAINTAINERS: add Geliang as reviewer for MPTCP
        ...
      1f874787
  3. 04 Jan, 2024 24 commits
  4. 03 Jan, 2024 8 commits
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.7-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · ac865f00
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - Revert an ASPM patch that caused an unintended reboot when resuming
         after suspend (Bjorn Helgaas)
      
       - Orphan Cadence PCIe IP (Bjorn Helgaas)
      
      * tag 'pci-v6.7-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        MAINTAINERS: Orphan Cadence PCIe IP
        Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"
      ac865f00
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2024-01-03' of... · d7807d85
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2024-01-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull apparmor fix from John Johansen:
       "Detect that the source mount is not in the namespace and if it isn't
        don't use it as a source path match.
      
        This prevent apparmor from applying the attach_disconnected flag to
        move_mount() source which prevents detached mounts from appearing as /
        when applying mount mediation, which is not only incorrect but could
        result in bad policy being generated"
      
      * tag 'apparmor-pr-2024-01-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor:
        apparmor: Fix move_mount mediation by detecting if source is detached
      d7807d85
    • John Johansen's avatar
      apparmor: Fix move_mount mediation by detecting if source is detached · 8026e406
      John Johansen authored
      Prevent move_mount from applying the attach_disconnected flag
      to move_mount(). This prevents detached mounts from appearing
      as / when applying mount mediation, which is not only incorrect
      but could result in bad policy being generated.
      
      Basic mount rules like
        allow mount,
        allow mount options=(move) -> /target/,
      
      will allow detached mounts, allowing older policy to continue
      to function. New policy gains the ability to specify `detached` as
      a source option
        allow mount detached -> /target/,
      
      In addition make sure support of move_mount is advertised as
      a feature to userspace so that applications that generate policy
      can respond to the addition.
      
      Note: this fixes mediation of move_mount when a detached mount is used,
            it does not fix the broader regression of apparmor mediation of
            mounts under the new mount api.
      
      Link: https://lore.kernel.org/all/68c166b8-5b4d-4612-8042-1dee3334385b@leemhuis.info/T/#mb35fdde37f999f08f0b02d58dc1bf4e6b65b8da2
      Fixes: 157a3537 ("apparmor: Fix regression in mount mediation")
      Reviewed-by: default avatarGeorgia Garcia <georgia.garcia@canonical.com>
      Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
      8026e406
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-for-v6.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 94a502eb
      Linus Torvalds authored
      Pull EFI fix from Ard Biesheuvel:
      
       - Ensure that the KASLR load flag is set in boot_params when loading
         the kernel randomized directly from the EFI stub
      
      * tag 'efi-urgent-for-v6.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi/x86: Fix the missing KASLR_FLAG bit in boot_params->hdr.loadflags
      94a502eb
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 360f0342
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fix a NULL kernel dereference in set_gid() on tracefs mounting.
      
         When tracefs is mounted with "gid=1000", it will update the existing
         dentries to have the new gid. The tracefs_inode which is retrieved by
         a container_of(dentry->d_inode) has flags to see if the inode belongs
         to the eventfs system.
      
         The issue that was fixed was if getdents() was called on tracefs that
         was previously mounted, and was not closed. It will leave a "cursor
         dentry" in the subdirs list of the current dentries that set_gid()
         walks. On a remount of tracefs, the container_of(dentry->d_inode)
         will dereference a NULL pointer and cause a crash when referenced.
      
         Simply have a check for dentry->d_inode to see if it is NULL and if
         so, skip that entry.
      
       - Fix the bits of the eventfs_inode structure.
      
         The "is_events" bit was taken from the nr_entries field, but the
         nr_entries field wasn't updated to be 30 bits and was still 31.
         Including the "is_freed" bit this would use 33 bits which would make
         the structure use another integer for just one bit.
      
      * tag 'trace-v6.7-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        eventfs: Fix bitwise fields for "is_events"
        tracefs: Check for dentry->d_inode exists in set_gid()
      360f0342
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-01-01' of https://evilpiepirate.org/git/bcachefs · 981d0413
      Linus Torvalds authored
      Pull bcachefs from Kent Overstreet:
       "More bcachefs bugfixes for 6.7, and forwards compatibility work:
      
         - fix for a nasty extents + snapshot interaction, reported when
           reflink of a snapshotted file wouldn't complete but turned out to
           be a more general bug
      
         - fix for an invalid free in dio write path when iov vector was
           longer than our inline vector
      
         - fix for a buffer overflow in the nocow write path -
           BCH_REPLICAS_MAX doesn't actually limit the number of pointers in
           an extent when cached pointers are included
      
         - RO snapshots are actually RO now
      
         - And, a new superblock section to avoid future breakage when the
           disk space acounting rewrite rolls out: the new superblock section
           describes versions that need work to downgrade, where the work
           required is a list of recovery passes and errors to silently fix"
      
      * tag 'bcachefs-2024-01-01' of https://evilpiepirate.org/git/bcachefs:
        bcachefs: make RO snapshots actually RO
        bcachefs: bch_sb_field_downgrade
        bcachefs: bch_sb.recovery_passes_required
        bcachefs: Add persistent identifiers for recovery passes
        bcachefs: prt_bitflags_vector()
        bcachefs: move BCH_SB_ERRS() to sb-errors_types.h
        bcachefs: fix buffer overflow in nocow write path
        bcachefs: DARRAY_PREALLOCATED()
        bcachefs: Switch darray to kvmalloc()
        bcachefs: Factor out darray resize slowpath
        bcachefs: fix setting version_upgrade_complete
        bcachefs: fix invalid free in dio write path
        bcachefs: Fix extents iteration + snapshots interaction
      981d0413
    • Rodrigo Cataldo's avatar
      igc: Fix hicredit calculation · 947dfc81
      Rodrigo Cataldo authored
      According to the Intel Software Manual for I225, Section 7.5.2.7,
      hicredit should be multiplied by the constant link-rate value, 0x7736.
      
      Currently, the old constant link-rate value, 0x7735, from the boards
      supported on igb are being used, most likely due to a copy'n'paste, as
      the rest of the logic is the same for both drivers.
      
      Update hicredit accordingly.
      
      Fixes: 1ab011b0 ("igc: Add support for CBS offloading")
      Reviewed-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
      Signed-off-by: default avatarRodrigo Cataldo <rodrigo.cadore@l-acoustics.com>
      Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      947dfc81
    • Paul Greenwalt's avatar
      ice: fix Get link status data length · 9fb266dc
      Paul Greenwalt authored
      Get link status version 2 (opcode 0x0607) is returning an error because FW
      expects a data length of 56 bytes, and this is causing the driver to fail
      probe.
      
      Update the get link status version 2 data length to 56 bytes by adding 5
      byte reserved5 field to the end of struct ice_aqc_get_link_status_data and
      passing it as parameter to offsetofend() to the fix error.
      
      Fixes: 2777d24e ("ice: Add ice_get_link_status_datalen")
      Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
      Signed-off-by: default avatarPaul Greenwalt <paul.greenwalt@intel.com>
      Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      9fb266dc