Commit 25188423 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Martin K. Petersen

scsi: aacraid: split off host reset

Split off the host reset parts of aac_eh_reset() into a separate
host reset function.
Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarRaghava Aditya Renukunta  <RaghavaAditya.Renukunta@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 5115c8c0
...@@ -874,10 +874,6 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) ...@@ -874,10 +874,6 @@ static int aac_eh_reset(struct scsi_cmnd* cmd)
u32 bus, cid; u32 bus, cid;
int ret = FAILED; int ret = FAILED;
int status = 0; int status = 0;
__le32 supported_options2 = 0;
bool is_mu_reset;
bool is_ignore_reset;
bool is_doorbell_reset;
bus = aac_logical_to_phys(scmd_channel(cmd)); bus = aac_logical_to_phys(scmd_channel(cmd));
...@@ -923,7 +919,7 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) ...@@ -923,7 +919,7 @@ static int aac_eh_reset(struct scsi_cmnd* cmd)
} }
if (ret == SUCCESS) if (ret == SUCCESS)
goto out; return ret;
} else { } else {
...@@ -952,8 +948,24 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) ...@@ -952,8 +948,24 @@ static int aac_eh_reset(struct scsi_cmnd* cmd)
dev_err(&aac->pdev->dev, "Adapter health - %d\n", status); dev_err(&aac->pdev->dev, "Adapter health - %d\n", status);
count = get_num_of_incomplete_fibs(aac); count = get_num_of_incomplete_fibs(aac);
if (count == 0) return (count == 0) ? SUCCESS : FAILED;
return SUCCESS; }
/*
* aac_eh_host_reset - Host reset command handling
* @scsi_cmd: SCSI command block causing the reset
*
*/
int aac_eh_host_reset(struct scsi_cmnd *cmd)
{
struct scsi_device * dev = cmd->device;
struct Scsi_Host * host = dev->host;
struct aac_dev * aac = (struct aac_dev *)host->hostdata;
int ret = FAILED;
__le32 supported_options2 = 0;
bool is_mu_reset;
bool is_ignore_reset;
bool is_doorbell_reset;
/* /*
* Check if reset is supported by the firmware * Check if reset is supported by the firmware
...@@ -972,10 +984,8 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) ...@@ -972,10 +984,8 @@ static int aac_eh_reset(struct scsi_cmnd* cmd)
&& (aac_check_reset != -1 || !is_ignore_reset)) { && (aac_check_reset != -1 || !is_ignore_reset)) {
/* Bypass wait for command quiesce */ /* Bypass wait for command quiesce */
aac_reset_adapter(aac, 2, IOP_HWSOFT_RESET); aac_reset_adapter(aac, 2, IOP_HWSOFT_RESET);
}
ret = SUCCESS; ret = SUCCESS;
}
out:
return ret; return ret;
} }
...@@ -1399,7 +1409,8 @@ static struct scsi_host_template aac_driver_template = { ...@@ -1399,7 +1409,8 @@ static struct scsi_host_template aac_driver_template = {
.change_queue_depth = aac_change_queue_depth, .change_queue_depth = aac_change_queue_depth,
.sdev_attrs = aac_dev_attrs, .sdev_attrs = aac_dev_attrs,
.eh_abort_handler = aac_eh_abort, .eh_abort_handler = aac_eh_abort,
.eh_host_reset_handler = aac_eh_reset, .eh_bus_reset_handler = aac_eh_reset,
.eh_host_reset_handler = aac_eh_host_reset,
.can_queue = AAC_NUM_IO_FIB, .can_queue = AAC_NUM_IO_FIB,
.this_id = MAXIMUM_NUM_CONTAINERS, .this_id = MAXIMUM_NUM_CONTAINERS,
.sg_tablesize = 16, .sg_tablesize = 16,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment