|
@@ -207,6 +207,13 @@ static int sas_queuecommand_lck(struct scsi_cmnd *cmd,
|
|
|
struct sas_ha_struct *sas_ha = dev->port->ha;
|
|
|
struct sas_task *task;
|
|
|
|
|
|
+ /* If the device fell off, no sense in issuing commands */
|
|
|
+ if (dev->gone) {
|
|
|
+ cmd->result = DID_BAD_TARGET << 16;
|
|
|
+ scsi_done(cmd);
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
if (dev_is_sata(dev)) {
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -216,13 +223,6 @@ static int sas_queuecommand_lck(struct scsi_cmnd *cmd,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- /* If the device fell off, no sense in issuing commands */
|
|
|
- if (dev->gone) {
|
|
|
- cmd->result = DID_BAD_TARGET << 16;
|
|
|
- scsi_done(cmd);
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
res = -ENOMEM;
|
|
|
task = sas_create_task(cmd, dev, GFP_ATOMIC);
|
|
|
if (!task)
|