1 From: Hante Meuleman <meuleman@broadcom.com>
2 Date: Thu, 29 Oct 2015 20:33:12 +0100
3 Subject: [PATCH] brcmfmac: Simplify and fix usage of brcmf_ifname.
5 brcmf_ifname is a debug function to return a name related to an ifp,
6 but is using a rather complex implementation. It was also used
7 wrongly from bcdc as it did not use the bsscfgidx as it was supposed
8 to, but bssidx. This patch fixes that bug and simplifies
11 Reviewed-by: Arend Van Spriel <arend@broadcom.com>
12 Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
13 Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
14 Signed-off-by: Arend van Spriel <arend@broadcom.com>
15 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
18 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcdc.c
19 +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcdc.c
20 @@ -187,7 +187,8 @@ retry:
22 if (id != bcdc->reqid) {
23 brcmf_err("%s: unexpected request id %d (expected %d)\n",
24 - brcmf_ifname(drvr, ifidx), id, bcdc->reqid);
25 + brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
30 @@ -234,7 +235,8 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p
32 if (id != bcdc->reqid) {
33 brcmf_err("%s: unexpected request id %d (expected %d)\n",
34 - brcmf_ifname(drvr, ifidx), id, bcdc->reqid);
35 + brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
40 @@ -298,13 +300,13 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu
41 if (((h->flags & BCDC_FLAG_VER_MASK) >> BCDC_FLAG_VER_SHIFT) !=
43 brcmf_err("%s: non-BCDC packet received, flags 0x%x\n",
44 - brcmf_ifname(drvr, tmp_if->ifidx), h->flags);
45 + brcmf_ifname(tmp_if), h->flags);
49 if (h->flags & BCDC_FLAG_SUM_GOOD) {
50 brcmf_dbg(BCDC, "%s: BDC rcv, good checksum, flags 0x%x\n",
51 - brcmf_ifname(drvr, tmp_if->ifidx), h->flags);
52 + brcmf_ifname(tmp_if), h->flags);
53 pktbuf->ip_summed = CHECKSUM_UNNECESSARY;
56 --- a/drivers/net/wireless/brcm80211/brcmfmac/core.c
57 +++ b/drivers/net/wireless/brcm80211/brcmfmac/core.c
58 @@ -66,20 +66,13 @@ static int brcmf_p2p_enable;
59 module_param_named(p2pon, brcmf_p2p_enable, int, 0);
60 MODULE_PARM_DESC(p2pon, "enable legacy p2p management functionality");
62 -char *brcmf_ifname(struct brcmf_pub *drvr, int ifidx)
63 +char *brcmf_ifname(struct brcmf_if *ifp)
65 - if (ifidx < 0 || ifidx >= BRCMF_MAX_IFS) {
66 - brcmf_err("ifidx %d out of range\n", ifidx);
70 - if (drvr->iflist[ifidx] == NULL) {
71 - brcmf_err("null i/f %d\n", ifidx);
76 - if (drvr->iflist[ifidx]->ndev)
77 - return drvr->iflist[ifidx]->ndev->name;
79 + return ifp->ndev->name;
83 @@ -237,14 +230,14 @@ static netdev_tx_t brcmf_netdev_start_xm
86 brcmf_dbg(INFO, "%s: insufficient headroom\n",
87 - brcmf_ifname(drvr, ifp->bssidx));
89 drvr->bus_if->tx_realloc++;
90 skb2 = skb_realloc_headroom(skb, drvr->hdrlen);
94 brcmf_err("%s: skb_realloc_headroom failed\n",
95 - brcmf_ifname(drvr, ifp->bssidx));
100 --- a/drivers/net/wireless/brcm80211/brcmfmac/core.h
101 +++ b/drivers/net/wireless/brcm80211/brcmfmac/core.h
102 @@ -205,7 +205,7 @@ struct brcmf_skb_reorder_data {
103 int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp);
105 /* Return pointer to interface name */
106 -char *brcmf_ifname(struct brcmf_pub *drvr, int idx);
107 +char *brcmf_ifname(struct brcmf_if *ifp);
108 struct brcmf_if *brcmf_get_ifp(struct brcmf_pub *drvr, int ifidx);
109 int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked);
110 struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bssidx, s32 ifidx,