lkml.org 
[lkml]   [2004]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
SubjectRe: [PATCH] rc3-mm1 - /proc/ide/HWIF for modular IDE
On Tue, Feb 03, 2004 at 09:39:24PM +0100, Bartlomiej Zolnierkiewicz wrote:
> 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.
>

oh :( is it possible to do it in probe_hwif_init? it would be most
logical place.

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

this patch does it for <hwif>

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

I'll see. what are those races and are they inherently unfixable?

thank you

-andrey

> --bart
>
--- linux-2.6.2-rc3-mm1/drivers/ide/setup-pci.c.modular 2004-02-04 22:14:43.000000000 +0300
+++ linux-2.6.2-rc3-mm1/drivers/ide/setup-pci.c 2004-02-04 22:23:24.000000000 +0300
@@ -746,6 +746,10 @@ void ide_setup_pci_device (struct pci_de
probe_hwif_init(&ide_hwifs[index_list.b.low]);
if ((index_list.b.high & 0xf0) != 0xf0)
probe_hwif_init(&ide_hwifs[index_list.b.high]);
+
+#ifdef CONFIG_PROC_FS
+ create_proc_ide_interfaces();
+#endif
}

EXPORT_SYMBOL_GPL(ide_setup_pci_device);
@@ -763,6 +767,10 @@ void ide_setup_pci_devices (struct pci_d
probe_hwif_init(&ide_hwifs[index_list2.b.low]);
if ((index_list2.b.high & 0xf0) != 0xf0)
probe_hwif_init(&ide_hwifs[index_list2.b.high]);
+
+#ifdef CONFIG_PROC_FS
+ create_proc_ide_interfaces();
+#endif
}

EXPORT_SYMBOL_GPL(ide_setup_pci_devices);
\
 
 \ /
  Last update: 2005-03-22 14:00    [W:0.091 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site