Messages in this thread |  | | | Date | Tue, 08 Apr 2008 15:56:48 -0400 | | From | Jeff Garzik <> | | Subject | Re: [regression] e1000e broke e1000 | |
Ingo Molnar wrote:
> * Matthew Wilcox <matthew@wil.cx> 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
|  |