]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[SCSI] libsas: check for 'gone' expanders in smp_execute_task()
authorDan Williams <dan.j.williams@intel.com>
Wed, 21 Dec 2011 23:19:56 +0000 (15:19 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Feb 2012 18:55:12 +0000 (12:55 -0600)
No sense in issuing or retrying commands to an expander that has been
removed.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libsas/sas_expander.c

index 7701ab58840461c6619b74e1825e7765b7804c6e..6fb1f3afd1e0dcfc736cb2d3db228a6b5b85aa0b 100644 (file)
@@ -74,6 +74,11 @@ static int smp_execute_task(struct domain_device *dev, void *req, int req_size,
 
        mutex_lock(&dev->ex_dev.cmd_mutex);
        for (retry = 0; retry < 3; retry++) {
+               if (test_bit(SAS_DEV_GONE, &dev->state)) {
+                       res = -ECOMM;
+                       break;
+               }
+
                task = sas_alloc_task(GFP_KERNEL);
                if (!task) {
                        res = -ENOMEM;