Re: [regression] e1000e broke e1000

From: Jeff Garzik
Date: Tue Apr 08 2008 - 15:57:22 EST


Ingo Molnar wrote:
* Matthew Wilcox <matthew@xxxxxx> wrote:

On Tue, Apr 08, 2008 at 08:39:21PM +0200, Ingo Molnar wrote:
so the pure presence of the e1000e module breaks the e1000 driver. That is a regression and a bug that should be fixed.
I think you've found the wrong problem ... it looks deliberate to me that enabling e1000e disables e1000 from claiming the PCI IDs (see the PCIE() macro right before the e1000_pci_tbl in drivers/net/e1000/e1000_main.c).

The question is why e1000e isn't claiming the device ...

because i have e1000 built-in and dont load the e1000e module at all. That worked before and doesnt work now.

the solution is rather straightforward: if E1000 is built-in then E1000E should be built-in as well or disabled (i.e. it should not be possible to build it as a module in that case) - because the PCI ID stealing trick now connects the two drivers unconditionally. [ If e1000 is a module then e1000e can be a module (or disabled) - this would be the most common configuration. ]


Then disable E1000E in your kernel config, and the PCIE() macro will do the right thing...

Have you reviewed the discussion that led to PCIE()?

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/