Re: [PATCH] rc3-mm1 - /proc/ide/HWIF for modular IDE

From: Bartlomiej Zolnierkiewicz
Date: Tue Feb 03 2004 - 15:36:47 EST


On Tuesday 03 of February 2004 20:48, Andrey Borzenkov wrote:
> currently /proc/ide/HWIF are created in one shot during initialization
> or in ide-generic meaning that for modular IDE you must include
> ide-generic.
>
> this adds per-hwif registration currently for PCI only (that is what I
> can test); if this is OK I will make create_proc_ide_interfaces static
> and replace it with create_proc_ide_interface where appropriate.
>
> this also makes /proc/ide entries for PCI chipset be correctly created
>
> -andrey

@@ -801,6 +805,12 @@ void ide_pci_register_host_proc (ide_pci
tmp->next = p;
} else
ide_pci_host_proc_list = p;
+
+ if (proc_ide_root) {
+ p->parent = proc_ide_root;
+ create_proc_info_entry(p->name, 0, p->parent, p->get_info);
+ p->set = 2;
+ }
}

You should add p->get_info only _after_ all hwifs of a host are probed,
just like non-modular code does it. Otherwise you are opening new races.

@@ -659,6 +659,10 @@ bypass_legacy_dma:
*/
d->init_hwif(hwif);

+#ifdef CONFIG_PROC_FS
+ create_proc_ide_interface(hwif);
+#endif
+
mate = hwif;
at_least_one_hwif_enabled = 1;
}

Same problem as above.

ide_setup_pci_device()+ide_setup_pci_devices() are correct places
to add registering of /proc/ide/<chipset> and /proc/ide/<hwif>.

Even better - you may fix every PCI driver to add these entries
itself and remove these silly ide_pci_host_proc_t-s :-).

--bart

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/