[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1755327132.git.lukas@wunner.de>
Date: Sat, 16 Aug 2025 09:10:00 +0200
From: Lukas Wunner <lukas@...ner.de>
To: Tony Nguyen <anthony.l.nguyen@...el.com>, Przemek Kitszel <przemyslaw.kitszel@...el.com>
Cc: intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org
Subject: [PATCH 0/3] ice/i40e: pci_enable_device() fixes
The ice and i40e drivers perform surplus calls to pci_enable_device()
on resume and on error recovery. This results in the Memory Space Enable
bit in the PCI Command register not being cleared on driver unbind.
Not a catastrophic issue, so although these commits contain Fixes tags,
I recommend applying through next-queue.git to let them bake in linux-next
for a couple of weeks.
I have neither an ice nor i40e card available, so this is compile-tested
only. I'm hoping Intel validation can test it.
Suggested test procedure:
- Unbind the driver through sysfs without having suspended the card:
echo D:B:D.F | sudo tee /sys/bus/pci/drivers/ice/unbind
(replace D:B:D.F with the device address, e.g. 0000:07:00.0)
- Verify with lspci that it says "Mem-" in the "Control:" register:
lspci -vv -s D:B:D.F
- Rebind the driver:
echo D:B:D.F | sudo tee /sys/bus/pci/drivers/ice/bind
- Suspend the card, resume the card, unbind the driver, re-run lspci.
Expected result without this series "Mem+", with this series "Mem-".
For error recovery, the procedure is the same but instead of suspending
and resuming the card, an error needs to be injected. See the section
on "Software error injection" in Documentation/PCI/pcieaer-howto.rst.
Thanks!
Lukas Wunner (3):
ice: Fix enable_cnt imbalance on resume
ice: Fix enable_cnt imbalance on PCIe error recovery
i40e: Fix enable_cnt imbalance on PCIe error recovery
drivers/net/ethernet/intel/i40e/i40e_main.c | 29 ++++++----------
drivers/net/ethernet/intel/ice/ice_main.c | 38 ++++++---------------
2 files changed, 21 insertions(+), 46 deletions(-)
--
2.47.2
Powered by blists - more mailing lists