summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2005-12-13 04:03:30 (GMT)
committerJody McIntyre <scjody@modernduck.com>2005-12-13 04:03:30 (GMT)
commitdc3edd5412341b02d84144ddfd5bf6ccaaeeb1ac (patch)
treedf739298b8c5ea5b3d10b41db3c42c43c77a0786
parent43863eba763e0c91e33e342ce5b7650fea594a53 (diff)
downloadlinux-dc3edd5412341b02d84144ddfd5bf6ccaaeeb1ac.tar.xz
sbp2: did not clean up after scsi_add_device() failed
If scsi_add_device() at the end of sbp2_start_device() fails, e.g. due to transport errors during SCSI inquiry, sbp2 needs to log out of the device and release all associated resources. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
-rw-r--r--drivers/ieee1394/sbp2.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index 372a772..5b9d03e 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -960,6 +960,8 @@ alloc_fail:
error = scsi_add_device(scsi_id->scsi_host, 0, scsi_id->ud->id, 0);
if (error) {
SBP2_ERR("scsi_add_device failed");
+ sbp2_logout_device(scsi_id);
+ sbp2_remove_device(scsi_id);
return error;
}