enic: Don't indicate IPv6 pkts using soft-LRO
authorScott Feldman <scofeldm@cisco.com>
Wed, 24 Sep 2008 18:23:22 +0000 (11:23 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 25 Sep 2008 00:48:25 +0000 (20:48 -0400)
LRO is only applied to IPv4 pkts, so don't use the LRO indication functions
for anything other IPv4 pkts.  Every non-IPv4 pkt is indicated using non-
LRO functions.

Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/enic/enic_main.c

index 4cf5ec76c9935515b7d96ba814fcd966fd288117..e6d5f116ad772dc356938c53d5b518440373d333 100644 (file)
@@ -941,7 +941,7 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
 
                if (enic->vlan_group && vlan_stripped) {
 
-                       if (ENIC_SETTING(enic, LRO))
+                       if (ENIC_SETTING(enic, LRO) && ipv4)
                                lro_vlan_hwaccel_receive_skb(&enic->lro_mgr,
                                        skb, enic->vlan_group,
                                        vlan, cq_desc);
@@ -951,7 +951,7 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq,
 
                } else {
 
-                       if (ENIC_SETTING(enic, LRO))
+                       if (ENIC_SETTING(enic, LRO) && ipv4)
                                lro_receive_skb(&enic->lro_mgr, skb, cq_desc);
                        else
                                netif_receive_skb(skb);