mirror of
https://github.com/torvalds/linux.git
synced 2026-03-13 23:46:14 +01:00
RDMA/efa: Add shutdown notifier
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. Link: https://lore.kernel.org/r/20240425171814.25216-1-mrgolin@amazon.com Reviewed-by: Firas Jahjah <firasj@amazon.com> Reviewed-by: Yonatan Nachum <ynachum@amazon.com> Signed-off-by: Michael Margolin <mrgolin@amazon.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
f88320b698
commit
f847e84015
1 changed files with 11 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue