aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/bcm/Transmit.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/bcm/Transmit.c')
-rw-r--r--drivers/staging/bcm/Transmit.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/staging/bcm/Transmit.c b/drivers/staging/bcm/Transmit.c
index 1f69625f241..4b94d822578 100644
--- a/drivers/staging/bcm/Transmit.c
+++ b/drivers/staging/bcm/Transmit.c
@@ -6,7 +6,7 @@
6digraph transmit1 { 6digraph transmit1 {
7node[shape=box] 7node[shape=box]
8edge[weight=5;color=red] 8edge[weight=5;color=red]
9bcm_transmit->reply_to_arp_request[label="ARP"] 9
10bcm_transmit->GetPacketQueueIndex[label="IP Packet"] 10bcm_transmit->GetPacketQueueIndex[label="IP Packet"]
11GetPacketQueueIndex->IpVersion4[label="IPV4"] 11GetPacketQueueIndex->IpVersion4[label="IPV4"]
12GetPacketQueueIndex->IpVersion6[label="IPV6"] 12GetPacketQueueIndex->IpVersion6[label="IPV6"]
@@ -63,17 +63,8 @@ netdev_tx_t bcm_transmit(struct sk_buff *skb, struct net_device *dev)
63 63
64 qindex = GetPacketQueueIndex(Adapter, skb); 64 qindex = GetPacketQueueIndex(Adapter, skb);
65 65
66 if (INVALID_QUEUE_INDEX==qindex) { 66 if (INVALID_QUEUE_INDEX==qindex)
67 if (ntohs(eth_hdr(skb)->h_proto) != ETH_ARP_FRAME) 67 goto drop;
68 goto drop;
69
70 /*
71 Reply directly to ARP request packet
72 ARP Spoofing only if NO ETH CS rule matches for it
73 */
74 reply_to_arp_request(skb);
75 return NETDEV_TX_OK;
76 }
77 68
78 if (Adapter->PackInfo[qindex].uiCurrentPacketsOnHost >= SF_MAX_ALLOWED_PACKETS_TO_BACKUP) 69 if (Adapter->PackInfo[qindex].uiCurrentPacketsOnHost >= SF_MAX_ALLOWED_PACKETS_TO_BACKUP)
79 return NETDEV_TX_BUSY; 70 return NETDEV_TX_BUSY;