Skip to content

Commit 8dff66c

Browse files
tlfalcondavem330
authored andcommitted
ibmvnic: Account for VLAN header length in TX buffers
The extra four bytes of a VLAN packet was throwing off TX buffer entry values used by the driver. Account for those bytes when in buffer size and buffer entry calculations Signed-off-by: Thomas Falcon <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent da75e3b commit 8dff66c

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/net/ethernet/ibm/ibmvnic.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ static int init_tx_pools(struct net_device *netdev)
659659

660660
if (alloc_long_term_buff(adapter, &tx_pool->long_term_buff,
661661
adapter->req_tx_entries_per_subcrq *
662-
adapter->req_mtu)) {
662+
(adapter->req_mtu + VLAN_HLEN))) {
663663
release_tx_pools(adapter);
664664
return -1;
665665
}
@@ -1394,9 +1394,9 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
13941394
if (tx_pool->tso_index == IBMVNIC_TSO_BUFS)
13951395
tx_pool->tso_index = 0;
13961396
} else {
1397-
offset = index * adapter->req_mtu;
1397+
offset = index * (adapter->req_mtu + VLAN_HLEN);
13981398
dst = tx_pool->long_term_buff.buff + offset;
1399-
memset(dst, 0, adapter->req_mtu);
1399+
memset(dst, 0, adapter->req_mtu + VLAN_HLEN);
14001400
data_dma_addr = tx_pool->long_term_buff.addr + offset;
14011401
}
14021402

0 commit comments

Comments
 (0)