On Wed, 24 Sep 2014, Joe Lawrence wrote:

On Wed, 24 Sep 2014 11:37:55 -0400
Chad Dupuis <chad.dup...@qlogic.com> wrote:



On Wed, 24 Sep 2014, Joe Lawrence wrote:

On Wed, 24 Sep 2014 03:08:34 -0400
Saurav Kashyap <saurav.kash...@qlogic.com> wrote:

From: Chad Dupuis <chad.dup...@qlogic.com>

Disable the PCI device during shutdown to prevent any races with
other PCI code such as the AER handling code.

Signed-off-by: Chad Dupuis <chad.dup...@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kash...@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 08c8e9c..70445bc 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3037,6 +3037,9 @@ qla2x00_shutdown(struct pci_dev *pdev)
        qla2x00_free_irqs(vha);

        qla2x00_free_fw_dump(ha);
+
+       pci_disable_pcie_error_reporting(pdev);
+       pci_disable_device(pdev);
 }

 /* Deletes all the virtual ports for a given ha */

Hi Saurav,

Just curious if there were any bug report instances to go along with
this patch?  (Or a short explanation of the race.)

Joe,

The race here was during reboot after taking a crash dump.  We hit an AER
condition so the driver's AER handler is called after we've already
shutdown the adapter which causes us to try to free some already freed
structs.  To prevent this we disable the PCI function from the shutdown
handler.

Hi Chad,

Could the driver's AER handler get invoked after qla2x00_free_fw_dump,
but before pci_disable_pcie_error_reporting (ie, is there anything to
hold off .shutdown from running at the same time as the AER callbacks)?

No, not that I'm aware of.


Thanks,

-- Joe

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to