Message ID | 20240425171814.25216-1-mrgolin@amazon.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | [for-rc,v2] RDMA/efa: Add shutdown notifier | expand |
On Thu, Apr 25, 2024 at 05:18:14PM +0000, Michael Margolin wrote: > Add driver function to stop the device and release any active IRQs as > preparation for shutdown. This should fix issues caused by unexpected AQ > interrupts when booting kernel using kexec and possible data integrity > issues when the system is being shutdown during traffic. > > Reviewed-by: Firas Jahjah <firasj@amazon.com> > Reviewed-by: Yonatan Nachum <ynachum@amazon.com> > Signed-off-by: Michael Margolin <mrgolin@amazon.com> > --- > drivers/infiniband/hw/efa/efa_main.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) Applied to for-next Jason
diff --git a/drivers/infiniband/hw/efa/efa_main.c b/drivers/infiniband/hw/efa/efa_main.c index 5fa3603c80d8..d1a48f988f6c 100644 --- a/drivers/infiniband/hw/efa/efa_main.c +++ b/drivers/infiniband/hw/efa/efa_main.c @@ -671,11 +671,22 @@ static void efa_remove(struct pci_dev *pdev) efa_remove_device(pdev); } +static void efa_shutdown(struct pci_dev *pdev) +{ + struct efa_dev *dev = pci_get_drvdata(pdev); + + efa_destroy_eqs(dev); + efa_com_dev_reset(&dev->edev, EFA_REGS_RESET_SHUTDOWN); + efa_free_irq(dev, &dev->admin_irq); + efa_disable_msix(dev); +} + static struct pci_driver efa_pci_driver = { .name = DRV_MODULE_NAME, .id_table = efa_pci_tbl, .probe = efa_probe, .remove = efa_remove, + .shutdown = efa_shutdown, }; module_pci_driver(efa_pci_driver);