diff options
Diffstat (limited to 'drivers/net/e1000/e1000_main.c')
-rw-r--r-- | 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 e55fb9cc41c3..a1f5b0605363 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 *netdev, int new_mtu) | |||
3138 | } | 3138 | } |
3139 | break; | 3139 | break; |
3140 | case e1000_82573: | 3140 | case e1000_82573: |
3141 | /* only enable jumbo frames if ASPM is disabled completely | 3141 | /* Jumbo Frames not supported if: |
3142 | * this means both bits must be zero in 0x1A bits 3:2 */ | 3142 | * - this is not an 82573L device |
3143 | * - ASPM is enabled in any way (0x1A bits 3:2) */ | ||
3143 | e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1, | 3144 | e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1, |
3144 | &eeprom_data); | 3145 | &eeprom_data); |
3145 | if (eeprom_data & EEPROM_WORD1A_ASPM_MASK) { | 3146 | if ((adapter->hw.device_id != E1000_DEV_ID_82573L) || |
3147 | (eeprom_data & EEPROM_WORD1A_ASPM_MASK)) { | ||
3146 | if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) { | 3148 | if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) { |
3147 | DPRINTK(PROBE, ERR, | 3149 | DPRINTK(PROBE, ERR, |
3148 | "Jumbo Frames not supported.\n"); | 3150 | "Jumbo Frames not supported.\n"); |
@@ -3150,6 +3152,8 @@ e1000_change_mtu(struct net_device *netdev, int new_mtu) | |||
3150 | } | 3152 | } |
3151 | break; | 3153 | break; |
3152 | } | 3154 | } |
3155 | /* ERT will be enabled later to enable wire speed receives */ | ||
3156 | |||
3153 | /* fall through to get support */ | 3157 | /* fall through to get support */ |
3154 | case e1000_82571: | 3158 | case e1000_82571: |
3155 | case e1000_82572: | 3159 | case e1000_82572: |