aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_ata.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
-rw-r--r--drivers/scsi/libsas/sas_ata.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 042153cbbde1..e1a395b438ee 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -162,6 +162,10 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
162 unsigned int xfer = 0; 162 unsigned int xfer = 0;
163 unsigned int si; 163 unsigned int si;
164 164
165 /* If the device fell off, no sense in issuing commands */
166 if (dev->gone)
167 return AC_ERR_SYSTEM;
168
165 task = sas_alloc_task(GFP_ATOMIC); 169 task = sas_alloc_task(GFP_ATOMIC);
166 if (!task) 170 if (!task)
167 return AC_ERR_SYSTEM; 171 return AC_ERR_SYSTEM;
@@ -347,6 +351,7 @@ static int sas_ata_scr_read(struct ata_link *link, unsigned int sc_reg_in,
347static struct ata_port_operations sas_sata_ops = { 351static struct ata_port_operations sas_sata_ops = {
348 .phy_reset = sas_ata_phy_reset, 352 .phy_reset = sas_ata_phy_reset,
349 .post_internal_cmd = sas_ata_post_internal, 353 .post_internal_cmd = sas_ata_post_internal,
354 .qc_defer = ata_std_qc_defer,
350 .qc_prep = ata_noop_qc_prep, 355 .qc_prep = ata_noop_qc_prep,
351 .qc_issue = sas_ata_qc_issue, 356 .qc_issue = sas_ata_qc_issue,
352 .qc_fill_rtf = sas_ata_qc_fill_rtf, 357 .qc_fill_rtf = sas_ata_qc_fill_rtf,