Need to load broadcom kernel module before loading tg3 driver
tim.gardner at canonical.com
Wed Sep 2 15:27:56 UTC 2009
Scott James Remnant wrote:
> On Tue, 2009-09-01 at 16:36 -0600, Tim Gardner wrote:
>>> Had a chat with Matt Carlson at Broadcom, who works on the tg3 driver.
>>> Recently we have had a lot of issues with Broadcom ethernet controllers
>>> working with the upstream tg3 driver, such as the BCM 57780.
>> This seems like a systemic issue for _any_ ethernet driver that uses
>> phylib. One easy solution is to build-in Broadcom MII support, e.g.,
>> Scott - is this a udev issue?
> This is not a udev issue.
> It sounds like you have a simple missing dependency.
> Either the "broadcom" driver should have modaliases for the devices it
> supports, and depend on the tg3 driver; or the tg3 driver should depend
> on the broadcom driver.
> Honestly it sounds like a bug that one has to be loaded before the other
> Consider a laptop which has a built-in ethernet device that uses the tg3
> driver, and a plug-in wireless card using the broadcom driver.
> We would never know to load the broadcom driver before the tg3 driver,
> so the situation of broadcom being loaded *after* tg3 MUST be supported
> by the kernel.
> We will not work around this in userspace.
Gosh, could you be a little more definite ? :)
The real problem is that the MII modules, while they all have some kind
of device signature, require the PCI module to be loaded in order to
extract the MII signature. So, I guess the phylib modules are going to
have to be built-in so that the various MII support functions are
already registered before the PCI modules are loaded.
Alternatively, it seems like the PCI module could dynamically load it's
MII phylib module before registering with phylib. After all, its not
like it doesn't _know_ which module is providing MII support.
Tim Gardner tim.gardner at canonical.com
More information about the kernel-team