diff options
Diffstat (limited to 'drivers/staging/bcm/Transmit.c')
-rw-r--r-- | drivers/staging/bcm/Transmit.c | 15 |
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 @@ | |||
6 | digraph transmit1 { | 6 | digraph transmit1 { |
7 | node[shape=box] | 7 | node[shape=box] |
8 | edge[weight=5;color=red] | 8 | edge[weight=5;color=red] |
9 | bcm_transmit->reply_to_arp_request[label="ARP"] | 9 | |
10 | bcm_transmit->GetPacketQueueIndex[label="IP Packet"] | 10 | bcm_transmit->GetPacketQueueIndex[label="IP Packet"] |
11 | GetPacketQueueIndex->IpVersion4[label="IPV4"] | 11 | GetPacketQueueIndex->IpVersion4[label="IPV4"] |
12 | GetPacketQueueIndex->IpVersion6[label="IPV6"] | 12 | GetPacketQueueIndex->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; |