Re: [PATCH for-rc] RDMA/efa: Add shutdown notifier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25.04.24 09:51, Michael Margolin wrote:
Add driver function to stop the device and release any active IRQs as
preparation for shutdown. This should fix issues cased by unexpected AQ

s/cased/caused ?

Zhu Yanjun

interrupts when booting kernel using kexec and possible data integrity
issues when the system is being shutdown during traffic.

Reviewed-by: Firas Jahjah <firasj@xxxxxxxxxx>
Reviewed-by: Yonatan Nachum <ynachum@xxxxxxxxxx>
Signed-off-by: Michael Margolin <mrgolin@xxxxxxxxxx>
---
  drivers/infiniband/hw/efa/efa_main.c | 11 +++++++++++
  1 file changed, 11 insertions(+)

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);





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux