On Wed, 26 Jan 2005 08:25:04 -0500, Prarit Bhargava <[EMAIL PROTECTED]> wrote:
> I didn't see any ACKs on this so I'm resubmitting....

sorry for the delay

> I discovered an issue where a hwif_init failure lead to /proc/ide files
> being created for devices that failed probes.  This resulted in

create_proc_ide_interfaces() doesn't create /proc/ide files for
hwif->present == 0 interfaces but hwif_init() sets hwif->present
to 0 too late.  Also this hwif->present games are silly and should
be removed after your patch is applied and locking is verified.

> The second part of the fix is to the core IDE layer and to the SGI IOC4
> IDE driver which need to handle errors properly from failed hwif
> initializations.  This patch is attached for review.

please remember about Signed-off-by:

> ===== drivers/ide/ide-probe.c 1.90 vs edited =====
> --- 1.90/drivers/ide/ide-probe.c        2004-12-10 14:12:14 -05:00
> +++ edited/drivers/ide/ide-probe.c      2005-01-14 08:18:43 -05:00
> @@ -841,7 +841,10 @@
>         if (fixup)
>                 fixup(hwif);
> 
> -       hwif_init(hwif);
> +       if (!hwif_init(hwif)) {
> +               printk("%s: Failed to initialize IDE interface\n", 
> hwif->name);
> +               return -1;
> +       }

Could you fix hwif_init() to return meaningful error codes
and return error from hwif_init() instead of '-1'?

>         if (hwif->present) {
>                 u16 unit = 0;
> ===== drivers/ide/pci/sgiioc4.c 1.22 vs edited =====
> --- 1.22/drivers/ide/pci/sgiioc4.c      2005-01-06 20:35:35 -05:00
> +++ edited/drivers/ide/pci/sgiioc4.c    2005-01-14 08:18:56 -05:00
> @@ -669,7 +669,10 @@
>                 printk(KERN_INFO "%s: %s Bus-Master DMA disabled\n",
>                        hwif->name, d->name);
> 
> -       probe_hwif_init(hwif);
> +       if (probe_hwif_init(hwif)) {
> +               printk(KERN_INFO "%s: initialization failed\n", hwif->name);

redundant, error message is printed in probe_hwif_init()

> +               return -EIO;

please fix probe_hwif_init() to return error codes

> +       }
> 
>         /* Create /proc/ide entries */
>         create_proc_ide_interfaces();

I removed redundant printk and applied the patch
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to