> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of Ricky > Wu > Sent: Thursday, May 30, 2024 7:52 PM > To: Brandeburg, Jesse <jesse.brandeb...@intel.com> > Cc: pmen...@molgen.mpg.de; michal.swiatkow...@linux.intel.com; Drewek, > Wojciech <wojciech.dre...@intel.com>; intel-wired-...@lists.osuosl.org; > rickywu0...@gmail.com; linux-ker...@vger.kernel.org; en-wei...@canonical.com; > eduma...@google.com; Lien, Cyrus > <cyrus.l...@canonical.com>; Nguyen, > Anthony L <anthony.l.ngu...@intel.com>; net...@vger.kernel.org; > k...@kernel.org; pab...@redhat.com; da...@davemloft.net > 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 <cyrus.l...@canonical.com> > Signed-off-by: Ricky Wu <en-wei...@canonical.com> > --- > 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 <himasekharx.reddy.pu...@intel.com> (A Contingent worker at Intel)