Re: pci: add to global list before sysfs?

From: Greg KH
Date: Fri Apr 04 2008 - 17:07:30 EST


On Fri, Apr 04, 2008 at 07:13:50PM +0200, Pierre Ossman wrote:
> Hi Greg,
>
> I have a PCI hotplug problem I was hoping you could provide some
> insight into.
>
> I want the PCI layer to make sure that all subfunctions of a newly
> added card are visible via pci_get_device() before any of them are
> binded to drivers. I.e. I want pci_bus_add_devices() to first make a
> pass and add the devices to the global list, then a second pass for
> device_add().

What "global list"? You mean the one that I just deleted with my
patchset that is in -mm and going to be in 2.6.26? :)

> The reason I want this is because I have at least two chips where I
> need to know which other subfunctions are present on the card in order
> to correctly initalise the subfunction I'm currently probing. Right now
> that fails miserably as the driver does not see the other devices in
> its probe function.

How will changing the addition of the device to the list affect this
behavior? Do you want to walk the list in your driver's probe function,
looking for the "subfunction" that is not yet added to the list?

> Is it possible to do this or will things break left and right if I
> add them to the global list before I register them with the driver core?

As I mention above, the "global list" is now gone, so it's going to be a
bit harder to do this. We now only keep one list of all PCI devices,
and that is with the driver core mechanisms as the duplicate list was
just sitting there doing nothing for the past 4 years.

So is the problem that your driver need to bind to multiple pci devices
at the same time in order to work properly?

Or is this just really broken hardware?

confused,

greg k-h
--
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/