> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of Ricky > Wu > Sent: Thursday, May 30, 2024 7:52 PM > To: Brandeburg, Jesse <[email protected]> > Cc: [email protected]; [email protected]; Drewek, > Wojciech <[email protected]>; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; Lien, Cyrus > <[email protected]>; Nguyen, > Anthony L <[email protected]>; [email protected]; > [email protected]; [email protected]; [email protected] > Subject: [Intel-wired-lan] [PATCH net, v2] ice: avoid IRQ collision to fix > init failure on ACPI S3 resume > > A bug in https://bugzilla.kernel.org/show_bug.cgi?id=218906 describes that > irdma would break and report hardware initialization failed after > suspend/resume with Intel E810 NIC (tested on 6.9.0-rc5). > > The problem is caused due to the collision between the irq numbers requested > in irdma and the irq numbers requested in other drivers after suspend/resume. > > The irq numbers used by irdma are derived from ice's ice_pf->msix_entries > which stores mappings between MSI-X index and Linux interrupt number. > It's supposed to be cleaned up when suspend and rebuilt in resume but it's > not, causing irdma using the old irq numbers stored in the old > ice_pf->msix_entries to request_irq() when resume. And eventually collide > with other drivers. > > This patch fixes this problem. On suspend, we call ice_deinit_rdma() to clean > up the ice_pf->msix_entries (and free the MSI-X vectors used by irdma if > we've dynamically allocated them). On resume, we call > ice_init_rdma() to rebuild the ice_pf->msix_entries (and allocate the MSI-X > vectors if we would like to dynamically allocate them). > > Fixes: f9f5301e7e2d ("ice: Register auxiliary device to provide RDMA") > Tested-by: Cyrus Lien <[email protected]> > Signed-off-by: Ricky Wu <[email protected]> > --- > Changes in v2: > - Change title > - Add Fixes and Tested-by tags > - Fix typo > --- > drivers/net/ethernet/intel/ice/ice_main.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) >
Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
