Subject: Re: [PATCH 11/23] e1000: Jumbo frames fixes for 82573

From: Jeff Garzik <[email-masked]>
Date: Tue, 19 Sep 2006 15:32:28 -0400

Kok, Auke wrote:
> Disable jumbo frames for 82573L alltogether and when ASPM is enabled
> since the hardware has problems with it. For the NICs that do support
> this in the 82573 series we set ERT_2048 to attempt to receive as much
> traffic as early as we can.
> 
> Signed-off-by: Bruce Allan <[email-masked]>
> Signed-off-by: Auke Kok <[email-masked]>
> ---
> 
>  drivers/net/e1000/e1000_main.c |   10 +++++++---
>  1 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
> index e81aa03..2ecec51 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -3138,11 +3138,13 @@ e1000_change_mtu(struct net_device *netd
>  		}
>  		break;
>  	case e1000_82573:
> -		/* only enable jumbo frames if ASPM is disabled completely
> -		 * this means both bits must be zero in 0x1A bits 3:2 */
> +		/* Jumbo Frames not supported if:
> +		 * - this is not an 82573L device
> +		 * - ASPM is enabled in any way (0x1A bits 3:2) */
>  		e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1,
>  		                  &eeprom_data);
> -		if (eeprom_data & EEPROM_WORD1A_ASPM_MASK) {
> +		if ((adapter->hw.device_id != E1000_DEV_ID_82573L) ||
> +		    (eeprom_data & EEPROM_WORD1A_ASPM_MASK)) {
>  			if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) {
>  				DPRINTK(PROBE, ERR,
>  			            	"Jumbo Frames not supported.\n");

NAK.  at probe time, set a jumbo-frames-enabled bit, then test it in 
e1000_change_mtu().

Don't include all this chip-checking code into the change_mtu function.