Skip to content
Snippets Groups Projects
  1. Mar 14, 2025
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2025-03-14' of https://gitlab.freedesktop.org/drm/kernel · 00ddc3f9
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular weekly fixes pull, the usual leaders in amdgpu/xe, a couple of
        i915, and some scattered misc fixes.
      
        panic:
         - two clippy fixes
      
        dp_mst
         - locking fix
      
        atomic:
         - fix redundant DPMS calls
      
        i915:
         - Do cdclk post plane programming later
         - Bump MMAP_GTT_VERSION: missing indication of partial mmaps support
      
        xe:
         - Release guc ids before cancelling work
         - Fix new warnings around userptr
         - Temporaritly disable D3Cold on BMG
         - Retry and wait longer for GuC PC to start
         - Remove redundant check in xe_vm_create_ioctl
      
        amdgpu:
         - GC 12.x DCC fix
         - DC DCE 6.x fix
         - Hibernation fix
         - HPD fix
         - Backlight fixes
         - Color depth fix
         - UAF fix in hdcp_work
         - VCE 2.x fix
         - GC 12.x PTE fix
      
        amdkfd:
         - Queue eviction fix
      
        gma500:
         - fix NULL pointer check"
      
      * tag 'drm-fixes-2025-03-14' of https://gitlab.freedesktop.org/drm/kernel: (23 commits)
        drm/amdgpu: NULL-check BO's backing store when determining GFX12 PTE flags
        drm/amd/amdkfd: Evict all queues even HWS remove queue failed
        drm/i915: Increase I915_PARAM_MMAP_GTT_VERSION version to indicate support for partial mmaps
        drm/dp_mst: Fix locking when skipping CSN before topology probing
        drm/amdgpu/vce2: fix ip block reference
        drm/amd/display: Fix slab-use-after-free on hdcp_work
        drm/amd/display: Assign normalized_pix_clk when color depth = 14
        drm/amd/display: Restore correct backlight brightness after a GPU reset
        drm/amd/display: fix default brightness
        drm/amd/display: Disable unneeded hpd interrupts during dm_init
        drm/amd: Keep display off while going into S4
        drm/amd/display: fix missing .is_two_pixels_per_container
        drm/amdgpu/display: Allow DCC for video formats on GFX12
        drm/xe: remove redundant check in xe_vm_create_ioctl()
        drm/atomic: Filter out redundant DPMS calls
        drm/xe/guc_pc: Retry and wait longer for GuC PC start
        drm/xe/pm: Temporarily disable D3Cold on BMG
        drm/i915/cdclk: Do cdclk post plane programming later
        drm/xe/userptr: Fix an incorrect assert
        drm/xe: Release guc ids before cancelling work
        ...
      00ddc3f9
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2025-03-13' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · d1d77326
      Dave Airlie authored
      
      - Release guc ids before cancelling work (Tejas)
      - Fix new warnings around userptr (Thomas)
      - Temporaritly disable D3Cold on BMG (Rodrigo)
      - Retry and wait longer for GuC PC to start (Rodrigo)
      - Remove redundant check in xe_vm_create_ioctl (Xin)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Z9MJWeIlZPuvXZ_G@intel.com
      d1d77326
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2025-03-13' of... · c8a74954
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2025-03-13' of https://gitlab.freedesktop.org/drm/i915/kernel
      
       into drm-fixes
      
      - Do cdclk post plane programming later (Ville)
      - Bump MMAP_GTT_VERSION: missing indication of partial mmaps support (Jose)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Z9MG4fH-6Q8dTHE1@intel.com
      c8a74954
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · e3a854b5
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A few clk driver fixes for Samsung and Qualcomm clk drivers:
      
         - Suspend on Google GS101 crashes when trying to save some clk
           registers that we shouldn't be saving so we don't do that anymore
      
         - The PLL lock time was wrong on the Tesla FSD which could lead to
           the PLL never locking
      
         - Qualcomm's display clk controller on SM8750 was trying to change
           the frequency of a parent clk for the DSI device when it should
           have stopped and adjusted the divider. The failure is that the clk
           frequency was half what was expected, leading to broken display"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: samsung: update PLL locktime for PLL142XX used on FSD platform
        clk: samsung: gs101: fix synchronous external abort in samsung_clk_save()
        clk: qcom: dispcc-sm8750: Drop incorrect CLK_SET_RATE_PARENT on byte intf parent
      e3a854b5
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2025-03-13' of git://evilpiepirate.org/bcachefs · 131c040b
      Linus Torvalds authored
      Pull bcachefs fixes from Kent Overstreet:
       "Roxana caught an unitialized value that might explain some of the
        rebalance weirdness we're still tracking down - cool.
      
        Otherwise pretty minor"
      
      * tag 'bcachefs-2025-03-13' of git://evilpiepirate.org/bcachefs:
        bcachefs: bch2_get_random_u64_below()
        bcachefs: target_congested -> get_random_u32_below()
        bcachefs: fix tiny leak in bch2_dev_add()
        bcachefs: Make sure trans is unlocked when submitting read IO
        bcachefs: Initialize from_inode members for bch_io_opts
        bcachefs: Fix b->written overflow
      131c040b
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2025-03-13' of... · d703575a
      Dave Airlie authored
      Merge tag 'drm-misc-fixes-2025-03-13' of https://gitlab.freedesktop.org/drm/misc/kernel
      
       into drm-fixes
      
      A null pointer check for gma500, two clippy fixes for panic, a fix for
      an interaction between DPMS and atomic leading to dropped frames, and
      a locking fix  for dp_mst
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <mripard@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250313-holistic-clay-moose-fead28@houat
      d703575a
  2. Mar 13, 2025
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.14-2025-03-12' of... · 385b6432
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.14-2025-03-12' of https://gitlab.freedesktop.org/agd5f/linux
      
       into drm-fixes
      
      amd-drm-fixes-6.14-2025-03-12:
      
      amdgpu:
      - GC 12.x DCC fix
      - DC DCE 6.x fix
      - Hibernation fix
      - HPD fix
      - Backlight fixes
      - Color depth fix
      - UAF fix in hdcp_work
      - VCE 2.x fix
      - GC 12.x PTE fix
      
      amdkfd:
      - Queue eviction fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20250312190931.216506-1-alexander.deucher@amd.com
      385b6432
    • Linus Torvalds's avatar
      Merge tag 'net-6.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 4003c9e7
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from netfilter, bluetooth and wireless.
      
        No known regressions outstanding.
      
        Current release - regressions:
      
         - wifi: nl80211: fix assoc link handling
      
         - eth: lan78xx: sanitize return values of register read/write
           functions
      
        Current release - new code bugs:
      
         - ethtool: tsinfo: fix dump command
      
         - bluetooth: btusb: configure altsetting for HCI_USER_CHANNEL
      
         - eth: mlx5: DR, use the right action structs for STEv3
      
        Previous releases - regressions:
      
         - netfilter: nf_tables: make destruction work queue pernet
      
         - gre: fix IPv6 link-local address generation.
      
         - wifi: iwlwifi: fix TSO preparation
      
         - bluetooth: revert "bluetooth: hci_core: fix sleeping function
           called from invalid context"
      
         - ovs: revert "openvswitch: switch to per-action label counting in
           conntrack"
      
         - eth:
             - ice: fix switchdev slow-path in LAG
             - bonding: fix incorrect MAC address setting to receive NS
               messages
      
        Previous releases - always broken:
      
         - core: prevent TX of unreadable skbs
      
         - sched: prevent creation of classes with TC_H_ROOT
      
         - netfilter: nft_exthdr: fix offset with ipv4_find_option()
      
         - wifi: cfg80211: cancel wiphy_work before freeing wiphy
      
         - mctp: copy headers if cloned
      
         - phy: nxp-c45-tja11xx: add errata for TJA112XA/B
      
         - eth:
             - bnxt: fix kernel panic in the bnxt_get_queue_stats{rx | tx}
             - mlx5: bridge, fix the crash caused by LAG state check"
      
      * tag 'net-6.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits)
        net: mana: cleanup mana struct after debugfs_remove()
        net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
        net/mlx5: Bridge, fix the crash caused by LAG state check
        net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch
        net/mlx5: Fix incorrect IRQ pool usage when releasing IRQs
        net/mlx5: HWS, Rightsize bwc matcher priority
        net/mlx5: DR, use the right action structs for STEv3
        Revert "openvswitch: switch to per-action label counting in conntrack"
        net: openvswitch: remove misbehaving actions length check
        selftests: Add IPv6 link-local address generation tests for GRE devices.
        gre: Fix IPv6 link-local address generation.
        netfilter: nft_exthdr: fix offset with ipv4_find_option()
        selftests/tc-testing: Add a test case for DRR class with TC_H_ROOT
        net_sched: Prevent creation of classes with TC_H_ROOT
        ipvs: prevent integer overflow in do_ip_vs_get_ctl()
        selftests: netfilter: skip br_netfilter queue tests if kernel is tainted
        netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
        wifi: mac80211: fix MPDU length parsing for EHT 5/6 GHz
        qlcnic: fix memory leak issues in qlcnic_sriov_common.c
        rtase: Fix improper release of ring list entries in rtase_sw_reset
        ...
      4003c9e7
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc7.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs · 8f7617f4
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
      
       - Bring in an RCU pathwalk fix for afs. This is brought in as a merge
         from the vfs-6.15.shared.afs branch that needs this commit and other
         trees already depend on it.
      
       - Fix vboxfs unterminated string handling.
      
      * tag 'vfs-6.14-rc7.fixes' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs:
        vboxsf: Add __nonstring annotations for unterminated strings
        afs: Fix afs_atcell_get_link() to handle RCU pathwalk
      8f7617f4
    • Kent Overstreet's avatar
      bcachefs: bch2_get_random_u64_below() · 9c18ea7f
      Kent Overstreet authored
      
      steal the (clever) algorithm from get_random_u32_below()
      
      this fixes a bug where we were passing roundup_pow_of_two() a 64 bit
      number - we're squaring device latencies now:
      
      [  +1.681698] ------------[ cut here ]------------
      [  +0.000010] UBSAN: shift-out-of-bounds in ./include/linux/log2.h:57:13
      [  +0.000011] shift exponent 64 is too large for 64-bit type 'long unsigned int'
      [  +0.000011] CPU: 1 UID: 0 PID: 196 Comm: kworker/u32:13 Not tainted 6.14.0-rc6-dave+ #10
      [  +0.000012] Hardware name: ASUS System Product Name/PRIME B460I-PLUS, BIOS 1301 07/13/2021
      [  +0.000005] Workqueue: events_unbound __bch2_read_endio [bcachefs]
      [  +0.000354] Call Trace:
      [  +0.000005]  <TASK>
      [  +0.000007]  dump_stack_lvl+0x5d/0x80
      [  +0.000018]  ubsan_epilogue+0x5/0x30
      [  +0.000008]  __ubsan_handle_shift_out_of_bounds.cold+0x61/0xe6
      [  +0.000011]  bch2_rand_range.cold+0x17/0x20 [bcachefs]
      [  +0.000231]  bch2_bkey_pick_read_device+0x547/0x920 [bcachefs]
      [  +0.000229]  __bch2_read_extent+0x1e4/0x18e0 [bcachefs]
      [  +0.000241]  ? bch2_btree_iter_peek_slot+0x3df/0x800 [bcachefs]
      [  +0.000180]  ? bch2_read_retry_nodecode+0x270/0x330 [bcachefs]
      [  +0.000230]  bch2_read_retry_nodecode+0x270/0x330 [bcachefs]
      [  +0.000230]  bch2_rbio_retry+0x1fa/0x600 [bcachefs]
      [  +0.000224]  ? bch2_printbuf_make_room+0x71/0xb0 [bcachefs]
      [  +0.000243]  ? bch2_read_csum_err+0x4a4/0x610 [bcachefs]
      [  +0.000278]  bch2_read_csum_err+0x4a4/0x610 [bcachefs]
      [  +0.000227]  ? __bch2_read_endio+0x58b/0x870 [bcachefs]
      [  +0.000220]  __bch2_read_endio+0x58b/0x870 [bcachefs]
      [  +0.000268]  ? try_to_wake_up+0x31c/0x7f0
      [  +0.000011]  ? process_one_work+0x176/0x330
      [  +0.000008]  process_one_work+0x176/0x330
      [  +0.000008]  worker_thread+0x252/0x390
      [  +0.000008]  ? __pfx_worker_thread+0x10/0x10
      [  +0.000006]  kthread+0xec/0x230
      [  +0.000011]  ? __pfx_kthread+0x10/0x10
      [  +0.000009]  ret_from_fork+0x31/0x50
      [  +0.000009]  ? __pfx_kthread+0x10/0x10
      [  +0.000008]  ret_from_fork_asm+0x1a/0x30
      [  +0.000012]  </TASK>
      [  +0.000046] ---[ end trace ]---
      
      Reported-by: default avatarRoland Vet <vet.roland@protonmail.com>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      9c18ea7f
    • Kent Overstreet's avatar
      bcachefs: target_congested -> get_random_u32_below() · 69a5a13a
      Kent Overstreet authored
      
      get_random_u32_below() has a better algorithm than bch2_rand_range(),
      it just didn't exist at the time.
      
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      69a5a13a
    • Paolo Abeni's avatar
      Merge tag 'nf-25-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · 2409fa66
      Paolo Abeni authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS fixes for net
      
      The following patchset contains Netfilter/IPVS fixes for net:
      
      1) Missing initialization of cpu and jiffies32 fields in conncount,
         from Kohei Enju.
      
      2) Skip several tests in case kernel is tainted, otherwise tests bogusly
         report failure too as they also check for tainted kernel,
         from Florian Westphal.
      
      3) Fix a hyphothetical integer overflow in do_ip_vs_get_ctl() leading
         to bogus error logs, from Dan Carpenter.
      
      4) Fix incorrect offset in ipv4 option match in nft_exthdr, from
         Alexey Kashavkin.
      
      netfilter pull request 25-03-13
      
      * tag 'nf-25-03-13' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        netfilter: nft_exthdr: fix offset with ipv4_find_option()
        ipvs: prevent integer overflow in do_ip_vs_get_ctl()
        selftests: netfilter: skip br_netfilter queue tests if kernel is tainted
        netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
      ====================
      
      Link: https://patch.msgid.link/20250313095636.2186-1-pablo@netfilter.org
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      2409fa66
    • Shradha Gupta's avatar
      net: mana: cleanup mana struct after debugfs_remove() · 3e64bb2a
      Shradha Gupta authored
      
      When on a MANA VM hibernation is triggered, as part of hibernate_snapshot(),
      mana_gd_suspend() and mana_gd_resume() are called. If during this
      mana_gd_resume(), a failure occurs with HWC creation, mana_port_debugfs
      pointer does not get reinitialized and ends up pointing to older,
      cleaned-up dentry.
      Further in the hibernation path, as part of power_down(), mana_gd_shutdown()
      is triggered. This call, unaware of the failures in resume, tries to cleanup
      the already cleaned up  mana_port_debugfs value and hits the following bug:
      
      [  191.359296] mana 7870:00:00.0: Shutdown was called
      [  191.359918] BUG: kernel NULL pointer dereference, address: 0000000000000098
      [  191.360584] #PF: supervisor write access in kernel mode
      [  191.361125] #PF: error_code(0x0002) - not-present page
      [  191.361727] PGD 1080ea067 P4D 0
      [  191.362172] Oops: Oops: 0002 [#1] SMP NOPTI
      [  191.362606] CPU: 11 UID: 0 PID: 1674 Comm: bash Not tainted 6.14.0-rc5+ #2
      [  191.363292] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 11/21/2024
      [  191.364124] RIP: 0010:down_write+0x19/0x50
      [  191.364537] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb e8 de cd ff ff 31 c0 ba 01 00 00 00 <f0> 48 0f b1 13 75 16 65 48 8b 05 88 24 4c 6a 48 89 43 08 48 8b 5d
      [  191.365867] RSP: 0000:ff45fbe0c1c037b8 EFLAGS: 00010246
      [  191.366350] RAX: 0000000000000000 RBX: 0000000000000098 RCX: ffffff8100000000
      [  191.366951] RDX: 0000000000000001 RSI: 0000000000000064 RDI: 0000000000000098
      [  191.367600] RBP: ff45fbe0c1c037c0 R08: 0000000000000000 R09: 0000000000000001
      [  191.368225] R10: ff45fbe0d2b01000 R11: 0000000000000008 R12: 0000000000000000
      [  191.368874] R13: 000000000000000b R14: ff43dc27509d67c0 R15: 0000000000000020
      [  191.369549] FS:  00007dbc5001e740(0000) GS:ff43dc663f380000(0000) knlGS:0000000000000000
      [  191.370213] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  191.370830] CR2: 0000000000000098 CR3: 0000000168e8e002 CR4: 0000000000b73ef0
      [  191.371557] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  191.372192] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400
      [  191.372906] Call Trace:
      [  191.373262]  <TASK>
      [  191.373621]  ? show_regs+0x64/0x70
      [  191.374040]  ? __die+0x24/0x70
      [  191.374468]  ? page_fault_oops+0x290/0x5b0
      [  191.374875]  ? do_user_addr_fault+0x448/0x800
      [  191.375357]  ? exc_page_fault+0x7a/0x160
      [  191.375971]  ? asm_exc_page_fault+0x27/0x30
      [  191.376416]  ? down_write+0x19/0x50
      [  191.376832]  ? down_write+0x12/0x50
      [  191.377232]  simple_recursive_removal+0x4a/0x2a0
      [  191.377679]  ? __pfx_remove_one+0x10/0x10
      [  191.378088]  debugfs_remove+0x44/0x70
      [  191.378530]  mana_detach+0x17c/0x4f0
      [  191.378950]  ? __flush_work+0x1e2/0x3b0
      [  191.379362]  ? __cond_resched+0x1a/0x50
      [  191.379787]  mana_remove+0xf2/0x1a0
      [  191.380193]  mana_gd_shutdown+0x3b/0x70
      [  191.380642]  pci_device_shutdown+0x3a/0x80
      [  191.381063]  device_shutdown+0x13e/0x230
      [  191.381480]  kernel_power_off+0x35/0x80
      [  191.381890]  hibernate+0x3c6/0x470
      [  191.382312]  state_store+0xcb/0xd0
      [  191.382734]  kobj_attr_store+0x12/0x30
      [  191.383211]  sysfs_kf_write+0x3e/0x50
      [  191.383640]  kernfs_fop_write_iter+0x140/0x1d0
      [  191.384106]  vfs_write+0x271/0x440
      [  191.384521]  ksys_write+0x72/0xf0
      [  191.384924]  __x64_sys_write+0x19/0x20
      [  191.385313]  x64_sys_call+0x2b0/0x20b0
      [  191.385736]  do_syscall_64+0x79/0x150
      [  191.386146]  ? __mod_memcg_lruvec_state+0xe7/0x240
      [  191.386676]  ? __lruvec_stat_mod_folio+0x79/0xb0
      [  191.387124]  ? __pfx_lru_add+0x10/0x10
      [  191.387515]  ? queued_spin_unlock+0x9/0x10
      [  191.387937]  ? do_anonymous_page+0x33c/0xa00
      [  191.388374]  ? __handle_mm_fault+0xcf3/0x1210
      [  191.388805]  ? __count_memcg_events+0xbe/0x180
      [  191.389235]  ? handle_mm_fault+0xae/0x300
      [  191.389588]  ? do_user_addr_fault+0x559/0x800
      [  191.390027]  ? irqentry_exit_to_user_mode+0x43/0x230
      [  191.390525]  ? irqentry_exit+0x1d/0x30
      [  191.390879]  ? exc_page_fault+0x86/0x160
      [  191.391235]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
      [  191.391745] RIP: 0033:0x7dbc4ff1c574
      [  191.392111] Code: c7 00 16 00 00 00 b8 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 80 3d d5 ea 0e 00 00 74 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 55 48 89 e5 48 83 ec 20 48 89
      [  191.393412] RSP: 002b:00007ffd95a23ab8 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
      [  191.393990] RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007dbc4ff1c574
      [  191.394594] RDX: 0000000000000005 RSI: 00005a6eeadb0ce0 RDI: 0000000000000001
      [  191.395215] RBP: 00007ffd95a23ae0 R08: 00007dbc50003b20 R09: 0000000000000000
      [  191.395805] R10: 0000000000000001 R11: 0000000000000202 R12: 0000000000000005
      [  191.396404] R13: 00005a6eeadb0ce0 R14: 00007dbc500045c0 R15: 00007dbc50001ee0
      [  191.396987]  </TASK>
      
      To fix this, we explicitly set such mana debugfs variables to NULL after
      debugfs_remove() is called.
      
      Fixes: 6607c17c ("net: mana: Enable debugfs files for MANA device")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarShradha Gupta <shradhagupta@linux.microsoft.com>
      Reviewed-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
      Reviewed-by: default avatarMichal Kubiak <michal.kubiak@intel.com>
      Link: https://patch.msgid.link/1741688260-28922-1-git-send-email-shradhagupta@linux.microsoft.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      3e64bb2a
    • Paolo Abeni's avatar
      Merge branch 'mlx5-misc-fixes-2025-03-10' · e1af35d6
      Paolo Abeni authored
      Tariq Toukan says:
      
      ====================
      mlx5 misc fixes 2025-03-10
      
      This patchset provides misc bug fixes from the team to the mlx5 core and
      Eth drivers.
      ====================
      
      Link: https://patch.msgid.link/1741644104-97767-1-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      e1af35d6
    • Carolina Jubran's avatar
      net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices · e92df790
      Carolina Jubran authored
      
      mlx5_eswitch_get_vepa returns -EPERM if the device lacks
      eswitch_manager capability, blocking mlx5e_bridge_getlink from
      retrieving VEPA mode. Since mlx5e_bridge_getlink implements
      ndo_bridge_getlink, returning -EPERM causes bridge link show to fail
      instead of skipping devices without this capability.
      
      To avoid this, return -EOPNOTSUPP from mlx5e_bridge_getlink when
      mlx5_eswitch_get_vepa fails, ensuring the command continues processing
      other devices while ignoring those without the necessary capability.
      
      Fixes: 4b89251d ("net/mlx5: Support ndo bridge_setlink and getlink")
      Signed-off-by: default avatarCarolina Jubran <cjubran@nvidia.com>
      Reviewed-by: default avatarJianbo Liu <jianbol@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
      Link: https://patch.msgid.link/1741644104-97767-7-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      e92df790
    • Jianbo Liu's avatar
      net/mlx5: Bridge, fix the crash caused by LAG state check · 4b8eeed4
      Jianbo Liu authored
      
      When removing LAG device from bridge, NETDEV_CHANGEUPPER event is
      triggered. Driver finds the lower devices (PFs) to flush all the
      offloaded entries. And mlx5_lag_is_shared_fdb is checked, it returns
      false if one of PF is unloaded. In such case,
      mlx5_esw_bridge_lag_rep_get() and its caller return NULL, instead of
      the alive PF, and the flush is skipped.
      
      Besides, the bridge fdb entry's lastuse is updated in mlx5 bridge
      event handler. But this SWITCHDEV_FDB_ADD_TO_BRIDGE event can be
      ignored in this case because the upper interface for bond is deleted,
      and the entry will never be aged because lastuse is never updated.
      
      To make things worse, as the entry is alive, mlx5 bridge workqueue
      keeps sending that event, which is then handled by kernel bridge
      notifier. It causes the following crash when accessing the passed bond
      netdev which is already destroyed.
      
      To fix this issue, remove such checks. LAG state is already checked in
      commit 15f8f168 ("net/mlx5: Bridge, verify LAG state when adding
      bond to bridge"), driver still need to skip offload if LAG becomes
      invalid state after initialization.
      
       Oops: stack segment: 0000 [#1] SMP
       CPU: 3 UID: 0 PID: 23695 Comm: kworker/u40:3 Tainted: G           OE      6.11.0_mlnx #1
       Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
       Workqueue: mlx5_bridge_wq mlx5_esw_bridge_update_work [mlx5_core]
       RIP: 0010:br_switchdev_event+0x2c/0x110 [bridge]
       Code: 44 00 00 48 8b 02 48 f7 00 00 02 00 00 74 69 41 54 55 53 48 83 ec 08 48 8b a8 08 01 00 00 48 85 ed 74 4a 48 83 fe 02 48 89 d3 <4c> 8b 65 00 74 23 76 49 48 83 fe 05 74 7e 48 83 fe 06 75 2f 0f b7
       RSP: 0018:ffffc900092cfda0 EFLAGS: 00010297
       RAX: ffff888123bfe000 RBX: ffffc900092cfe08 RCX: 00000000ffffffff
       RDX: ffffc900092cfe08 RSI: 0000000000000001 RDI: ffffffffa0c585f0
       RBP: 6669746f6e690a30 R08: 0000000000000000 R09: ffff888123ae92c8
       R10: 0000000000000000 R11: fefefefefefefeff R12: ffff888123ae9c60
       R13: 0000000000000001 R14: ffffc900092cfe08 R15: 0000000000000000
       FS:  0000000000000000(0000) GS:ffff88852c980000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 00007f15914c8734 CR3: 0000000002830005 CR4: 0000000000770ef0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       PKRU: 55555554
       Call Trace:
        <TASK>
        ? __die_body+0x1a/0x60
        ? die+0x38/0x60
        ? do_trap+0x10b/0x120
        ? do_error_trap+0x64/0xa0
        ? exc_stack_segment+0x33/0x50
        ? asm_exc_stack_segment+0x22/0x30
        ? br_switchdev_event+0x2c/0x110 [bridge]
        ? sched_balance_newidle.isra.149+0x248/0x390
        notifier_call_chain+0x4b/0xa0
        atomic_notifier_call_chain+0x16/0x20
        mlx5_esw_bridge_update+0xec/0x170 [mlx5_core]
        mlx5_esw_bridge_update_work+0x19/0x40 [mlx5_core]
        process_scheduled_works+0x81/0x390
        worker_thread+0x106/0x250
        ? bh_worker+0x110/0x110
        kthread+0xb7/0xe0
        ? kthread_park+0x80/0x80
        ret_from_fork+0x2d/0x50
        ? kthread_park+0x80/0x80
        ret_from_fork_asm+0x11/0x20
        </TASK>
      
      Fixes: ff9b7521 ("net/mlx5: Bridge, support LAG")
      Signed-off-by: default avatarJianbo Liu <jianbol@nvidia.com>
      Reviewed-by: default avatarVlad Buslov <vladbu@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
      Link: https://patch.msgid.link/1741644104-97767-6-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      4b8eeed4
    • Shay Drory's avatar
      net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch · 32966984
      Shay Drory authored
      
      Currently, MultiPort E-Switch is requesting to create a LAG with shared
      FDB without checking the LAG is supporting shared FDB.
      Add the check.
      
      Fixes: a32327a3 ("net/mlx5: Lag, Control MultiPort E-Switch single FDB mode")
      Signed-off-by: default avatarShay Drory <shayd@nvidia.com>
      Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
      Link: https://patch.msgid.link/1741644104-97767-5-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      32966984
    • Shay Drory's avatar
      net/mlx5: Fix incorrect IRQ pool usage when releasing IRQs · 32d2724d
      Shay Drory authored
      
      mlx5_irq_pool_get() is a getter for completion IRQ pool only.
      However, after the cited commit, mlx5_irq_pool_get() is called during
      ctrl IRQ release flow to retrieve the pool, resulting in the use of an
      incorrect IRQ pool.
      
      Hence, use the newly introduced mlx5_irq_get_pool() getter to retrieve
      the correct IRQ pool based on the IRQ itself. While at it, rename
      mlx5_irq_pool_get() to mlx5_irq_table_get_comp_irq_pool() which
      accurately reflects its purpose and improves code readability.
      
      Fixes: 0477d516 ("net/mlx5: Expose SFs IRQs")
      Signed-off-by: default avatarShay Drory <shayd@nvidia.com>
      Reviewed-by: default avatarMaher Sanalla <msanalla@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
      Link: https://patch.msgid.link/1741644104-97767-4-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      32d2724d
    • Vlad Dogaru's avatar
      net/mlx5: HWS, Rightsize bwc matcher priority · 52199233
      Vlad Dogaru authored
      
      The bwc layer was clamping the matcher priority from 32 bits to 16 bits.
      This didn't show up until a matcher was resized, since the initial
      native matcher was created using the correct 32 bit value.
      
      The fix also reorders fields to avoid some padding.
      
      Fixes: 2111bb97 ("net/mlx5: HWS, added backward-compatible API handling")
      Signed-off-by: default avatarVlad Dogaru <vdogaru@nvidia.com>
      Reviewed-by: default avatarYevgeny Kliteynik <kliteyn@nvidia.com>
      Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Link: https://patch.msgid.link/1741644104-97767-3-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      52199233
    • Yevgeny Kliteynik's avatar
      net/mlx5: DR, use the right action structs for STEv3 · 03ebae19
      Yevgeny Kliteynik authored
      
      Some actions in ConnectX-8 (STEv3) have different structure,
      and they are handled separately in ste_ctx_v3.
      This separate handling was missing two actions: INSERT_HDR
      and REMOVE_HDR, which broke SWS for Linux Bridge.
      This patch resolves the issue by introducing dedicated
      callbacks for the insert and remove header functions,
      with version-specific implementations for each STE variant.
      
      Fixes: 4d617b57 ("net/mlx5: DR, add support for ConnectX-8 steering")
      Signed-off-by: default avatarYevgeny Kliteynik <kliteyn@nvidia.com>
      Reviewed-by: default avatarItamar Gozlan <igozlan@nvidia.com>
      Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
      Link: https://patch.msgid.link/1741644104-97767-2-git-send-email-tariqt@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      03ebae19
    • Xin Long's avatar
      Revert "openvswitch: switch to per-action label counting in conntrack" · 1063ae07
      Xin Long authored
      
      Currently, ovs_ct_set_labels() is only called for confirmed conntrack
      entries (ct) within ovs_ct_commit(). However, if the conntrack entry
      does not have the labels_ext extension, attempting to allocate it in
      ovs_ct_get_conn_labels() for a confirmed entry triggers a warning in
      nf_ct_ext_add():
      
        WARN_ON(nf_ct_is_confirmed(ct));
      
      This happens when the conntrack entry is created externally before OVS
      increments net->ct.labels_used. The issue has become more likely since
      commit fcb1aa51 ("openvswitch: switch to per-action label counting
      in conntrack"), which changed to use per-action label counting and
      increment net->ct.labels_used when a flow with ct action is added.
      
      Since there’s no straightforward way to fully resolve this issue at the
      moment, this reverts the commit to avoid breaking existing use cases.
      
      Fixes: fcb1aa51 ("openvswitch: switch to per-action label counting in conntrack")
      Reported-by: default avatarJianbo Liu <jianbol@nvidia.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarAaron Conole <aconole@redhat.com>
      Link: https://patch.msgid.link/1bdeb2f3a812bca016a225d3de714427b2cd4772.1741457143.git.lucien.xin@gmail.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1063ae07
    • Ilya Maximets's avatar
      net: openvswitch: remove misbehaving actions length check · a1e64add
      Ilya Maximets authored
      
      The actions length check is unreliable and produces different results
      depending on the initial length of the provided netlink attribute and
      the composition of the actual actions inside of it.  For example, a
      user can add 4088 empty clone() actions without triggering -EMSGSIZE,
      on attempt to add 4089 such actions the operation will fail with the
      -EMSGSIZE verdict.  However, if another 16 KB of other actions will
      be *appended* to the previous 4089 clone() actions, the check passes
      and the flow is successfully installed into the openvswitch datapath.
      
      The reason for a such a weird behavior is the way memory is allocated.
      When ovs_flow_cmd_new() is invoked, it calls ovs_nla_copy_actions(),
      that in turn calls nla_alloc_flow_actions() with either the actual
      length of the user-provided actions or the MAX_ACTIONS_BUFSIZE.  The
      function adds the size of the sw_flow_actions structure and then the
      actually allocated memory is rounded up to the closest power of two.
      
      So, if the user-provided actions are larger than MAX_ACTIONS_BUFSIZE,
      then MAX_ACTIONS_BUFSIZE + sizeof(*sfa) rounded up is 32K + 24 -> 64K.
      Later, while copying individual actions, we look at ksize(), which is
      64K, so this way the MAX_ACTIONS_BUFSIZE check is not actually
      triggered and the user can easily allocate almost 64 KB of actions.
      
      However, when the initial size is less than MAX_ACTIONS_BUFSIZE, but
      the actions contain ones that require size increase while copying
      (such as clone() or sample()), then the limit check will be performed
      during the reserve_sfa_size() and the user will not be allowed to
      create actions that yield more than 32 KB internally.
      
      This is one part of the problem.  The other part is that it's not
      actually possible for the userspace application to know beforehand
      if the particular set of actions will be rejected or not.
      
      Certain actions require more space in the internal representation,
      e.g. an empty clone() takes 4 bytes in the action list passed in by
      the user, but it takes 12 bytes in the internal representation due
      to an extra nested attribute, and some actions require less space in
      the internal representations, e.g. set(tunnel(..)) normally takes
      64+ bytes in the action list provided by the user, but only needs to
      store a single pointer in the internal implementation, since all the
      data is stored in the tunnel_info structure instead.
      
      And the action size limit is applied to the internal representation,
      not to the action list passed by the user.  So, it's not possible for
      the userpsace application to predict if the certain combination of
      actions will be rejected or not, because it is not possible for it to
      calculate how much space these actions will take in the internal
      representation without knowing kernel internals.
      
      All that is causing random failures in ovs-vswitchd in userspace and
      inability to handle certain traffic patterns as a result.  For example,
      it is reported that adding a bit more than a 1100 VMs in an OpenStack
      setup breaks the network due to OVS not being able to handle ARP
      traffic anymore in some cases (it tries to install a proper datapath
      flow, but the kernel rejects it with -EMSGSIZE, even though the action
      list isn't actually that large.)
      
      Kernel behavior must be consistent and predictable in order for the
      userspace application to use it in a reasonable way.  ovs-vswitchd has
      a mechanism to re-direct parts of the traffic and partially handle it
      in userspace if the required action list is oversized, but that doesn't
      work properly if we can't actually tell if the action list is oversized
      or not.
      
      Solution for this is to check the size of the user-provided actions
      instead of the internal representation.  This commit just removes the
      check from the internal part because there is already an implicit size
      check imposed by the netlink protocol.  The attribute can't be larger
      than 64 KB.  Realistically, we could reduce the limit to 32 KB, but
      we'll be risking to break some existing setups that rely on the fact
      that it's possible to create nearly 64 KB action lists today.
      
      Vast majority of flows in real setups are below 100-ish bytes.  So
      removal of the limit will not change real memory consumption on the
      system.  The absolutely worst case scenario is if someone adds a flow
      with 64 KB of empty clone() actions.  That will yield a 192 KB in the
      internal representation consuming 256 KB block of memory.  However,
      that list of actions is not meaningful and also a no-op.  Real world
      very large action lists (that can occur for a rare cases of BUM
      traffic handling) are unlikely to contain a large number of clones and
      will likely have a lot of tunnel attributes making the internal
      representation comparable in size to the original action list.
      So, it should be fine to just remove the limit.
      
      Commit in the 'Fixes' tag is the first one that introduced the
      difference between internal representation and the user-provided action
      lists, but there were many more afterwards that lead to the situation
      we have today.
      
      Fixes: 7d5437c7 ("openvswitch: Add tunneling interface.")
      Signed-off-by: default avatarIlya Maximets <i.maximets@ovn.org>
      Reviewed-by: default avatarAaron Conole <aconole@redhat.com>
      Link: https://patch.msgid.link/20250308004609.2881861-1-i.maximets@ovn.org
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      a1e64add
    • Paolo Abeni's avatar
      Merge branch 'gre-fix-regressions-in-ipv6-link-local-address-generation' · b3fc5927
      Paolo Abeni authored
      Guillaume Nault says:
      
      ====================
      gre: Fix regressions in IPv6 link-local address generation.
      
      IPv6 link-local address generation has some special cases for GRE
      devices. This has led to several regressions in the past, and some of
      them are still not fixed. This series fixes the remaining problems,
      like the ipv6.conf.<dev>.addr_gen_mode sysctl being ignored and the
      router discovery process not being started (see details in patch 1).
      
      To avoid any further regressions, patch 2 adds selftests covering
      IPv4 and IPv6 gre/gretap devices with all combinations of currently
      supported addr_gen_mode values.
      ====================
      
      Link: https://patch.msgid.link/cover.1741375285.git.gnault@redhat.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      b3fc5927
    • Guillaume Nault's avatar
      selftests: Add IPv6 link-local address generation tests for GRE devices. · 6f50175c
      Guillaume Nault authored
      
      GRE devices have their special code for IPv6 link-local address
      generation that has been the source of several regressions in the past.
      
      Add selftest to check that all gre, ip6gre, gretap and ip6gretap get an
      IPv6 link-link local address in accordance with the
      net.ipv6.conf.<dev>.addr_gen_mode sysctl.
      
      Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Tested-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Link: https://patch.msgid.link/2d6772af8e1da9016b2180ec3f8d9ee99f470c77.1741375285.git.gnault@redhat.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      6f50175c
    • Guillaume Nault's avatar
      gre: Fix IPv6 link-local address generation. · 183185a1
      Guillaume Nault authored
      
      Use addrconf_addr_gen() to generate IPv6 link-local addresses on GRE
      devices in most cases and fall back to using add_v4_addrs() only in
      case the GRE configuration is incompatible with addrconf_addr_gen().
      
      GRE used to use addrconf_addr_gen() until commit e5dd7294
      ("ip/ip6_gre: use the same logic as SIT interfaces when computing v6LL
      address") restricted this use to gretap and ip6gretap devices, and
      created add_v4_addrs() (borrowed from SIT) for non-Ethernet GRE ones.
      
      The original problem came when commit 9af28511 ("addrconf: refuse
      isatap eui64 for INADDR_ANY") made __ipv6_isatap_ifid() fail when its
      addr parameter was 0. The commit says that this would create an invalid
      address, however, I couldn't find any RFC saying that the generated
      interface identifier would be wrong. Anyway, since gre over IPv4
      devices pass their local tunnel address to __ipv6_isatap_ifid(), that
      commit broke their IPv6 link-local address generation when the local
      address was unspecified.
      
      Then commit e5dd7294 ("ip/ip6_gre: use the same logic as SIT
      interfaces when computing v6LL address") tried to fix that case by
      defining add_v4_addrs() and calling it to generate the IPv6 link-local
      address instead of using addrconf_addr_gen() (apart for gretap and
      ip6gretap devices, which would still use the regular
      addrconf_addr_gen(), since they have a MAC address).
      
      That broke several use cases because add_v4_addrs() isn't properly
      integrated into the rest of IPv6 Neighbor Discovery code. Several of
      these shortcomings have been fixed over time, but add_v4_addrs()
      remains broken on several aspects. In particular, it doesn't send any
      Router Sollicitations, so the SLAAC process doesn't start until the
      interface receives a Router Advertisement. Also, add_v4_addrs() mostly
      ignores the address generation mode of the interface
      (/proc/sys/net/ipv6/conf/*/addr_gen_mode), thus breaking the
      IN6_ADDR_GEN_MODE_RANDOM and IN6_ADDR_GEN_MODE_STABLE_PRIVACY cases.
      
      Fix the situation by using add_v4_addrs() only in the specific scenario
      where the normal method would fail. That is, for interfaces that have
      all of the following characteristics:
      
        * run over IPv4,
        * transport IP packets directly, not Ethernet (that is, not gretap
          interfaces),
        * tunnel endpoint is INADDR_ANY (that is, 0),
        * device address generation mode is EUI64.
      
      In all other cases, revert back to the regular addrconf_addr_gen().
      
      Also, remove the special case for ip6gre interfaces in add_v4_addrs(),
      since ip6gre devices now always use addrconf_addr_gen() instead.
      
      Fixes: e5dd7294 ("ip/ip6_gre: use the same logic as SIT interfaces when computing v6LL address")
      Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Link: https://patch.msgid.link/559c32ce5c9976b269e6337ac9abb6a96abe5096.1741375285.git.gnault@redhat.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      183185a1
    • Alexey Kashavkin's avatar
      netfilter: nft_exthdr: fix offset with ipv4_find_option() · 6edd78af
      Alexey Kashavkin authored
      
      There is an incorrect calculation in the offset variable which causes
      the nft_skb_copy_to_reg() function to always return -EFAULT. Adding the
      start variable is redundant. In the __ip_options_compile() function the
      correct offset is specified when finding the function. There is no need
      to add the size of the iphdr structure to the offset.
      
      Fixes: dbb5281a ("netfilter: nf_tables: add support for matching IPv4 options")
      Signed-off-by: default avatarAlexey Kashavkin <akashavkin@gmail.com>
      Reviewed-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      6edd78af
    • Kent Overstreet's avatar
  3. Mar 12, 2025
    • Linus Torvalds's avatar
      Merge tag 'sched_ext-for-6.14-rc6-fixes' of... · b7f94fcf
      Linus Torvalds authored
      Merge tag 'sched_ext-for-6.14-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext
      
      Pull sched_ext fix from Tejun Heo:
       "BPF schedulers could trigger a crash by passing in an invalid CPU to
        the scx_bpf_select_cpu_dfl() helper.
      
        Fix it by verifying input validity"
      
      * tag 'sched_ext-for-6.14-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext:
        sched_ext: Validate prev_cpu in scx_bpf_select_cpu_dfl()
      b7f94fcf
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 6e8e2f82
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A couple of driver specific fixes, an error handling fix for the Atmel
        QuadSPI driver and a fix for a nasty synchronisation issue in the data
        path for the Microchip driver which affects larger transfers.
      
        There's also a MAINTAINERS update for the Samsung driver"
      
      * tag 'spi-fix-v6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: microchip-core: prevent RX overflows when transmit size > FIFO size
        MAINTAINERS: add tambarus as R for Samsung SPI
        spi: atmel-quadspi: remove references to runtime PM on error path
      6e8e2f82
    • Jakub Kicinski's avatar
      Merge branch 'net_sched-prevent-creation-of-classes-with-tc_h_root' · 83d2fe6b
      Jakub Kicinski authored
      Cong Wang says:
      
      ====================
      net_sched: Prevent creation of classes with TC_H_ROOT
      
      This patchset contains a bug fix and its TDC test case.
      ====================
      
      Link: https://patch.msgid.link/20250306232355.93864-1-xiyou.wangcong@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      83d2fe6b
    • Cong Wang's avatar
      selftests/tc-testing: Add a test case for DRR class with TC_H_ROOT · bb7737de
      Cong Wang authored
      
      Integrate the reproduer from Mingi to TDC.
      
      All test results:
      
      1..4
      ok 1 0385 - Create DRR with default setting
      ok 2 2375 - Delete DRR with handle
      ok 3 3092 - Show DRR class
      ok 4 4009 - Reject creation of DRR class with classid TC_H_ROOT
      
      Cc: Mingi Cho <mincho@theori.io>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://patch.msgid.link/20250306232355.93864-3-xiyou.wangcong@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      bb7737de
    • Cong Wang's avatar
      net_sched: Prevent creation of classes with TC_H_ROOT · 0c3057a5
      Cong Wang authored
      
      The function qdisc_tree_reduce_backlog() uses TC_H_ROOT as a termination
      condition when traversing up the qdisc tree to update parent backlog
      counters. However, if a class is created with classid TC_H_ROOT, the
      traversal terminates prematurely at this class instead of reaching the
      actual root qdisc, causing parent statistics to be incorrectly maintained.
      In case of DRR, this could lead to a crash as reported by Mingi Cho.
      
      Prevent the creation of any Qdisc class with classid TC_H_ROOT
      (0xFFFFFFFF) across all qdisc types, as suggested by Jamal.
      
      Reported-by: default avatarMingi Cho <mincho@theori.io>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Fixes: 066a3b5b ("[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop")
      Link: https://patch.msgid.link/20250306232355.93864-2-xiyou.wangcong@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0c3057a5
    • Natalie Vock's avatar
      drm/amdgpu: NULL-check BO's backing store when determining GFX12 PTE flags · 6cc30748
      Natalie Vock authored
      
      PRT BOs may not have any backing store, so bo->tbo.resource will be
      NULL. Check for that before dereferencing.
      
      Fixes: 0cce5f28 ("drm/amdkfd: Check correct memory types for is_system variable")
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarNatalie Vock <natalie.vock@gmx.de>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      (cherry picked from commit 3e3fcd29)
      Cc: stable@vger.kernel.org # 6.12.x
      6cc30748
    • Yifan Zha's avatar
      drm/amd/amdkfd: Evict all queues even HWS remove queue failed · 0882ca4e
      Yifan Zha authored
      
      [Why]
      If reset is detected and kfd need to evict working queues, HWS moving queue will be failed.
      Then remaining queues are not evicted and in active state.
      
      After reset done, kfd uses HWS to termination remaining activated queues but HWS is resetted.
      So remove queue will be failed again.
      
      [How]
      Keep removing all queues even if HWS returns failed.
      It will not affect cpsch as it checks reset_domain->sem.
      
      v2: If any queue failed, evict queue returns error.
      v3: Declare err inside the if-block.
      
      Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
      Signed-off-by: default avatarYifan Zha <Yifan.Zha@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      (cherry picked from commit 42c854b8)
      Cc: stable@vger.kernel.org
      0882ca4e
    • Dan Carpenter's avatar
      ipvs: prevent integer overflow in do_ip_vs_get_ctl() · 80b78c39
      Dan Carpenter authored
      
      The get->num_services variable is an unsigned int which is controlled by
      the user.  The struct_size() function ensures that the size calculation
      does not overflow an unsigned long, however, we are saving the result to
      an int so the calculation can overflow.
      
      Both "len" and "get->num_services" come from the user.  This check is
      just a sanity check to help the user and ensure they are using the API
      correctly.  An integer overflow here is not a big deal.  This has no
      security impact.
      
      Save the result from struct_size() type size_t to fix this integer
      overflow bug.
      
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
      Acked-by: default avatarJulian Anastasov <ja@ssi.bg>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      80b78c39
    • Florian Westphal's avatar
      selftests: netfilter: skip br_netfilter queue tests if kernel is tainted · c21b02fd
      Florian Westphal authored
      
      These scripts fail if the kernel is tainted which leads to wrong test
      failure reports in CI environments when an unrelated test triggers some
      splat.
      
      Check taint state at start of script and SKIP if its already dodgy.
      
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      c21b02fd
    • Kohei Enju's avatar
      netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree() · d653bfeb
      Kohei Enju authored
      
      Since commit b36e4523 ("netfilter: nf_conncount: fix garbage
      collection confirm race"), `cpu` and `jiffies32` were introduced to
      the struct nf_conncount_tuple.
      
      The commit made nf_conncount_add() initialize `conn->cpu` and
      `conn->jiffies32` when allocating the struct.
      In contrast, count_tree() was not changed to initialize them.
      
      By commit 34848d5c ("netfilter: nf_conncount: Split insert and
      traversal"), count_tree() was split and the relevant allocation
      code now resides in insert_tree().
      Initialize `conn->cpu` and `conn->jiffies32` in insert_tree().
      
      BUG: KMSAN: uninit-value in find_or_evict net/netfilter/nf_conncount.c:117 [inline]
      BUG: KMSAN: uninit-value in __nf_conncount_add+0xd9c/0x2850 net/netfilter/nf_conncount.c:143
       find_or_evict net/netfilter/nf_conncount.c:117 [inline]
       __nf_conncount_add+0xd9c/0x2850 net/netfilter/nf_conncount.c:143
       count_tree net/netfilter/nf_conncount.c:438 [inline]
       nf_conncount_count+0x82f/0x1e80 net/netfilter/nf_conncount.c:521
       connlimit_mt+0x7f6/0xbd0 net/netfilter/xt_connlimit.c:72
       __nft_match_eval net/netfilter/nft_compat.c:403 [inline]
       nft_match_eval+0x1a5/0x300 net/netfilter/nft_compat.c:433
       expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]
       nft_do_chain+0x426/0x2290 net/netfilter/nf_tables_core.c:288
       nft_do_chain_ipv4+0x1a5/0x230 net/netfilter/nft_chain_filter.c:23
       nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]
       nf_hook_slow+0xf4/0x400 net/netfilter/core.c:626
       nf_hook_slow_list+0x24d/0x860 net/netfilter/core.c:663
       NF_HOOK_LIST include/linux/netfilter.h:350 [inline]
       ip_sublist_rcv+0x17b7/0x17f0 net/ipv4/ip_input.c:633
       ip_list_rcv+0x9ef/0xa40 net/ipv4/ip_input.c:669
       __netif_receive_skb_list_ptype net/core/dev.c:5936 [inline]
       __netif_receive_skb_list_core+0x15c5/0x1670 net/core/dev.c:5983
       __netif_receive_skb_list net/core/dev.c:6035 [inline]
       netif_receive_skb_list_internal+0x1085/0x1700 net/core/dev.c:6126
       netif_receive_skb_list+0x5a/0x460 net/core/dev.c:6178
       xdp_recv_frames net/bpf/test_run.c:280 [inline]
       xdp_test_run_batch net/bpf/test_run.c:361 [inline]
       bpf_test_run_xdp_live+0x2e86/0x3480 net/bpf/test_run.c:390
       bpf_prog_test_run_xdp+0xf1d/0x1ae0 net/bpf/test_run.c:1316
       bpf_prog_test_run+0x5e5/0xa30 kernel/bpf/syscall.c:4407
       __sys_bpf+0x6aa/0xd90 kernel/bpf/syscall.c:5813
       __do_sys_bpf kernel/bpf/syscall.c:5902 [inline]
       __se_sys_bpf kernel/bpf/syscall.c:5900 [inline]
       __ia32_sys_bpf+0xa0/0xe0 kernel/bpf/syscall.c:5900
       ia32_sys_call+0x394d/0x4180 arch/x86/include/generated/asm/syscalls_32.h:358
       do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
       __do_fast_syscall_32+0xb0/0x110 arch/x86/entry/common.c:387
       do_fast_syscall_32+0x38/0x80 arch/x86/entry/common.c:412
       do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:450
       entry_SYSENTER_compat_after_hwframe+0x84/0x8e
      
      Uninit was created at:
       slab_post_alloc_hook mm/slub.c:4121 [inline]
       slab_alloc_node mm/slub.c:4164 [inline]
       kmem_cache_alloc_noprof+0x915/0xe10 mm/slub.c:4171
       insert_tree net/netfilter/nf_conncount.c:372 [inline]
       count_tree net/netfilter/nf_conncount.c:450 [inline]
       nf_conncount_count+0x1415/0x1e80 net/netfilter/nf_conncount.c:521
       connlimit_mt+0x7f6/0xbd0 net/netfilter/xt_connlimit.c:72
       __nft_match_eval net/netfilter/nft_compat.c:403 [inline]
       nft_match_eval+0x1a5/0x300 net/netfilter/nft_compat.c:433
       expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]
       nft_do_chain+0x426/0x2290 net/netfilter/nf_tables_core.c:288
       nft_do_chain_ipv4+0x1a5/0x230 net/netfilter/nft_chain_filter.c:23
       nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]
       nf_hook_slow+0xf4/0x400 net/netfilter/core.c:626
       nf_hook_slow_list+0x24d/0x860 net/netfilter/core.c:663
       NF_HOOK_LIST include/linux/netfilter.h:350 [inline]
       ip_sublist_rcv+0x17b7/0x17f0 net/ipv4/ip_input.c:633
       ip_list_rcv+0x9ef/0xa40 net/ipv4/ip_input.c:669
       __netif_receive_skb_list_ptype net/core/dev.c:5936 [inline]
       __netif_receive_skb_list_core+0x15c5/0x1670 net/core/dev.c:5983
       __netif_receive_skb_list net/core/dev.c:6035 [inline]
       netif_receive_skb_list_internal+0x1085/0x1700 net/core/dev.c:6126
       netif_receive_skb_list+0x5a/0x460 net/core/dev.c:6178
       xdp_recv_frames net/bpf/test_run.c:280 [inline]
       xdp_test_run_batch net/bpf/test_run.c:361 [inline]
       bpf_test_run_xdp_live+0x2e86/0x3480 net/bpf/test_run.c:390
       bpf_prog_test_run_xdp+0xf1d/0x1ae0 net/bpf/test_run.c:1316
       bpf_prog_test_run+0x5e5/0xa30 kernel/bpf/syscall.c:4407
       __sys_bpf+0x6aa/0xd90 kernel/bpf/syscall.c:5813
       __do_sys_bpf kernel/bpf/syscall.c:5902 [inline]
       __se_sys_bpf kernel/bpf/syscall.c:5900 [inline]
       __ia32_sys_bpf+0xa0/0xe0 kernel/bpf/syscall.c:5900
       ia32_sys_call+0x394d/0x4180 arch/x86/include/generated/asm/syscalls_32.h:358
       do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]
       __do_fast_syscall_32+0xb0/0x110 arch/x86/entry/common.c:387
       do_fast_syscall_32+0x38/0x80 arch/x86/entry/common.c:412
       do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:450
       entry_SYSENTER_compat_after_hwframe+0x84/0x8e
      
      Reported-by: default avatar <syzbot+83fed965338b573115f7@syzkaller.appspotmail.com>
      Closes: https://syzkaller.appspot.com/bug?extid=83fed965338b573115f7
      
      
      Fixes: b36e4523 ("netfilter: nf_conncount: fix garbage collection confirm race")
      Signed-off-by: default avatarKohei Enju <enjuk@amazon.com>
      Reviewed-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      d653bfeb
    • David S. Miller's avatar
      Merge tag 'wireless-2025-03-12' of... · 081b5756
      David S. Miller authored
      Merge tag 'wireless-2025-03-12' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless
      
      
      
      Johannes berg says:
      
      ====================
      Few more fixes:
       - cfg80211/mac80211
         - stop possible runaway wiphy worker
         - EHT should not use reserved MPDU size bits
         - don't run worker for stopped interfaces
         - fix SA Query processing with MLO
         - fix lookup of assoc link BSS entries
         - correct station flush on unauthorize
       - iwlwifi:
         - TSO fixes
         - fix non-MSI-X platforms
         - stop possible runaway restart worker
       - rejigger maintainers so I'm not CC'ed on
         everything
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      081b5756
    • Benjamin Berg's avatar
      wifi: mac80211: fix MPDU length parsing for EHT 5/6 GHz · 8ae227f8
      Benjamin Berg authored
      
      The MPDU length is only configured using the EHT capabilities element on
      2.4 GHz. On 5/6 GHz it is configured using the VHT or HE capabilities
      respectively.
      
      Fixes: cf007927 ("wifi: mac80211: parse A-MSDU len from EHT capabilities")
      Reviewed-by: default avatarMiriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
      Signed-off-by: default avatarBenjamin Berg <benjamin.berg@intel.com>
      Link: https://patch.msgid.link/20250311121704.0634d31f0883.I28063e4d3ef7d296b7e8a1c303460346a30bf09c@changeid
      
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      8ae227f8
  4. Mar 11, 2025
    • Linus Torvalds's avatar
      Merge tag 'hyperv-fixes-signed-20250311' of... · 0fed89a9
      Linus Torvalds authored
      Merge tag 'hyperv-fixes-signed-20250311' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv fixes from Wei Liu:
      
       - Patches to fix Hyper-v framebuffer code (Michael Kelley and Saurabh
         Sengar)
      
       - Fix for Hyper-V output argument to hypercall that changes page
         visibility (Michael Kelley)
      
       - Fix for Hyper-V VTL mode (Naman Jain)
      
      * tag 'hyperv-fixes-signed-20250311' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
        x86/hyperv: Fix output argument to hypercall that changes page visibility
        fbdev: hyperv_fb: Allow graceful removal of framebuffer
        fbdev: hyperv_fb: Simplify hvfb_putmem
        fbdev: hyperv_fb: Fix hang in kdump kernel when on Hyper-V Gen 2 VMs
        drm/hyperv: Fix address space leak when Hyper-V DRM device is removed
        fbdev: hyperv_fb: iounmap() the correct memory when removing a device
        x86/hyperv/vtl: Stop kernel from probing VTL0 low memory
      0fed89a9
Loading