RE: [PATCH] scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()

From: Don.Brace
Date: Thu Dec 20 2018 - 16:23:08 EST

-----Original Message-----
From: Yanjiang Jin [mailto:yanjiang.jin@xxxxxxxxxxxxxxxx]
Sent: Thursday, December 20, 2018 2:33 AM
To: don.brace@xxxxxxxxxxxxx; jejb@xxxxxxxxxxxxxxxxxx; martin.petersen@xxxxxxxxxx; yanjiang.jin@xxxxxxxxxxxxxxxx
Cc: yu.zheng@xxxxxxxxxxxxxxxx; jinyanjiang@xxxxxxxxx; esc.storagedev@xxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: [PATCH] scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()

We must free all irqs during shutdown, else kexec's 2nd kernel would hang in pqi_wait_for_completion_io() as below:

Call trace:


This happens only in the following combinations:

1. smartpqi is built as module, not built-in; 2. We have a disk connected to smartpqi card; 3. Both kexec's 1st and 2nd kernels use this disk as Rootfs' mount point.

Signed-off-by: Yanjiang Jin <yanjiang.jin@xxxxxxxxxxxxxxxx>

Thank-you for your patch.

Acked-by: Don Brace <don.brace@xxxxxxxxxxxxx>

drivers/scsi/smartpqi/smartpqi_init.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index a25a07a..55c1d82 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -6670,6 +6670,7 @@ static void pqi_shutdown(struct pci_dev *pci_dev)
* storage.
rc = pqi_flush_cache(ctrl_info, SHUTDOWN);
+ pqi_free_interrupts(ctrl_info);
if (rc == 0)

This email is intended only for the named addressee. It may contain information that is confidential/private, legally privileged, or copyright-protected, and you should handle it accordingly. If you are not the intended recipient, you do not have legal rights to retain, copy, or distribute this email or its contents, and should promptly delete the email and all electronic copies in your system; do not retain copies in any media. If you have received this email in error, please notify the sender promptly. Thank you.