Commit 244359c9 authored by Dan Carpenter's avatar Dan Carpenter Committed by Martin K. Petersen

scsi: libsas: Fix error path in sas_notify_lldd_dev_found()

In sas_notify_lldd_dev_found(), if we can't allocate the necessary
resources, then it seems like the wrong thing to mark the device as found
and to increment the reference count.  None of the callers ever drop the
reference in that situation.

[mkp: tweaked commit desc based on feedback from John]

Link: https://lore.kernel.org/r/20200905125836.GF183976@mwanda
Fixes: 735f7d2f ("[SCSI] libsas: fix domain_device leak")
Reviewed-by: default avatarJason Yan <yanaijie@huawei.com>
Acked-by: default avatarJohn Garry <john.garry@huawei.com>
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent b614d55b
...@@ -182,10 +182,11 @@ int sas_notify_lldd_dev_found(struct domain_device *dev) ...@@ -182,10 +182,11 @@ int sas_notify_lldd_dev_found(struct domain_device *dev)
pr_warn("driver on host %s cannot handle device %016llx, error:%d\n", pr_warn("driver on host %s cannot handle device %016llx, error:%d\n",
dev_name(sas_ha->dev), dev_name(sas_ha->dev),
SAS_ADDR(dev->sas_addr), res); SAS_ADDR(dev->sas_addr), res);
return res;
} }
set_bit(SAS_DEV_FOUND, &dev->state); set_bit(SAS_DEV_FOUND, &dev->state);
kref_get(&dev->kref); kref_get(&dev->kref);
return res; return 0;
} }
......
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