i40e/i40evf: adjust packet size to account for double VLANs
authorMitch Williams <mitch.a.williams@intel.com>
Fri, 23 Jun 2017 08:24:43 +0000 (04:24 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 25 Aug 2017 21:45:28 +0000 (14:45 -0700)
Now that the kernel supports double VLAN tags, we should at least play
nice. Adjust the max packet size to account for two VLAN tags, not just
one.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/i40e/i40e_txrx.h
drivers/net/ethernet/intel/i40evf/i40e_txrx.h
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index a7e5a76703e7a0b45379060a156a159ee6dc2c22..0cb571e337f6c22449bbfaf63462d520e81977d2 100644 (file)
@@ -9770,8 +9770,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 
        /* MTU range: 68 - 9706 */
        netdev->min_mtu = ETH_MIN_MTU;
-       netdev->max_mtu = I40E_MAX_RXBUFFER -
-                         (ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN);
+       netdev->max_mtu = I40E_MAX_RXBUFFER - I40E_PACKET_HDR_PAD;
 
        return 0;
 }
index b288d58313a6c15b5570ba2920fcb93ea81e76ec..a39892d2453db33f98cb6201472b00d12caa0db7 100644 (file)
@@ -130,6 +130,7 @@ enum i40e_dyn_idx_t {
  * i.e. RXBUFFER_512 --> 1216 byte skb (size-2048 slab)
  */
 #define I40E_RX_HDR_SIZE I40E_RXBUFFER_256
+#define I40E_PACKET_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2))
 #define i40e_rx_desc i40e_32byte_rx_desc
 
 #define I40E_RX_DMA_ATTR \
index 901282c87cf6ca67f44edcc51b4f990eedbba1d9..472f606629d4ba3b422916a5b76d0c42d4ad29b7 100644 (file)
@@ -117,6 +117,7 @@ enum i40e_dyn_idx_t {
  * i.e. RXBUFFER_512 --> 1216 byte skb (size-2048 slab)
  */
 #define I40E_RX_HDR_SIZE I40E_RXBUFFER_256
+#define I40E_PACKET_HDR_PAD (ETH_HLEN + ETH_FCS_LEN + (VLAN_HLEN * 2))
 #define i40e_rx_desc i40e_32byte_rx_desc
 
 #define I40E_RX_DMA_ATTR \
index 93536b9fc6292452a6420ec67d39d27eeed7258d..22919b444ddfcbe159d3409177305679f9fb176e 100644 (file)
@@ -2625,7 +2625,7 @@ static void i40evf_init_task(struct work_struct *work)
 
        /* MTU range: 68 - 9710 */
        netdev->min_mtu = ETH_MIN_MTU;
-       netdev->max_mtu = I40E_MAX_RXBUFFER - (ETH_HLEN + ETH_FCS_LEN);
+       netdev->max_mtu = I40E_MAX_RXBUFFER - I40E_PACKET_HDR_PAD;
 
        if (!is_valid_ether_addr(adapter->hw.mac.addr)) {
                dev_info(&pdev->dev, "Invalid MAC address %pM, using random\n",