lkml.org 
[lkml]   [2008]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] e1000=y && e1000e=m regression fix (was: Re: [regression] e1000e broke e1000)

* Jeff Garzik <jeff@garzik.org> wrote:

>> We've got three thousand Kconfig options - it is clearly not
>> realistic for users to keep such details in mind to avoid pitfalls.
>
> Agreed -- hence the multiple announcements, including in this thread,
> to put said details into mind.

which part of "it took a kernel developer more than an hour to figure
out why his laptop had a dead network interface" did you not understand?
Whatever you did, it was not apparent to me. I dont follow every tiny
detail of the e1000 driver family, nor do 99%+ [*] of our users.

find the fix below, against current -git.

the current upstream behavior is the worst possible one and is just a
plain bug, and the solution is dead-simple.

Ingo

[*] guesstimate

--------------->
Subject: e1000=y && e1000e=m regression fix
From: Ingo Molnar <mingo@elte.hu>
Date: Wed Apr 09 21:09:35 CEST 2008

fix a regression from v2.6.24: do not transfer the e1000e PCI IDs from
e1000 to e1000e if e1000 is built-in and e1000e is a module.

Built-in drivers take precedence over modules in many ways - and in this
case it's clear that the user intended the e1000 driver to be the
primary one. "Silently change behavior and break existing configs" is
never a good migration strategy. Most users will use distro kernels that
are not affected by this problem at all - nor are they affected by this
patch - but this problem can hit users and developers who build their
kernels themselves and migrate from v2.6.24 to v2.6.25.

this fixes: http://bugzilla.kernel.org/show_bug.cgi?id=10427

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
drivers/net/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-x86.q/drivers/net/Kconfig
===================================================================
--- linux-x86.q.orig/drivers/net/Kconfig
+++ linux-x86.q/drivers/net/Kconfig
@@ -2022,7 +2022,7 @@ config E1000E
will be called e1000e.

config E1000E_ENABLED
- def_bool E1000E != n
+ def_bool E1000E = y || ((E1000E != n) && (E1000 = E1000E))

config IP1000
tristate "IP1000 Gigabit Ethernet support"

\
 
 \ /
  Last update: 2008-04-09 21:43    [W:0.096 / U:0.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site