From patchwork Tue Feb 23 11:56:26 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Szilveszter Ordog X-Patchwork-Id: 46059 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 07C52B7D03 for ; Tue, 23 Feb 2010 22:56:40 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752407Ab0BWL4f (ORCPT ); Tue, 23 Feb 2010 06:56:35 -0500 Received: from fg-out-1718.google.com ([72.14.220.154]:56984 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751879Ab0BWL4d convert rfc822-to-8bit (ORCPT ); Tue, 23 Feb 2010 06:56:33 -0500 Received: by fg-out-1718.google.com with SMTP id e21so856436fga.1 for ; Tue, 23 Feb 2010 03:56:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=RHB9YR8lulT7eLzf5hY/jurMtRTWUSFr5ydXr5AUhDg=; b=YRsu6W8apCEic/pKUVQ8rNV77cdFEwNAxAm2Dp0IX0bx8XSGCjncT84qn6j8F7ne/5 ispOLGTCj03IkJpS8/92/plz9zKdedlRr4jIy1DmkwRgMnV2UGO+VvfOVK+rdmASJYMT FEDIA3AJFoyzA5wLKP15G/RgutQh/p6FR4EZg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=oisxFwm3xUdCYbTT9puPj2LKSHrEr1T7ugaFnX1dZ9wwBVuAsxfOYV97lYQEbPpWVB 0cQS+d1WO85uYinxc9YyfJpEuvPTY9u4aotIp8XOKkaTvM8g9xHodEJmgghW2ysHzkrG FDwS/rd4ULB9O4htrX0KYo5a/U+maN2qdgU14= MIME-Version: 1.0 Received: by 10.87.44.30 with SMTP id w30mr8122448fgj.5.1266926186444; Tue, 23 Feb 2010 03:56:26 -0800 (PST) Date: Tue, 23 Feb 2010 12:56:26 +0100 Message-ID: Subject: [PATCH] tg3: receive packets larger than MTU but smaller than 1500 bytes From: Szilveszter Ordog To: Matt Carlson , Michael Chan Cc: netdev@vger.kernel.org Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This allows for proper ICMP needs fragmentation responses on standard Ethernet networks. Signed-off-by: Szilveszter Ördög --- drivers/net/tg3.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 46a3f86..0c5027b 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -93,6 +93,8 @@ #define TG3_MIN_MTU 60 #define TG3_MAX_MTU(tp) \ ((tp->tg3_flags2 & TG3_FLG2_JUMBO_CAPABLE) ? 9000 : 1500) +#define TG3_MAX_RX_MTU(tp) \ + max(tp->dev->mtu, (unsigned int)ETH_DATA_LEN) /* These numbers seem to be hard coded in the NIC firmware somehow. * You can't change the ring sizes, but you can change where you place @@ -4532,7 +4534,7 @@ static int tg3_rx(struct tg3 *tp, int budget) skb->protocol = eth_type_trans(skb, tp->dev); - if (len > (tp->dev->mtu + ETH_HLEN) && + if (len > (TG3_MAX_RX_MTU(tp) + ETH_HLEN) && skb->protocol != htons(ETH_P_8021Q)) { dev_kfree_skb(skb); goto next_pkt; @@ -6979,7 +6981,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) /* MTU + ethernet header + FCS + optional VLAN tag */ tw32(MAC_RX_MTU_SIZE, - tp->dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN); + TG3_MAX_RX_MTU(tp) + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN); /* The slot time is changed by tg3_setup_phy if we * run at gigabit with half duplex.