LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
       [not found] <200801292359.m0TNxb75011826@hera.kernel.org>
@ 2008-01-30  5:23 ` Randy Dunlap
  2008-01-30  5:51   ` Linus Torvalds
  0 siblings, 1 reply; 8+ messages in thread
From: Randy Dunlap @ 2008-01-30  5:23 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: torvalds, auke-jan.h.kok, jeff, davem, akpm

On Tue, 29 Jan 2008 23:59:37 GMT Linux Kernel Mailing List wrote:

> Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5b10ca19ea4859d3884d10a3eb8495de92089792
> Commit:     5b10ca19ea4859d3884d10a3eb8495de92089792
> Parent:     9e97198dbf318be7958b57900d05b37c7e09ad7c
> Author:     Linus Torvalds <torvalds@linux-foundation.org>
> AuthorDate: Wed Jan 30 09:54:54 2008 +1100
> Committer:  Linus Torvalds <torvalds@linux-foundation.org>
> CommitDate: Wed Jan 30 09:54:54 2008 +1100
> 
>     Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
>     
>     The new e1000e driver is apparently not yet suitable for general use, so
>     mark it experimental, and re-instate all the PCI-Express device IDs in
>     the old and stable e1000 driver so that people (namely me) can continue
>     to use a driver that actually works.
>     
>     Auke & co have been appraised of the situation.
>     
>     Cc: Auke Kok <auke-jan.h.kok@intel.com>
>     Cc: Jeff Garzik <jeff@garzik.org>
>     Cc: David Miller <davem@davemloft.net>
>     Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Andrew was concerned about this when the driver was in -mm.
He asked for a patch that would set E1000E to same value as E1000
and I supplied that.  Auke acked it IIRC.  Other people vetoed it.  :(


> ---
>  drivers/net/Kconfig            |    2 +-
>  drivers/net/e1000/e1000_main.c |   27 +++++++++++++++++++++++++++
>  2 files changed, 28 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index af40ff4..5a2d1dd 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -1992,7 +1992,7 @@ config E1000_DISABLE_PACKET_SPLIT
>  
>  config E1000E
>  	tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
> -	depends on PCI
> +	depends on PCI && EXPERIMENTAL
>  	---help---
>  	  This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
>  	  ethernet family of adapters. For PCI or PCI-X e1000 adapters,
> diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
> index 7f5b2ae..3111af6 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -73,6 +73,14 @@ static struct pci_device_id e1000_pci_tbl[] = {
>  	INTEL_E1000_ETHERNET_DEVICE(0x1026),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1027),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1028),
> +	INTEL_E1000_ETHERNET_DEVICE(0x1049),
> +	INTEL_E1000_ETHERNET_DEVICE(0x104A),
> +	INTEL_E1000_ETHERNET_DEVICE(0x104B),
> +	INTEL_E1000_ETHERNET_DEVICE(0x104C),
> +	INTEL_E1000_ETHERNET_DEVICE(0x104D),
> +	INTEL_E1000_ETHERNET_DEVICE(0x105E),
> +	INTEL_E1000_ETHERNET_DEVICE(0x105F),
> +	INTEL_E1000_ETHERNET_DEVICE(0x1060),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1075),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1076),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1077),
> @@ -81,9 +89,28 @@ static struct pci_device_id e1000_pci_tbl[] = {
>  	INTEL_E1000_ETHERNET_DEVICE(0x107A),
>  	INTEL_E1000_ETHERNET_DEVICE(0x107B),
>  	INTEL_E1000_ETHERNET_DEVICE(0x107C),
> +	INTEL_E1000_ETHERNET_DEVICE(0x107D),
> +	INTEL_E1000_ETHERNET_DEVICE(0x107E),
> +	INTEL_E1000_ETHERNET_DEVICE(0x107F),
>  	INTEL_E1000_ETHERNET_DEVICE(0x108A),
> +	INTEL_E1000_ETHERNET_DEVICE(0x108B),
> +	INTEL_E1000_ETHERNET_DEVICE(0x108C),
> +	INTEL_E1000_ETHERNET_DEVICE(0x1096),
> +	INTEL_E1000_ETHERNET_DEVICE(0x1098),
>  	INTEL_E1000_ETHERNET_DEVICE(0x1099),
> +	INTEL_E1000_ETHERNET_DEVICE(0x109A),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10A4),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10A5),
>  	INTEL_E1000_ETHERNET_DEVICE(0x10B5),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10B9),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10BA),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10BB),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10BC),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10C4),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10C5),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10D5),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10D9),
> +	INTEL_E1000_ETHERNET_DEVICE(0x10DA),
>  	/* required last entry */
>  	{0,}
>  };

---
~Randy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
  2008-01-30  5:23 ` Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e" Randy Dunlap
@ 2008-01-30  5:51   ` Linus Torvalds
  2008-01-30  5:54     ` Linus Torvalds
                       ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Linus Torvalds @ 2008-01-30  5:51 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Linux Kernel Mailing List, auke-jan.h.kok, jeff, David S. Miller, akpm



On Tue, 29 Jan 2008, Randy Dunlap wrote:
> 
> Andrew was concerned about this when the driver was in -mm.
> He asked for a patch that would set E1000E to same value as E1000
> and I supplied that.  Auke acked it IIRC.  Other people vetoed it.  :(

Yeah, I've been discussing with Jeff and the gang.

I think we have agreed on a solution where the ID's show up in the old 
driver if the new driver is not enabled at all.

(And as a side note: it turns out that the problem I experienced didn't 
come from the new e1000e driver after all, so I'll be removing the 
EXPERIMENTAL flag again).

So I'd suggest the final patch be something like this, but I'm sendign it 
out just as an example of how we could solve this, not necessarily as a 
final patch.

Jeff, Auke, would something like this be acceptable? It makes it very 
obvious in the driver table which entries are for the PCIE versions that 
would be handled by the E1000E driver if it is enabled..

Untested, but as mentioned, this is more of a "this looks maintainable and 
like it should solve the issues" rather than anything I was planning on 
committing now.

		Linus
---
 drivers/net/Kconfig            |    5 ++-
 drivers/net/e1000/e1000_main.c |   60 ++++++++++++++++++++++------------------
 2 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 5a2d1dd..6c57540 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1992,7 +1992,7 @@ config E1000_DISABLE_PACKET_SPLIT
 
 config E1000E
 	tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
-	depends on PCI && EXPERIMENTAL
+	depends on PCI
 	---help---
 	  This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
 	  ethernet family of adapters. For PCI or PCI-X e1000 adapters,
@@ -2009,6 +2009,9 @@ config E1000E
 	  To compile this driver as a module, choose M here. The module
 	  will be called e1000e.
 
+config E1000E_ENABLED
+	def_bool E1000E != n
+
 config IP1000
 	tristate "IP1000 Gigabit Ethernet support"
 	depends on PCI && EXPERIMENTAL
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 3111af6..8c87940 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -47,6 +47,12 @@ static const char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation
  * Macro expands to...
  *   {PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)}
  */
+#ifdef CONFIG_E1000E_ENABLED
+  #define PCIE(x) 
+#else
+  #define PCIE(x) x,
+#endif
+
 static struct pci_device_id e1000_pci_tbl[] = {
 	INTEL_E1000_ETHERNET_DEVICE(0x1000),
 	INTEL_E1000_ETHERNET_DEVICE(0x1001),
@@ -73,14 +79,14 @@ static struct pci_device_id e1000_pci_tbl[] = {
 	INTEL_E1000_ETHERNET_DEVICE(0x1026),
 	INTEL_E1000_ETHERNET_DEVICE(0x1027),
 	INTEL_E1000_ETHERNET_DEVICE(0x1028),
-	INTEL_E1000_ETHERNET_DEVICE(0x1049),
-	INTEL_E1000_ETHERNET_DEVICE(0x104A),
-	INTEL_E1000_ETHERNET_DEVICE(0x104B),
-	INTEL_E1000_ETHERNET_DEVICE(0x104C),
-	INTEL_E1000_ETHERNET_DEVICE(0x104D),
-	INTEL_E1000_ETHERNET_DEVICE(0x105E),
-	INTEL_E1000_ETHERNET_DEVICE(0x105F),
-	INTEL_E1000_ETHERNET_DEVICE(0x1060),
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x1049))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x104A))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x104B))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x104C))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x104D))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x105E))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x105F))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x1060))
 	INTEL_E1000_ETHERNET_DEVICE(0x1075),
 	INTEL_E1000_ETHERNET_DEVICE(0x1076),
 	INTEL_E1000_ETHERNET_DEVICE(0x1077),
@@ -89,28 +95,28 @@ static struct pci_device_id e1000_pci_tbl[] = {
 	INTEL_E1000_ETHERNET_DEVICE(0x107A),
 	INTEL_E1000_ETHERNET_DEVICE(0x107B),
 	INTEL_E1000_ETHERNET_DEVICE(0x107C),
-	INTEL_E1000_ETHERNET_DEVICE(0x107D),
-	INTEL_E1000_ETHERNET_DEVICE(0x107E),
-	INTEL_E1000_ETHERNET_DEVICE(0x107F),
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x107D))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x107E))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x107F))
 	INTEL_E1000_ETHERNET_DEVICE(0x108A),
-	INTEL_E1000_ETHERNET_DEVICE(0x108B),
-	INTEL_E1000_ETHERNET_DEVICE(0x108C),
-	INTEL_E1000_ETHERNET_DEVICE(0x1096),
-	INTEL_E1000_ETHERNET_DEVICE(0x1098),
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x108B))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x108C))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x1096))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x1098))
 	INTEL_E1000_ETHERNET_DEVICE(0x1099),
-	INTEL_E1000_ETHERNET_DEVICE(0x109A),
-	INTEL_E1000_ETHERNET_DEVICE(0x10A4),
-	INTEL_E1000_ETHERNET_DEVICE(0x10A5),
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x109A))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10A4))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10A5))
 	INTEL_E1000_ETHERNET_DEVICE(0x10B5),
-	INTEL_E1000_ETHERNET_DEVICE(0x10B9),
-	INTEL_E1000_ETHERNET_DEVICE(0x10BA),
-	INTEL_E1000_ETHERNET_DEVICE(0x10BB),
-	INTEL_E1000_ETHERNET_DEVICE(0x10BC),
-	INTEL_E1000_ETHERNET_DEVICE(0x10C4),
-	INTEL_E1000_ETHERNET_DEVICE(0x10C5),
-	INTEL_E1000_ETHERNET_DEVICE(0x10D5),
-	INTEL_E1000_ETHERNET_DEVICE(0x10D9),
-	INTEL_E1000_ETHERNET_DEVICE(0x10DA),
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10B9))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10BA))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10BB))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10BC))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10C4))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10C5))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10D5))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10D9))
+PCIE(	INTEL_E1000_ETHERNET_DEVICE(0x10DA))
 	/* required last entry */
 	{0,}
 };

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
  2008-01-30  5:51   ` Linus Torvalds
@ 2008-01-30  5:54     ` Linus Torvalds
  2008-01-30 10:05     ` Jeff Garzik
  2008-01-30 23:58     ` Adrian Bunk
  2 siblings, 0 replies; 8+ messages in thread
From: Linus Torvalds @ 2008-01-30  5:54 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Linux Kernel Mailing List, auke-jan.h.kok, jeff, David S. Miller, akpm



On Wed, 30 Jan 2008, Linus Torvalds wrote:
> 
> Untested, but as mentioned, this is more of a "this looks maintainable and 
> like it should solve the issues" rather than anything I was planning on 
> committing now.

Side note: I "verified" this patch by also diffing it against the HEAD^ 
state (before adding the PCIE ID's back in), to check that I marked 
exactly the right entries as PCIE() entries.

So while it's not tested, at least it looks right from two different 
angles ;)

			Linus

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
  2008-01-30  5:51   ` Linus Torvalds
  2008-01-30  5:54     ` Linus Torvalds
@ 2008-01-30 10:05     ` Jeff Garzik
  2008-01-30 16:23       ` Kok, Auke
  2008-01-30 23:58     ` Adrian Bunk
  2 siblings, 1 reply; 8+ messages in thread
From: Jeff Garzik @ 2008-01-30 10:05 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Randy Dunlap, Linux Kernel Mailing List, auke-jan.h.kok,
	David S. Miller, akpm, NetDev

Linus Torvalds wrote:
> 
> On Tue, 29 Jan 2008, Randy Dunlap wrote:
>> Andrew was concerned about this when the driver was in -mm.
>> He asked for a patch that would set E1000E to same value as E1000
>> and I supplied that.  Auke acked it IIRC.  Other people vetoed it.  :(
> 
> Yeah, I've been discussing with Jeff and the gang.
> 
> I think we have agreed on a solution where the ID's show up in the old 
> driver if the new driver is not enabled at all.
> 
> (And as a side note: it turns out that the problem I experienced didn't 
> come from the new e1000e driver after all, so I'll be removing the 
> EXPERIMENTAL flag again).
> 
> So I'd suggest the final patch be something like this, but I'm sendign it 
> out just as an example of how we could solve this, not necessarily as a 
> final patch.
> 
> Jeff, Auke, would something like this be acceptable? It makes it very 
> obvious in the driver table which entries are for the PCIE versions that 
> would be handled by the E1000E driver if it is enabled..
> 
> Untested, but as mentioned, this is more of a "this looks maintainable and 
> like it should solve the issues" rather than anything I was planning on 
> committing now.
> 
> 		Linus
> ---
>  drivers/net/Kconfig            |    5 ++-
>  drivers/net/e1000/e1000_main.c |   60 ++++++++++++++++++++++------------------
>  2 files changed, 37 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 5a2d1dd..6c57540 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -1992,7 +1992,7 @@ config E1000_DISABLE_PACKET_SPLIT
>  
>  config E1000E
>  	tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
> -	depends on PCI && EXPERIMENTAL
> +	depends on PCI
>  	---help---
>  	  This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
>  	  ethernet family of adapters. For PCI or PCI-X e1000 adapters,
> @@ -2009,6 +2009,9 @@ config E1000E
>  	  To compile this driver as a module, choose M here. The module
>  	  will be called e1000e.
>  
> +config E1000E_ENABLED
> +	def_bool E1000E != n
> +
>  config IP1000
>  	tristate "IP1000 Gigabit Ethernet support"
>  	depends on PCI && EXPERIMENTAL
> diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
> index 3111af6..8c87940 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -47,6 +47,12 @@ static const char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation
>   * Macro expands to...
>   *   {PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)}
>   */
> +#ifdef CONFIG_E1000E_ENABLED
> +  #define PCIE(x) 
> +#else
> +  #define PCIE(x) x,
> +#endif

Patch gets my ACK, if you like, though an improvement would be to have 
your Kconfig logic activate CONFIG_E1000_PCIEX.  Then future janitors 
could come along and disable unused code in addition to PCI IDs.

	Jeff




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
  2008-01-30 10:05     ` Jeff Garzik
@ 2008-01-30 16:23       ` Kok, Auke
  0 siblings, 0 replies; 8+ messages in thread
From: Kok, Auke @ 2008-01-30 16:23 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linus Torvalds, Randy Dunlap, Linux Kernel Mailing List,
	David S. Miller, akpm, NetDev

Jeff Garzik wrote:
> Linus Torvalds wrote:
>>
>> On Tue, 29 Jan 2008, Randy Dunlap wrote:
>>> Andrew was concerned about this when the driver was in -mm.
>>> He asked for a patch that would set E1000E to same value as E1000
>>> and I supplied that.  Auke acked it IIRC.  Other people vetoed it.  :(
>>
>> Yeah, I've been discussing with Jeff and the gang.
>>
>> I think we have agreed on a solution where the ID's show up in the old
>> driver if the new driver is not enabled at all.
>>
>> (And as a side note: it turns out that the problem I experienced
>> didn't come from the new e1000e driver after all, so I'll be removing
>> the EXPERIMENTAL flag again).
>>
>> So I'd suggest the final patch be something like this, but I'm sendign
>> it out just as an example of how we could solve this, not necessarily
>> as a final patch.
>>
>> Jeff, Auke, would something like this be acceptable? It makes it very
>> obvious in the driver table which entries are for the PCIE versions
>> that would be handled by the E1000E driver if it is enabled..
>>
>> Untested, but as mentioned, this is more of a "this looks maintainable
>> and like it should solve the issues" rather than anything I was
>> planning on committing now.
>>
>>         Linus
>> ---
>>  drivers/net/Kconfig            |    5 ++-
>>  drivers/net/e1000/e1000_main.c |   60
>> ++++++++++++++++++++++------------------
>>  2 files changed, 37 insertions(+), 28 deletions(-)
>>
>> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
>> index 5a2d1dd..6c57540 100644
>> --- a/drivers/net/Kconfig
>> +++ b/drivers/net/Kconfig
>> @@ -1992,7 +1992,7 @@ config E1000_DISABLE_PACKET_SPLIT
>>  
>>  config E1000E
>>      tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
>> -    depends on PCI && EXPERIMENTAL
>> +    depends on PCI
>>      ---help---
>>        This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
>>        ethernet family of adapters. For PCI or PCI-X e1000 adapters,
>> @@ -2009,6 +2009,9 @@ config E1000E
>>        To compile this driver as a module, choose M here. The module
>>        will be called e1000e.
>>  
>> +config E1000E_ENABLED
>> +    def_bool E1000E != n
>> +
>>  config IP1000
>>      tristate "IP1000 Gigabit Ethernet support"
>>      depends on PCI && EXPERIMENTAL
>> diff --git a/drivers/net/e1000/e1000_main.c
>> b/drivers/net/e1000/e1000_main.c
>> index 3111af6..8c87940 100644
>> --- a/drivers/net/e1000/e1000_main.c
>> +++ b/drivers/net/e1000/e1000_main.c
>> @@ -47,6 +47,12 @@ static const char e1000_copyright[] = "Copyright
>> (c) 1999-2006 Intel Corporation
>>   * Macro expands to...
>>   *   {PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)}
>>   */
>> +#ifdef CONFIG_E1000E_ENABLED
>> +  #define PCIE(x) +#else
>> +  #define PCIE(x) x,
>> +#endif
> 
> Patch gets my ACK, if you like, though an improvement would be to have
> your Kconfig logic activate CONFIG_E1000_PCIEX.  Then future janitors
> could come along and disable unused code in addition to PCI IDs.

Ack from my side as well, allthough I hope that this code will not live long as I
would love to start taking out pci-e code out of e1000. If we merge this patch
then I suggest that we don't do that until for at least a whole cycle, since it
does not make much sense otherwise.

Auke

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e"
  2008-01-30  5:51   ` Linus Torvalds
  2008-01-30  5:54     ` Linus Torvalds
  2008-01-30 10:05     ` Jeff Garzik
@ 2008-01-30 23:58     ` Adrian Bunk
  2008-01-31  1:26       ` Frans Pop
  2 siblings, 1 reply; 8+ messages in thread
From: Adrian Bunk @ 2008-01-30 23:58 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Randy Dunlap, Linux Kernel Mailing List, auke-jan.h.kok, jeff,
	David S. Miller, akpm, netdev

On Wed, Jan 30, 2008 at 04:51:04PM +1100, Linus Torvalds wrote:
> 
> 
> On Tue, 29 Jan 2008, Randy Dunlap wrote:
> > 
> > Andrew was concerned about this when the driver was in -mm.
> > He asked for a patch that would set E1000E to same value as E1000
> > and I supplied that.  Auke acked it IIRC.  Other people vetoed it.  :(
> 
> Yeah, I've been discussing with Jeff and the gang.
> 
> I think we have agreed on a solution where the ID's show up in the old 
> driver if the new driver is not enabled at all.
> 
> (And as a side note: it turns out that the problem I experienced didn't 
> come from the new e1000e driver after all, so I'll be removing the 
> EXPERIMENTAL flag again).
> 
> So I'd suggest the final patch be something like this, but I'm sendign it 
> out just as an example of how we could solve this, not necessarily as a 
> final patch.
> 
> Jeff, Auke, would something like this be acceptable? It makes it very 
> obvious in the driver table which entries are for the PCIE versions that 
> would be handled by the E1000E driver if it is enabled..
> 
> Untested, but as mentioned, this is more of a "this looks maintainable and 
> like it should solve the issues" rather than anything I was planning on 
> committing now.

I don't like it:

We should aim at having exactly one driver for one card.

Your patch has effects like e.g. a kernel behaving differently when 
adding and compiling the e1000e module later compared to having it 
originally in the .config.

And fun like "The card works on my machine with the e1000 driver, why 
doesn't it work in your machine with the e1000 driver?".

And in terms of maintainability, people will disable the e1000e driver 
in their kernel for working around bugs in it instead of reporting the 
bugs. Exactly what we want to not happen.

And unless we want to keep this situation forever, we anyway have to 
remove the support for the PCI-Express adapters from the e1000 driver at 
some point in time, so why not make a clear cut now? Whatever problems 
this causes will be the same now or in a few years.

> 		Linus

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over       to e1000e"
  2008-01-30 23:58     ` Adrian Bunk
@ 2008-01-31  1:26       ` Frans Pop
  2008-01-31  4:59         ` Brandeburg, Jesse
  0 siblings, 1 reply; 8+ messages in thread
From: Frans Pop @ 2008-01-31  1:26 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: akpm, auke-jan.h.kok, davem, jeff, linux-kernel, netdev,
	randy.dunlap, torvalds

Adrian Bunk wrote:
>> Jeff, Auke, would something like this be acceptable? It makes it very
>> obvious in the driver table which entries are for the PCIE versions that
>> would be handled by the E1000E driver if it is enabled..
> 
> I don't like it:
> We should aim at having exactly one driver for one card.

There is one thing I don't understand, but that may well be just me...

>From Linus' original patch:
> +++ b/drivers/net/e1000/e1000_main.c
> +     INTEL_E1000_ETHERNET_DEVICE(0x108C),

So, apparently support for 8086:108c was removed from the e1000 driver.

>From my lspci:
$ lspci -nn | grep Ether
01:00.0 Ethernet controller [0200]: Intel Corporation 82573E Gigabit Ethernet Controller (Copper) [8086:108c] (rev 03)

But when I look at where that card is sitting:
$ readlink pci/devices/0000\:01\:00.0/driver
../../../../bus/pci/drivers/e1000

So, it's on the PCI bus, not on the PCI-Express bus (which I also have, but
which has no devices on it).

Or does the e1000e driver also support cards on the PCI bus?

If that's the case then the original changelog entry "Move PCI-Express
device IDs over to e1000e" is misleading as it's not only PCI-Express
devices...

Hmmm. Or does which driver is loaded decide on which bus the device ends up?

Confused,
FJP

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: Mostly revert "e1000/e1000e: Move PCI-Express device IDs over       to e1000e"
  2008-01-31  1:26       ` Frans Pop
@ 2008-01-31  4:59         ` Brandeburg, Jesse
  0 siblings, 0 replies; 8+ messages in thread
From: Brandeburg, Jesse @ 2008-01-31  4:59 UTC (permalink / raw)
  To: Frans Pop, Adrian Bunk
  Cc: akpm, Kok, Auke-jan H, davem, jeff, linux-kernel, netdev,
	randy.dunlap, torvalds

Frans Pop wrote:
> There is one thing I don't understand, but that may well be just me...
> 
> From Linus' original patch:
>> +++ b/drivers/net/e1000/e1000_main.c
>> +     INTEL_E1000_ETHERNET_DEVICE(0x108C),
> 
> So, apparently support for 8086:108c was removed from the e1000
> driver. 

When it was enabled to be supported by e1000e.
 
> From my lspci:
> $ lspci -nn | grep Ether
> 01:00.0 Ethernet controller [0200]: Intel Corporation 82573E Gigabit
> Ethernet Controller (Copper) [8086:108c] (rev 03) 
> 
> But when I look at where that card is sitting:
> $ readlink pci/devices/0000\:01\:00.0/driver
> ../../../../bus/pci/drivers/e1000
> 
> So, it's on the PCI bus, not on the PCI-Express bus (which I also
> have, but 
> which has no devices on it).

82573E/L are PCIe devices only, don't let the use of "PCI configuration
space" confuse you.  All PCIe devices support PCI configuration space.
This allows systems with PCIe to work right (or mostly right) with all
the PCI supporting software like Linux.
 
> Or does the e1000e driver also support cards on the PCI bus?

E1000e is targeted at the PCIe devices only.
 
> If that's the case then the original changelog entry "Move PCI-Express
> device IDs over to e1000e" is misleading as it's not only PCI-Express
> devices...

Unfortunate bit of confusion over terminology.
 
> Hmmm. Or does which driver is loaded decide on which bus the device
> ends up? 

Hope this helped,
  Jesse

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-01-31  5:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <200801292359.m0TNxb75011826@hera.kernel.org>
2008-01-30  5:23 ` Mostly revert "e1000/e1000e: Move PCI-Express device IDs over to e1000e" Randy Dunlap
2008-01-30  5:51   ` Linus Torvalds
2008-01-30  5:54     ` Linus Torvalds
2008-01-30 10:05     ` Jeff Garzik
2008-01-30 16:23       ` Kok, Auke
2008-01-30 23:58     ` Adrian Bunk
2008-01-31  1:26       ` Frans Pop
2008-01-31  4:59         ` Brandeburg, Jesse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).