aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2009-04-27 18:35:33 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-28 04:53:13 -0400
commit182ff8dfdb63e66ca81e4d3a4c746f8d578e5687 (patch)
tree8aa692b4a9576212020d61a1b2bab814aade1b9f /drivers
parent2844f7975837d47fe7f20aa96c1df3bcecf91935 (diff)
igb/ixgbe: remove unecessary checks for CHECKSUM_UNNECESSARY
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/igb/igb_main.c20
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c17
2 files changed, 11 insertions, 26 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 4ecf4dfce9bd..f7f861215242 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -4430,20 +4430,12 @@ static void igb_receive_skb(struct igb_ring *ring, u8 status,
4430 bool vlan_extracted = (adapter->vlgrp && (status & E1000_RXD_STAT_VP)); 4430 bool vlan_extracted = (adapter->vlgrp && (status & E1000_RXD_STAT_VP));
4431 4431
4432 skb_record_rx_queue(skb, ring->queue_index); 4432 skb_record_rx_queue(skb, ring->queue_index);
4433 if (skb->ip_summed == CHECKSUM_UNNECESSARY) { 4433 if (vlan_extracted)
4434 if (vlan_extracted) 4434 vlan_gro_receive(&ring->napi, adapter->vlgrp,
4435 vlan_gro_receive(&ring->napi, adapter->vlgrp, 4435 le16_to_cpu(rx_desc->wb.upper.vlan),
4436 le16_to_cpu(rx_desc->wb.upper.vlan), 4436 skb);
4437 skb); 4437 else
4438 else 4438 napi_gro_receive(&ring->napi, skb);
4439 napi_gro_receive(&ring->napi, skb);
4440 } else {
4441 if (vlan_extracted)
4442 vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
4443 le16_to_cpu(rx_desc->wb.upper.vlan));
4444 else
4445 netif_receive_skb(skb);
4446 }
4447} 4439}
4448 4440
4449static inline void igb_rx_checksum_adv(struct igb_adapter *adapter, 4441static inline void igb_rx_checksum_adv(struct igb_adapter *adapter,
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index c45e4e7999ea..42b803d5cfd3 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -459,23 +459,16 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
459 u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); 459 u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan);
460 460
461 skb_record_rx_queue(skb, q_vector - &adapter->q_vector[0]); 461 skb_record_rx_queue(skb, q_vector - &adapter->q_vector[0]);
462 if (skb->ip_summed == CHECKSUM_UNNECESSARY) { 462 if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
463 if (adapter->vlgrp && is_vlan && (tag != 0)) 463 if (adapter->vlgrp && is_vlan && (tag != 0))
464 vlan_gro_receive(napi, adapter->vlgrp, tag, skb); 464 vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
465 else 465 else
466 napi_gro_receive(napi, skb); 466 napi_gro_receive(napi, skb);
467 } else { 467 } else {
468 if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) { 468 if (adapter->vlgrp && is_vlan && (tag != 0))
469 if (adapter->vlgrp && is_vlan && (tag != 0)) 469 vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
470 vlan_hwaccel_receive_skb(skb, adapter->vlgrp, tag); 470 else
471 else 471 netif_rx(skb);
472 netif_receive_skb(skb);
473 } else {
474 if (adapter->vlgrp && is_vlan && (tag != 0))
475 vlan_hwaccel_rx(skb, adapter->vlgrp, tag);
476 else
477 netif_rx(skb);
478 }
479 } 472 }
480} 473}
481 474