summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@suse.de>2010-03-12 16:14:42 -0600
committerGreg Kroah-Hartman <gregkh@suse.de>2010-08-10 11:09:21 -0700
commitefe5d7f1ad582cafc68624f39ba720e12bcddb20 (patch)
treee872378525c84c4e968c429b24edbb615577a74c
parent5232dfac1ac008b5a4df815a5256776913dfa025 (diff)
downloadlwn-efe5d7f1ad582cafc68624f39ba720e12bcddb20.tar.gz
lwn-efe5d7f1ad582cafc68624f39ba720e12bcddb20.zip
SCSI: enclosure: fix error path - actually return ERR_PTR() on error
commit a91c1be21704113b023919826c6d531da46656ef upstream. we also need to clean up and free the cdev. Reported-by: Jani Nikula <ext-jani.1.nikula@nokia.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/misc/enclosure.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
index 48c84a58163e..00e5fcac8fdf 100644
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -285,8 +285,11 @@ enclosure_component_register(struct enclosure_device *edev,
cdev->groups = enclosure_groups;
err = device_register(cdev);
- if (err)
- ERR_PTR(err);
+ if (err) {
+ ecomp->number = -1;
+ put_device(cdev);
+ return ERR_PTR(err);
+ }
return ecomp;
}