Subject: Re: [PATCH 2/2] be2net: drop non-tso frames longer than mtu

From: Ivan Vecera <[email-masked]>
Date: Tue, 15 Oct 2013 16:30:35 +0200

On 10/15/2013 03:47 PM, Eric Dumazet wrote:
> On Tue, 2013-10-15 at 17:26 +0530, Sathya Perla wrote:
>> From: Vasundhara Volam <[email-masked]>
>>
>> Pktgen can generate non-TSO frames of arbitrary length disregarding
>> the MTU value of the physical interface. Drop such frames in the driver
>> instead of sending them to HW as it cannot handle such frames.
>>
>> Signed-off-by: Vasundhara Volam <[email-masked]>
>> Signed-off-by: Sathya Perla <[email-masked]>
>> ---
>>   drivers/net/ethernet/emulex/benet/be_main.c |    9 +++++++--
>>   1 files changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
>> index 2c38cc4..76057b8 100644
>> --- a/drivers/net/ethernet/emulex/benet/be_main.c
>> +++ b/drivers/net/ethernet/emulex/benet/be_main.c
>> @@ -855,6 +855,13 @@ static struct sk_buff *be_xmit_workarounds(struct be_adapter *adapter,
>>   	unsigned int eth_hdr_len;
>>   	struct iphdr *ip;
>>
>> +	/* Don't allow non-TSO packets longer than MTU */
>> +	eth_hdr_len = (ntohs(skb->protocol) == ETH_P_8021Q) ?
>> +			VLAN_ETH_HLEN : ETH_HLEN;
>> +	if (!skb_is_gso(skb) &&
>> +	    (skb->len - eth_hdr_len) > adapter->netdev->mtu)
>> +			goto tx_drop;
>> +
>
> When you say 'cannot handle them', is it some kind of nasty thing like
> hang / crash ?
AFAIK, the firmware in the card becomes unresponsive and reboot is 
needed to make the NIC working.

Ivan