diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-10-11 04:22:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-11 14:14:25 -0400 |
commit | 42ddfd6859b9d57490c94d26e29a43ffd78366e5 (patch) | |
tree | cfbdecd4f3af7824861bdb3a5a7fe95554720c19 /drivers/eisa/eisa-bus.c | |
parent | 5e59393ec242d7b772356c95e2be48384cd0c5d7 (diff) |
[PATCH] EISA: handle sysfs errors
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/eisa/eisa-bus.c')
-rw-r--r-- | drivers/eisa/eisa-bus.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/drivers/eisa/eisa-bus.c b/drivers/eisa/eisa-bus.c index 3a365e159d89..d944647c82c2 100644 --- a/drivers/eisa/eisa-bus.c +++ b/drivers/eisa/eisa-bus.c | |||
@@ -226,14 +226,26 @@ static int __init eisa_init_device (struct eisa_root_device *root, | |||
226 | 226 | ||
227 | static int __init eisa_register_device (struct eisa_device *edev) | 227 | static int __init eisa_register_device (struct eisa_device *edev) |
228 | { | 228 | { |
229 | if (device_register (&edev->dev)) | 229 | int rc = device_register (&edev->dev); |
230 | return -1; | 230 | if (rc) |
231 | return rc; | ||
231 | 232 | ||
232 | device_create_file (&edev->dev, &dev_attr_signature); | 233 | rc = device_create_file (&edev->dev, &dev_attr_signature); |
233 | device_create_file (&edev->dev, &dev_attr_enabled); | 234 | if (rc) goto err_devreg; |
234 | device_create_file (&edev->dev, &dev_attr_modalias); | 235 | rc = device_create_file (&edev->dev, &dev_attr_enabled); |
236 | if (rc) goto err_sig; | ||
237 | rc = device_create_file (&edev->dev, &dev_attr_modalias); | ||
238 | if (rc) goto err_enab; | ||
235 | 239 | ||
236 | return 0; | 240 | return 0; |
241 | |||
242 | err_enab: | ||
243 | device_remove_file (&edev->dev, &dev_attr_enabled); | ||
244 | err_sig: | ||
245 | device_remove_file (&edev->dev, &dev_attr_signature); | ||
246 | err_devreg: | ||
247 | device_unregister(&edev->dev); | ||
248 | return rc; | ||
237 | } | 249 | } |
238 | 250 | ||
239 | static int __init eisa_request_resources (struct eisa_root_device *root, | 251 | static int __init eisa_request_resources (struct eisa_root_device *root, |