bb05235cf429b065b351ef75e005ce341790b17a
[openwrt/svn-archive/archive.git] / package / kernel / mac80211 / patches / 329-brcmfmac-change-prototype-for-brcmf_fws_hdrpull.patch
1 From: Arend van Spriel <arend@broadcom.com>
2 Date: Wed, 26 Aug 2015 22:15:03 +0200
3 Subject: [PATCH] brcmfmac: change prototype for brcmf_fws_hdrpull()
4
5 Instead of passing ifidx and drvr just pass struct brcmf_if pointer
6 which holds both parameters.
7
8 Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
9 Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
10 Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
11 Signed-off-by: Arend van Spriel <arend@broadcom.com>
12 ---
13
14 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcdc.c
15 +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcdc.c
16 @@ -312,8 +312,7 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu
17
18 skb_pull(pktbuf, BCDC_HEADER_LEN);
19 if (do_fws)
20 - brcmf_fws_hdrpull(drvr, tmp_if->ifidx, h->data_offset << 2,
21 - pktbuf);
22 + brcmf_fws_hdrpull(tmp_if, h->data_offset << 2, pktbuf);
23 else
24 skb_pull(pktbuf, h->data_offset << 2);
25
26 --- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
27 +++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
28 @@ -1616,11 +1616,10 @@ static int brcmf_fws_notify_bcmc_credit_
29 return 0;
30 }
31
32 -int brcmf_fws_hdrpull(struct brcmf_pub *drvr, int ifidx, s16 signal_len,
33 - struct sk_buff *skb)
34 +void brcmf_fws_hdrpull(struct brcmf_if *ifp, s16 siglen, struct sk_buff *skb)
35 {
36 struct brcmf_skb_reorder_data *rd;
37 - struct brcmf_fws_info *fws = drvr->fws;
38 + struct brcmf_fws_info *fws = ifp->drvr->fws;
39 u8 *signal_data;
40 s16 data_len;
41 u8 type;
42 @@ -1630,20 +1629,20 @@ int brcmf_fws_hdrpull(struct brcmf_pub *
43 s32 err;
44
45 brcmf_dbg(HDRS, "enter: ifidx %d, skblen %u, sig %d\n",
46 - ifidx, skb->len, signal_len);
47 + ifp->ifidx, skb->len, siglen);
48
49 - WARN_ON(signal_len > skb->len);
50 + WARN_ON(siglen > skb->len);
51
52 - if (!signal_len)
53 - return 0;
54 + if (!siglen)
55 + return;
56 /* if flow control disabled, skip to packet data and leave */
57 if ((!fws) || (!fws->fw_signals)) {
58 - skb_pull(skb, signal_len);
59 - return 0;
60 + skb_pull(skb, siglen);
61 + return;
62 }
63
64 fws->stats.header_pulls++;
65 - data_len = signal_len;
66 + data_len = siglen;
67 signal_data = skb->data;
68
69 status = BRCMF_FWS_RET_OK_NOSCHEDULE;
70 @@ -1731,14 +1730,12 @@ int brcmf_fws_hdrpull(struct brcmf_pub *
71 /* signalling processing result does
72 * not affect the actual ethernet packet.
73 */
74 - skb_pull(skb, signal_len);
75 + skb_pull(skb, siglen);
76
77 /* this may be a signal-only packet
78 */
79 if (skb->len == 0)
80 fws->stats.header_only_pkt++;
81 -
82 - return 0;
83 }
84
85 static u8 brcmf_fws_precommit_skb(struct brcmf_fws_info *fws, int fifo,
86 --- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.h
87 +++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.h
88 @@ -21,8 +21,7 @@
89 int brcmf_fws_init(struct brcmf_pub *drvr);
90 void brcmf_fws_deinit(struct brcmf_pub *drvr);
91 bool brcmf_fws_fc_active(struct brcmf_fws_info *fws);
92 -int brcmf_fws_hdrpull(struct brcmf_pub *drvr, int ifidx, s16 signal_len,
93 - struct sk_buff *skb);
94 +void brcmf_fws_hdrpull(struct brcmf_if *ifp, s16 siglen, struct sk_buff *skb);
95 int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb);
96
97 void brcmf_fws_reset_interface(struct brcmf_if *ifp);