diff options
author | Randy Dunlap <rdunlap@xenotime.net> | 2006-10-03 04:14:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 11:04:08 -0400 |
commit | 349ae23fe7379a42973bcb1c85f7d43ec583c17d (patch) | |
tree | 2f885e437a59a23f04161e9761b86a8421ab6ff7 /drivers/ide/ide-probe.c | |
parent | 5ac24697699b394cdebac0a2329ce3af247d6a3b (diff) |
[PATCH] IDE core: driver layer error checking
Check driver layer return values in IDE core.
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 9cadf0106c6c..dad9c47ebb69 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -623,6 +623,8 @@ static void hwif_release_dev (struct device *dev) | |||
623 | 623 | ||
624 | static void hwif_register (ide_hwif_t *hwif) | 624 | static void hwif_register (ide_hwif_t *hwif) |
625 | { | 625 | { |
626 | int ret; | ||
627 | |||
626 | /* register with global device tree */ | 628 | /* register with global device tree */ |
627 | strlcpy(hwif->gendev.bus_id,hwif->name,BUS_ID_SIZE); | 629 | strlcpy(hwif->gendev.bus_id,hwif->name,BUS_ID_SIZE); |
628 | hwif->gendev.driver_data = hwif; | 630 | hwif->gendev.driver_data = hwif; |
@@ -634,7 +636,10 @@ static void hwif_register (ide_hwif_t *hwif) | |||
634 | hwif->gendev.parent = NULL; | 636 | hwif->gendev.parent = NULL; |
635 | } | 637 | } |
636 | hwif->gendev.release = hwif_release_dev; | 638 | hwif->gendev.release = hwif_release_dev; |
637 | device_register(&hwif->gendev); | 639 | ret = device_register(&hwif->gendev); |
640 | if (ret < 0) | ||
641 | printk(KERN_WARNING "IDE: %s: device_register error: %d\n", | ||
642 | __FUNCTION__, ret); | ||
638 | } | 643 | } |
639 | 644 | ||
640 | static int wait_hwif_ready(ide_hwif_t *hwif) | 645 | static int wait_hwif_ready(ide_hwif_t *hwif) |
@@ -884,13 +889,19 @@ int probe_hwif_init_with_fixup(ide_hwif_t *hwif, void (*fixup)(ide_hwif_t *hwif) | |||
884 | 889 | ||
885 | if (hwif->present) { | 890 | if (hwif->present) { |
886 | u16 unit = 0; | 891 | u16 unit = 0; |
892 | int ret; | ||
893 | |||
887 | for (unit = 0; unit < MAX_DRIVES; ++unit) { | 894 | for (unit = 0; unit < MAX_DRIVES; ++unit) { |
888 | ide_drive_t *drive = &hwif->drives[unit]; | 895 | ide_drive_t *drive = &hwif->drives[unit]; |
889 | /* For now don't attach absent drives, we may | 896 | /* For now don't attach absent drives, we may |
890 | want them on default or a new "empty" class | 897 | want them on default or a new "empty" class |
891 | for hotplug reprobing ? */ | 898 | for hotplug reprobing ? */ |
892 | if (drive->present) { | 899 | if (drive->present) { |
893 | device_register(&drive->gendev); | 900 | ret = device_register(&drive->gendev); |
901 | if (ret < 0) | ||
902 | printk(KERN_WARNING "IDE: %s: " | ||
903 | "device_register error: %d\n", | ||
904 | __FUNCTION__, ret); | ||
894 | } | 905 | } |
895 | } | 906 | } |
896 | } | 907 | } |
@@ -1409,8 +1420,14 @@ int ideprobe_init (void) | |||
1409 | if (hwif->chipset == ide_unknown || hwif->chipset == ide_forced) | 1420 | if (hwif->chipset == ide_unknown || hwif->chipset == ide_forced) |
1410 | hwif->chipset = ide_generic; | 1421 | hwif->chipset = ide_generic; |
1411 | for (unit = 0; unit < MAX_DRIVES; ++unit) | 1422 | for (unit = 0; unit < MAX_DRIVES; ++unit) |
1412 | if (hwif->drives[unit].present) | 1423 | if (hwif->drives[unit].present) { |
1413 | device_register(&hwif->drives[unit].gendev); | 1424 | int ret = device_register( |
1425 | &hwif->drives[unit].gendev); | ||
1426 | if (ret < 0) | ||
1427 | printk(KERN_WARNING "IDE: %s: " | ||
1428 | "device_register error: %d\n", | ||
1429 | __FUNCTION__, ret); | ||
1430 | } | ||
1414 | } | 1431 | } |
1415 | } | 1432 | } |
1416 | return 0; | 1433 | return 0; |