Messages in this thread | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: [PATCH] rc3-mm1 - /proc/ide/HWIF for modular IDE | Date | Wed, 4 Feb 2004 22:55:33 +0100 |
| |
On Wednesday 04 of February 2004 20:44, Andrey Borzenkov wrote: > 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.
My previous comment is (probably) wrong :-). I've just checked all PCI drivers and don't see anything preventing this.
> > @@ -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.
It is not logical place - you got 1 <chipset> /proc entry per PCI device(s). ide_pci_register_host_proc() (as done in first patch) is more logical.
> > 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?
ie. if <hwif> entry is registered before second (serialized) port is probed, see proc_ide_write_config() for details.
Thanks, --bart
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |