Re: ide double init? + Re: BUG: Current 2.5-BK tree dies on boot!

Jens Axboe
2002-09-19T11:09:38Z

On Thu, Sep 19 2002, Alan Cox wrote:
> On Thu, 2002-09-19 at 11:08, Jens Axboe wrote:
> > Seems to be ide probe calling the pci probe functions, and then they get
> > called by the pci layer later when they register. Dunno what the best
> > way to handle this is. Alan quotes ordering constraints as the reason.
> > Then maybe the easiest fix is to just do
>
> Something is very wrong if they initialize twice. Hacking chipset_init
> is not a fix its an ugly hack.

True :-)

> They should end up on the ide queue to init, then transfer to the core
> PCI hotplug layer. The hotplug layer won't call the setups again because
> the device is already owned by the driver that grabbed it.
>
> In 2.4 at least pci_register_driver checks that it doesnt do that
>
> pci_for_each_dev(dev) {
> if (!pci_dev_driver(dev))
> count += pci_announce_device(drv, dev);
> }
>
>
> 2.5 should do the same

2.5 is reorged big time it seems, pci_register_driver() ->
drier_attach() -> do_driver_attach() -> found_match() calls ->probe()
unconditionally...

--
Jens Axboe