Re: [PATCH] fakephp: Allocate PCI resources before adding the device

From: Trent Piepho
Date: Fri Nov 28 2008 - 05:12:04 EST


On Wed, 26 Nov 2008, Matthew Wilcox wrote:
> On Wed, Nov 26, 2008 at 05:44:35PM -0800, Trent Piepho wrote:
> > Is there a reason you had to change it? It breaks an existing interface.
> > It's clearly more inefficient and complicated to find a slot using it. The
> > exiting PCI device name, like "0000:01:00.0", has been used in the sysfs
> > interface and with tools like lspci since forever. Why should
> > /sys/bus/pci/slots use different names from /sys/bus/pci/devices for the
> > same device?
>
> Because fakephp was the odd one out. Every other hotplug driver
> registers a slot number and puts the address in the directory. We're
> making hotplug drivers simpler (by sharing more of the logic in the
> core) and so fakephp had to change to match the other drivers. I'm
> sorry for your inconvenience, but it's necessary.

Seems like changing a long established interface like this should be put on
the feature removable schedule.

> We can discuss other ways to make your life better, but it can't be
> changed back to one 'slot' per PCI function.

Why not have a slot per pci function with each hotplug driver adding
attributes to the slot? The slot would be registered by the hotplug core.

Is there any reason the fakephp driver should not be allowed to enable and
disable individual functions? There a lot of mutli-function devices that
allow individual functions to be enabled and disabled with registers on the
primary function. For instance, it would be possible to work around a BIOS
that doesn't have an option to disabled a southbridge's USB controller by
doing so in Linux and then using fakephp to remove the device, and thus
free address space that other devices might need.
--
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/