|
@@ -281,8 +281,6 @@ void brcmf_txflowblock(struct device *dev, bool state)
|
|
|
|
|
|
void brcmf_rx_frames(struct device *dev, struct sk_buff_head *skb_list)
|
|
|
{
|
|
|
- unsigned char *eth;
|
|
|
- uint len;
|
|
|
struct sk_buff *skb, *pnext;
|
|
|
struct brcmf_if *ifp;
|
|
|
struct brcmf_bus *bus_if = dev_get_drvdata(dev);
|
|
@@ -306,33 +304,12 @@ void brcmf_rx_frames(struct device *dev, struct sk_buff_head *skb_list)
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- /* Get the protocol, maintain skb around eth_type_trans()
|
|
|
- * The main reason for this hack is for the limitation of
|
|
|
- * Linux 2.4 where 'eth_type_trans' uses the
|
|
|
- * 'net->hard_header_len'
|
|
|
- * to perform skb_pull inside vs ETH_HLEN. Since to avoid
|
|
|
- * coping of the packet coming from the network stack to add
|
|
|
- * BDC, Hardware header etc, during network interface
|
|
|
- * registration
|
|
|
- * we set the 'net->hard_header_len' to ETH_HLEN + extra space
|
|
|
- * required
|
|
|
- * for BDC, Hardware header etc. and not just the ETH_HLEN
|
|
|
- */
|
|
|
- eth = skb->data;
|
|
|
- len = skb->len;
|
|
|
-
|
|
|
skb->dev = ifp->ndev;
|
|
|
skb->protocol = eth_type_trans(skb, skb->dev);
|
|
|
|
|
|
if (skb->pkt_type == PACKET_MULTICAST)
|
|
|
ifp->stats.multicast++;
|
|
|
|
|
|
- skb->data = eth;
|
|
|
- skb->len = len;
|
|
|
-
|
|
|
- /* Strip header, count, deliver upward */
|
|
|
- skb_pull(skb, ETH_HLEN);
|
|
|
-
|
|
|
/* Process special event packets */
|
|
|
brcmf_fweh_process_skb(drvr, skb);
|
|
|
|
|
@@ -348,10 +325,8 @@ void brcmf_rx_frames(struct device *dev, struct sk_buff_head *skb_list)
|
|
|
netif_rx(skb);
|
|
|
else
|
|
|
/* If the receive is not processed inside an ISR,
|
|
|
- * the softirqd must be woken explicitly to service
|
|
|
- * the NET_RX_SOFTIRQ. In 2.6 kernels, this is handled
|
|
|
- * by netif_rx_ni(), but in earlier kernels, we need
|
|
|
- * to do it manually.
|
|
|
+ * the softirqd must be woken explicitly to service the
|
|
|
+ * NET_RX_SOFTIRQ. This is handled by netif_rx_ni().
|
|
|
*/
|
|
|
netif_rx_ni(skb);
|
|
|
}
|