From: Allan, Bruce W on
On Thursday, February 11, 2010 10:15 AM, Matthew Garrett wrote:
> According to the 82573L errata, jumbo frames will work correctly if
> ASPM
> is disabled. Since we disable ASPM on these devices, leave jumbo
> frames
> enabled.
>
> Signed-off-by: Matthew Garrett <mjg(a)redhat.com>
> ---
> Updated to provide the right chip name
>
> drivers/net/e1000e/82571.c | 11 ++---------
> 1 files changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
> index 02d67d0..f26edf7 100644
> --- a/drivers/net/e1000e/82571.c
> +++ b/drivers/net/e1000e/82571.c
> @@ -330,7 +330,6 @@ static s32 e1000_get_variants_82571(struct
> e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw;
> static int global_quad_port_a; /* global port a indication */
> struct pci_dev *pdev = adapter->pdev;
> - u16 eeprom_data = 0;
> int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1;
> s32 rc;
>
> @@ -381,16 +380,10 @@ static s32 e1000_get_variants_82571(struct
> e1000_adapter *adapter) if (pdev->device ==
> E1000_DEV_ID_82571EB_SERDES_QUAD) adapter->flags &= ~FLAG_HAS_WOL;
> break;
> -
> case e1000_82573:
> if (pdev->device == E1000_DEV_ID_82573L) {
> - if (e1000_read_nvm(&adapter->hw, NVM_INIT_3GIO_3, 1,
> - &eeprom_data) < 0)
> - break;
> - if (!(eeprom_data & NVM_WORD1A_ASPM_MASK)) {
> - adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
> - adapter->max_hw_frame_size = DEFAULT_JUMBO;
> - }
> + adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
> + adapter->max_hw_frame_size = DEFAULT_JUMBO;
> }
> break;
> default:

Actually, the driver only disables L1 ASPM, it does not disable L0s ASPM. The erratum is unclear whether jumbo frames are not supported in L0s, L1 or both modes (the code suggests both modes must be disabled). I will look into this further.

Thanks,
Bruce.--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/