igb/ixgbe: remove unecessary checks for CHECKSUM_UNNECESSARY
authorAlexander Duyck <alexander.h.duyck@intel.com>
Mon, 27 Apr 2009 22:35:33 +0000 (22:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Apr 2009 08:53:13 +0000 (01:53 -0700)
Both of these drivers do a check to verify ip_summed is set to
CHECKSUM_UNNECESSARY prior to passing the packet to GRO.  GRO itself
already does such a check so it is redundant and can be removed as this
will likely cause out of order issues when receiving a packet that didn't
pass checksum validation.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/igb/igb_main.c
drivers/net/ixgbe/ixgbe_main.c

index 4ecf4dfce9bd3af5cbc7bc4cfc53acaac9e6e566..f7f86121524292a6dcf9f794ec99e31622bbf152 100644 (file)
@@ -4430,20 +4430,12 @@ static void igb_receive_skb(struct igb_ring *ring, u8 status,
        bool vlan_extracted = (adapter->vlgrp && (status & E1000_RXD_STAT_VP));
 
        skb_record_rx_queue(skb, ring->queue_index);
-       if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
-               if (vlan_extracted)
-                       vlan_gro_receive(&ring->napi, adapter->vlgrp,
-                                        le16_to_cpu(rx_desc->wb.upper.vlan),
-                                        skb);
-               else
-                       napi_gro_receive(&ring->napi, skb);
-       } else {
-               if (vlan_extracted)
-                       vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
-                                         le16_to_cpu(rx_desc->wb.upper.vlan));
-               else
-                       netif_receive_skb(skb);
-       }
+       if (vlan_extracted)
+               vlan_gro_receive(&ring->napi, adapter->vlgrp,
+                                le16_to_cpu(rx_desc->wb.upper.vlan),
+                                skb);
+       else
+               napi_gro_receive(&ring->napi, skb);
 }
 
 static inline void igb_rx_checksum_adv(struct igb_adapter *adapter,
index c45e4e7999ea6dab18c5850b0acf54355d35b7ad..42b803d5cfd384e8346489e9f8f882986ceb7721 100644 (file)
@@ -459,23 +459,16 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
        u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan);
 
        skb_record_rx_queue(skb, q_vector - &adapter->q_vector[0]);
-       if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
+       if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
                if (adapter->vlgrp && is_vlan && (tag != 0))
                        vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
                else
                        napi_gro_receive(napi, skb);
        } else {
-               if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
-                       if (adapter->vlgrp && is_vlan && (tag != 0))
-                               vlan_hwaccel_receive_skb(skb, adapter->vlgrp, tag);
-                       else
-                               netif_receive_skb(skb);
-               } else {
-                       if (adapter->vlgrp && is_vlan && (tag != 0))
-                               vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
-                       else
-                               netif_rx(skb);
-               }
+               if (adapter->vlgrp && is_vlan && (tag != 0))
+                       vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
+               else
+                       netif_rx(skb);
        }
 }