scsi: aacraid: replace aac_flush_ios() with midlayer helper
Use the midlayer helper scsi_host_complete_all_commands() to flush all outstanding commands. Link: https://lore.kernel.org/r/20200228075318.91255-7-hare@suse.de Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Acked-by: Balsundar P <balsundar.p@microchip.com> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
a1855f6126
commit
b64f239e61
@ -1977,26 +1977,6 @@ static void aac_remove_one(struct pci_dev *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
static void aac_flush_ios(struct aac_dev *aac)
|
||||
{
|
||||
int i;
|
||||
struct scsi_cmnd *cmd;
|
||||
|
||||
for (i = 0; i < aac->scsi_host_ptr->can_queue; i++) {
|
||||
cmd = (struct scsi_cmnd *)aac->fibs[i].callback_data;
|
||||
if (cmd && (cmd->SCp.phase == AAC_OWNER_FIRMWARE)) {
|
||||
scsi_dma_unmap(cmd);
|
||||
|
||||
if (aac->handle_pci_error)
|
||||
cmd->result = DID_NO_CONNECT << 16;
|
||||
else
|
||||
cmd->result = DID_RESET << 16;
|
||||
|
||||
cmd->scsi_done(cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static pci_ers_result_t aac_pci_error_detected(struct pci_dev *pdev,
|
||||
enum pci_channel_state error)
|
||||
{
|
||||
@ -2013,7 +1993,7 @@ static pci_ers_result_t aac_pci_error_detected(struct pci_dev *pdev,
|
||||
|
||||
scsi_block_requests(aac->scsi_host_ptr);
|
||||
aac_cancel_rescan_worker(aac);
|
||||
aac_flush_ios(aac);
|
||||
scsi_host_complete_all_commands(shost, DID_NO_CONNECT);
|
||||
aac_release_resources(aac);
|
||||
|
||||
pci_disable_pcie_error_reporting(pdev);
|
||||
@ -2023,7 +2003,7 @@ static pci_ers_result_t aac_pci_error_detected(struct pci_dev *pdev,
|
||||
case pci_channel_io_perm_failure:
|
||||
aac->handle_pci_error = 1;
|
||||
|
||||
aac_flush_ios(aac);
|
||||
scsi_host_complete_all_commands(shost, DID_NO_CONNECT);
|
||||
return PCI_ERS_RESULT_DISCONNECT;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user