summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/aacraid.h
diff options
context:
space:
mode:
authorGuilherme G. Piccoli2017-11-17 22:14:54 +0100
committerMartin K. Petersen2017-11-21 04:32:00 +0100
commitd9b6d85a38df398cfe0ba3f0fae59d58c9a6d433 (patch)
treec7a49351b61738ca915811eded5f07b8bdbbe132 /drivers/scsi/aacraid/aacraid.h
parentscsi: aacraid: Check for PCI state of device in a generic way (diff)
downloadkernel-qcow2-linux-d9b6d85a38df398cfe0ba3f0fae59d58c9a6d433.tar.gz
kernel-qcow2-linux-d9b6d85a38df398cfe0ba3f0fae59d58c9a6d433.tar.xz
kernel-qcow2-linux-d9b6d85a38df398cfe0ba3f0fae59d58c9a6d433.zip
scsi: aacraid: Perform initialization reset only once
Currently the driver accepts two ways of requesting an initialization reset on the adapter: by passing aac_reset_devices module parameter, or the generic kernel parameter reset_devices. It's working as intended...but if we end up reaching a scsi hang and the scsi EH mechanism takes place, aacraid performs resets as part of the scsi error recovery procedure. These EH routines might reinitialize the device, and if we have provided some of the reset parameters in the kernel command-line, we again perform an "initialization" reset. So, to avoid this duplication of resets in case of scsi EH path, this patch adds a field to aac_dev struct to keep per-adapter track of the init reset request - once it's done, we set it to false and don't proactively reset anymore in case of reinitializations. Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com> Reviewed-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r--drivers/scsi/aacraid/aacraid.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
index 403a639574e5..6e3d81969a77 100644
--- a/drivers/scsi/aacraid/aacraid.h
+++ b/drivers/scsi/aacraid/aacraid.h
@@ -1673,6 +1673,7 @@ struct aac_dev
struct aac_hba_map_info hba_map[AAC_MAX_BUSES][AAC_MAX_TARGETS];
u8 adapter_shutdown;
u32 handle_pci_error;
+ bool init_reset;
};
#define aac_adapter_interrupt(dev) \