Re: C99 Initialisers

From: Jeff Garzik
Date: Wed Aug 13 2003 - 15:34:56 EST


Matthew Wilcox wrote:
On Wed, Aug 13, 2003 at 03:44:44PM -0400, Jeff Garzik wrote:

enums are easy putting direct references would be annoying, but I also argue it's potentially broken and wrong to store and export that information publicly anyway. The use of enums instead of pointers is practically required because there is a many-to-one relationship of ids to board information structs.


The hard part is that it's actually many-to-many. The same card can have
multiple drivers. one driver can support many cards.

pci_device_tables are (and must be) at per-driver granularity. Sure the same card can have multiple drivers, but that doesn't really matter in this context, simply because I/we cannot break that per-driver granularity. Any solution must maintain per-driver granularity.


Let me give you a true story that your solution needs to address.
I recently got myself a Compaq Evo with an eepro100 onboard. So I took
my Debian 3.0 CD and tried to install on it. Failed because the eepro
on the board had PCI IDs that were more recent than the driver.

So I took the driver module, put it on a floppy, hand-edited the binary
to replace one of the PCI IDs with the ones that came back from lspci.
Stuck the floppy back in the Evo, loaded the hacked module and finished
the install. Then compiled a new kernel ;-)

I haven't seen anything to address this in a nicer way yet.

Well, the step I wish to take - moving the ids from location X to location Y, would have no effect on that scenario, positive or negative.

Jeff



-
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/