linux/drivers/net/ethernet/intel
Grzegorz Nitka 5d30d25666 ice: fix memory leak in aRFS after reset
[ Upstream commit 23d97f1890 ]

Fix aRFS (accelerated Receive Flow Steering) structures memory leak by
adding a checker to verify if aRFS memory is already allocated while
configuring VSI. aRFS objects are allocated in two cases:
- as part of VSI initialization (at probe), and
- as part of reset handling

However, VSI reconfiguration executed during reset involves memory
allocation one more time, without prior releasing already allocated
resources. This led to the memory leak with the following signature:

[root@os-delivery ~]# cat /sys/kernel/debug/kmemleak
unreferenced object 0xff3c1ca7252e6000 (size 8192):
  comm "kworker/0:0", pid 8, jiffies 4296833052
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace (crc 0):
    [<ffffffff991ec485>] __kmalloc_cache_noprof+0x275/0x340
    [<ffffffffc0a6e06a>] ice_init_arfs+0x3a/0xe0 [ice]
    [<ffffffffc09f1027>] ice_vsi_cfg_def+0x607/0x850 [ice]
    [<ffffffffc09f244b>] ice_vsi_setup+0x5b/0x130 [ice]
    [<ffffffffc09c2131>] ice_init+0x1c1/0x460 [ice]
    [<ffffffffc09c64af>] ice_probe+0x2af/0x520 [ice]
    [<ffffffff994fbcd3>] local_pci_probe+0x43/0xa0
    [<ffffffff98f07103>] work_for_cpu_fn+0x13/0x20
    [<ffffffff98f0b6d9>] process_one_work+0x179/0x390
    [<ffffffff98f0c1e9>] worker_thread+0x239/0x340
    [<ffffffff98f14abc>] kthread+0xcc/0x100
    [<ffffffff98e45a6d>] ret_from_fork+0x2d/0x50
    [<ffffffff98e083ba>] ret_from_fork_asm+0x1a/0x30
    ...

Fixes: 28bf26724f ("ice: Implement aRFS")
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-03-22 12:50:38 -07:00
..
e1000 intel: legacy: field get conversion 2024-04-10 16:35:56 +02:00
e1000e e1000e: Remove Meteor Lake SMBUS workarounds 2024-11-14 13:19:31 +01:00
fm10k intel: legacy: field get conversion 2024-04-10 16:35:56 +02:00
i40e i40e: fix race condition by adding filter's intermediate sync state 2024-11-14 13:19:31 +01:00
iavf iavf: allow changing VLAN state without calling PF 2025-02-08 09:52:30 +01:00
ice ice: fix memory leak in aRFS after reset 2025-03-22 12:50:38 -07:00
igb igb: Fix potential invalid memory access in igb_init_module() 2024-12-14 19:59:38 +01:00
igbvf intel: legacy: field get conversion 2024-04-10 16:35:56 +02:00
igc igc: Set buffer type for empty frames in igc_init_empty_frame 2025-02-21 13:57:19 +01:00
ixgbe ixgbe: downgrade logging of unsupported VF API version to debug 2024-12-14 19:59:38 +01:00
ixgbevf ixgbevf: stop attempting IPSEC offload on Mailbox API 1.5 2024-12-14 19:59:38 +01:00
e100.c e100: Fix possible use after free in e100_xmit_prepare 2022-11-23 08:38:22 -08:00
Kconfig ixgb: Remove ixgb driver 2023-03-19 10:51:07 +00:00
Makefile ixgb: Remove ixgb driver 2023-03-19 10:51:07 +00:00