diff options
author | David S. Miller <davem@davemloft.net> | 2011-02-24 19:29:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-24 19:29:00 -0500 |
commit | 290f5e3b594af70ac8f7fab44dba79ccae1531cd (patch) | |
tree | fc44d66535b96d16639391be65326f13562c939f /drivers/net/ixgbe/ixgbe_main.c | |
parent | dca8b089c95d94afa1d715df257de0286350e99d (diff) | |
parent | c2b6a059cf4d527e1e71f384e9e45326bcc8b41f (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net-next-2.6
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index eca762d954c6..f0d0c5aad2b4 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -3077,6 +3077,14 @@ void ixgbe_configure_rx_ring(struct ixgbe_adapter *adapter, | |||
3077 | ixgbe_configure_srrctl(adapter, ring); | 3077 | ixgbe_configure_srrctl(adapter, ring); |
3078 | ixgbe_configure_rscctl(adapter, ring); | 3078 | ixgbe_configure_rscctl(adapter, ring); |
3079 | 3079 | ||
3080 | /* If operating in IOV mode set RLPML for X540 */ | ||
3081 | if ((adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) && | ||
3082 | hw->mac.type == ixgbe_mac_X540) { | ||
3083 | rxdctl &= ~IXGBE_RXDCTL_RLPMLMASK; | ||
3084 | rxdctl |= ((ring->netdev->mtu + ETH_HLEN + | ||
3085 | ETH_FCS_LEN + VLAN_HLEN) | IXGBE_RXDCTL_RLPML_EN); | ||
3086 | } | ||
3087 | |||
3080 | if (hw->mac.type == ixgbe_mac_82598EB) { | 3088 | if (hw->mac.type == ixgbe_mac_82598EB) { |
3081 | /* | 3089 | /* |
3082 | * enable cache line friendly hardware writes: | 3090 | * enable cache line friendly hardware writes: |
@@ -5441,8 +5449,14 @@ static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu) | |||
5441 | int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; | 5449 | int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; |
5442 | 5450 | ||
5443 | /* MTU < 68 is an error and causes problems on some kernels */ | 5451 | /* MTU < 68 is an error and causes problems on some kernels */ |
5444 | if ((new_mtu < 68) || (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE)) | 5452 | if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED && |
5445 | return -EINVAL; | 5453 | hw->mac.type != ixgbe_mac_X540) { |
5454 | if ((new_mtu < 68) || (max_frame > MAXIMUM_ETHERNET_VLAN_SIZE)) | ||
5455 | return -EINVAL; | ||
5456 | } else { | ||
5457 | if ((new_mtu < 68) || (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE)) | ||
5458 | return -EINVAL; | ||
5459 | } | ||
5446 | 5460 | ||
5447 | e_info(probe, "changing MTU from %d to %d\n", netdev->mtu, new_mtu); | 5461 | e_info(probe, "changing MTU from %d to %d\n", netdev->mtu, new_mtu); |
5448 | /* must set new MTU before calling down or up */ | 5462 | /* must set new MTU before calling down or up */ |