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/