diff options
author | Franky Lin <frankyl@broadcom.com> | 2012-09-13 15:11:57 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-24 14:59:08 -0400 |
commit | 8514fd02baac42c6f6ef248e70c4bdddd5b66433 (patch) | |
tree | e144a63eedb77b042c02aeaa0a344997d96ad0de /drivers | |
parent | e962610f8100e1b52973f5a9c855cbc3d1ba04ec (diff) |
brcmfmac: absorb brcmf_sendpkt into brcmf_netdev_start_xmit
brcmf_sendpkt only called by brcmf_netdev_start_xmit now. Absorb it
to increase readability.
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 41 |
2 files changed, 16 insertions, 29 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd.h b/drivers/net/wireless/brcm80211/brcmfmac/dhd.h index 4766d9f35696..55e489d2147d 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd.h | |||
@@ -682,10 +682,6 @@ extern int brcmf_c_host_event(struct brcmf_pub *drvr, int *idx, | |||
682 | 682 | ||
683 | extern void brcmf_del_if(struct brcmf_pub *drvr, int ifidx); | 683 | extern void brcmf_del_if(struct brcmf_pub *drvr, int ifidx); |
684 | 684 | ||
685 | /* Send packet to dongle via data channel */ | ||
686 | extern int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx,\ | ||
687 | struct sk_buff *pkt); | ||
688 | |||
689 | extern void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg); | 685 | extern void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg); |
690 | extern void brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, | 686 | extern void brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, |
691 | int enable, int master_mode); | 687 | int enable, int master_mode); |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index b08f3474d8e7..d7c76ce9d8cb 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | |||
@@ -272,30 +272,6 @@ static void brcmf_netdev_set_multicast_list(struct net_device *ndev) | |||
272 | schedule_work(&drvr->multicast_work); | 272 | schedule_work(&drvr->multicast_work); |
273 | } | 273 | } |
274 | 274 | ||
275 | int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx, struct sk_buff *pktbuf) | ||
276 | { | ||
277 | /* Reject if down */ | ||
278 | if (!drvr->bus_if->drvr_up || (drvr->bus_if->state == BRCMF_BUS_DOWN)) | ||
279 | return -ENODEV; | ||
280 | |||
281 | /* Update multicast statistic */ | ||
282 | if (pktbuf->len >= ETH_ALEN) { | ||
283 | u8 *pktdata = (u8 *) (pktbuf->data); | ||
284 | struct ethhdr *eh = (struct ethhdr *)pktdata; | ||
285 | |||
286 | if (is_multicast_ether_addr(eh->h_dest)) | ||
287 | drvr->tx_multicast++; | ||
288 | if (ntohs(eh->h_proto) == ETH_P_PAE) | ||
289 | atomic_inc(&drvr->pend_8021x_cnt); | ||
290 | } | ||
291 | |||
292 | /* If the protocol uses a data header, apply it */ | ||
293 | brcmf_proto_hdrpush(drvr, ifidx, pktbuf); | ||
294 | |||
295 | /* Use bus module to send data frame */ | ||
296 | return drvr->bus_if->brcmf_bus_txdata(drvr->dev, pktbuf); | ||
297 | } | ||
298 | |||
299 | static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *ndev) | 275 | static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *ndev) |
300 | { | 276 | { |
301 | int ret; | 277 | int ret; |
@@ -338,7 +314,22 @@ static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *ndev) | |||
338 | } | 314 | } |
339 | } | 315 | } |
340 | 316 | ||
341 | ret = brcmf_sendpkt(drvr, ifp->idx, skb); | 317 | /* Update multicast statistic */ |
318 | if (skb->len >= ETH_ALEN) { | ||
319 | u8 *pktdata = (u8 *)(skb->data); | ||
320 | struct ethhdr *eh = (struct ethhdr *)pktdata; | ||
321 | |||
322 | if (is_multicast_ether_addr(eh->h_dest)) | ||
323 | drvr->tx_multicast++; | ||
324 | if (ntohs(eh->h_proto) == ETH_P_PAE) | ||
325 | atomic_inc(&drvr->pend_8021x_cnt); | ||
326 | } | ||
327 | |||
328 | /* If the protocol uses a data header, apply it */ | ||
329 | brcmf_proto_hdrpush(drvr, ifp->idx, skb); | ||
330 | |||
331 | /* Use bus module to send data frame */ | ||
332 | ret = drvr->bus_if->brcmf_bus_txdata(drvr->dev, skb); | ||
342 | 333 | ||
343 | done: | 334 | done: |
344 | if (ret) | 335 | if (ret) |