From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@01.org, "Rafał Miłecki" <zajec5@gmail.com>
Cc: kbuild-all@01.org, "Kalle Valo" <kvalo@codeaurora.org>,
"Arend van Spriel" <arend.vanspriel@broadcom.com>,
linux-wireless@vger.kernel.org,
brcm80211-dev-list.pdl@broadcom.com,
brcm80211-dev-list@cypress.com,
"Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH] brcmfmac: use bphy_err() in all wiphy-related code
Date: Fri, 15 Feb 2019 09:16:01 +0300 [thread overview]
Message-ID: <20190215061601.GE2304@kadam> (raw)
In-Reply-To: <20190213112619.23899-1-zajec5@gmail.com>
Hi Rafał,
url: https://github.com/0day-ci/linux/commits/Rafa-Mi-ecki/brcmfmac-use-bphy_err-in-all-wiphy-related-code/20190214-140004
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
smatch warnings:
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c:114 brcmf_fweh_call_event_handler() warn: variable dereferenced before check 'ifp' (see line 110)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c:187 brcmf_fweh_handle_if_event() error: we previously assumed 'ifp' could be null (see line 184)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c:189 brcmf_fweh_handle_if_event() warn: variable dereferenced before check 'ifp' (see line 187)
# https://github.com/0day-ci/linux/commit/e12dba9f5ed77216c5984a4b57ddc31ba23376c9
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout e12dba9f5ed77216c5984a4b57ddc31ba23376c9
vim +/ifp +114 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 104
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 105 static int brcmf_fweh_call_event_handler(struct brcmf_if *ifp,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 106 enum brcmf_fweh_event_code code,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 107 struct brcmf_event_msg *emsg,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 108 void *data)
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 109 {
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 @110 struct wiphy *wiphy = ifp->drvr->wiphy;
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 111 struct brcmf_fweh_info *fweh;
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 112 int err = -EINVAL;
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 113
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 @114 if (ifp) {
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 115 fweh = &ifp->drvr->fweh;
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 116
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 117 /* handle the event if valid interface and handler */
5857f9c6 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-04-05 118 if (fweh->evt_handler[code])
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 119 err = fweh->evt_handler[code](ifp, emsg, data);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 120 else
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 121 bphy_err(wiphy, "unhandled event %d ignored\n", code);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 122 } else {
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 123 bphy_err(wiphy, "no interface object\n");
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 124 }
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 125 return err;
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 126 }
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 127
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 128 /**
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 129 * brcmf_fweh_handle_if_event() - handle IF event.
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 130 *
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 131 * @drvr: driver information object.
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 132 * @item: queue entry.
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 133 * @ifpp: interface object (may change upon ADD action).
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 134 */
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 135 static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 136 struct brcmf_event_msg *emsg,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 137 void *data)
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 138 {
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 139 struct brcmf_if_event *ifevent = data;
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 140 struct wiphy *wiphy = drvr->wiphy;
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 141 struct brcmf_if *ifp;
ddddfed2 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2015-08-26 142 bool is_p2pdev;
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 143 int err = 0;
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 144
37a869ec drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-10-29 145 brcmf_dbg(EVENT, "action: %u ifidx: %u bsscfgidx: %u flags: %u role: %u\n",
37a869ec drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-10-29 146 ifevent->action, ifevent->ifidx, ifevent->bsscfgidx,
8fdd1578 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-04-05 147 ifevent->flags, ifevent->role);
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 148
35a3cbcc drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 149 /* The P2P Device interface event must not be ignored contrary to what
35a3cbcc drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 150 * firmware tells us. Older firmware uses p2p noif, with sta role.
cb8dc71f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 151 * This should be accepted when p2pdev_setup is ongoing. TDLS setup will
cb8dc71f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 152 * use the same ifevent and should be ignored.
87c47903 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2014-09-12 153 */
35a3cbcc drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 154 is_p2pdev = ((ifevent->flags & BRCMF_E_IF_FLAG_NOIF) &&
35a3cbcc drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 155 (ifevent->role == BRCMF_E_IF_ROLE_P2P_CLIENT ||
cb8dc71f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 156 ((ifevent->role == BRCMF_E_IF_ROLE_STA) &&
cb8dc71f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-09-18 157 (drvr->fweh.p2pdev_setup_ongoing))));
ddddfed2 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2015-08-26 158 if (!is_p2pdev && (ifevent->flags & BRCMF_E_IF_FLAG_NOIF)) {
2ee8382f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-08-10 159 brcmf_dbg(EVENT, "event can be ignored\n");
2ee8382f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-08-10 160 return;
2ee8382f drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-08-10 161 }
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 162 if (ifevent->ifidx >= BRCMF_MAX_IFS) {
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 163 bphy_err(wiphy, "invalid interface index: %u\n",
e12dba9f drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2019-02-13 164 ifevent->ifidx);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 165 return;
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 166 }
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 167
37a869ec drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-10-29 168 ifp = drvr->iflist[ifevent->bsscfgidx];
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 169
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 170 if (ifevent->action == BRCMF_E_IF_ADD) {
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 171 brcmf_dbg(EVENT, "adding %s (%pM)\n", emsg->ifname,
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 172 emsg->addr);
37a869ec drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-10-29 173 ifp = brcmf_add_if(drvr, ifevent->bsscfgidx, ifevent->ifidx,
ddddfed2 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2015-08-26 174 is_p2pdev, emsg->ifname, emsg->addr);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 175 if (IS_ERR(ifp))
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 176 return;
2b76acdb drivers/net/wireless/brcm80211/brcmfmac/fweh.c Hante Meuleman 2015-10-08 177 if (!is_p2pdev)
9fdc64bb drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Franky Lin 2017-03-10 178 brcmf_proto_add_if(drvr, ifp);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 179 if (!drvr->fweh.evt_handler[BRCMF_E_IF])
9390ace9 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-05-27 180 if (brcmf_net_attach(ifp, false) < 0)
9390ace9 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-05-27 181 return;
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 182 }
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 183
87c47903 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2014-09-12 @184 if (ifp && ifevent->action == BRCMF_E_IF_CHANGE)
66ded1f8 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Franky Lin 2017-03-10 185 brcmf_proto_reset_if(drvr, ifp);
bb8c8063 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-04-03 186
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 @187 err = brcmf_fweh_call_event_handler(ifp, emsg->event_code, emsg, data);
3e0a97e1 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 188
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 @189 if (ifp && ifevent->action == BRCMF_E_IF_DEL) {
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 190 bool armed = brcmf_cfg80211_vif_event_armed(drvr->config);
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 191
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 192 /* Default handling in case no-one waits for this event */
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 193 if (!armed)
b50ddfa8 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-17 194 brcmf_remove_interface(ifp, false);
bb8c8063 drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2013-04-03 195 }
a63b0987 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c Rafał Miłecki 2016-06-29 196 }
5c36b99a drivers/net/wireless/brcm80211/brcmfmac/fweh.c Arend van Spriel 2012-11-14 197
:::::: The code at line 114 was first introduced by commit
:::::: 3e0a97e1507c482d2299a6ff24e597c1316ba60a brcmfmac: restructure handling of IF event
:::::: TO: Arend van Spriel <arend@broadcom.com>
:::::: CC: John W. Linville <linville@tuxdriver.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2019-02-15 6:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-13 11:26 [PATCH] brcmfmac: use bphy_err() in all wiphy-related code Rafał Miłecki
2019-02-14 12:38 ` Arend Van Spriel
2019-02-14 12:46 ` Rafał Miłecki
2019-02-14 12:57 ` [PATCH V2] " Rafał Miłecki
2019-02-15 6:43 ` [PATCH V3] " Rafał Miłecki
2019-02-15 8:37 ` Rafał Miłecki
[not found] ` <5cb6383e-2e4c-8586-61a2-3f47de2743dd@broadcom.com>
2019-02-15 9:47 ` Rafał Miłecki
2019-02-15 10:10 ` Rafał Miłecki
2019-02-15 10:37 ` Kalle Valo
2019-02-19 22:42 ` [PATCH V4] " Rafał Miłecki
2019-02-20 17:54 ` Kalle Valo
2019-02-15 6:16 ` Dan Carpenter [this message]
2019-02-15 10:04 ` [PATCH] " Kalle Valo
2019-02-15 10:08 ` Rafał Miłecki
2019-02-15 10:44 ` Kalle Valo
2019-02-15 10:38 ` Dan Carpenter
2019-02-15 10:40 ` Arend Van Spriel
2019-02-19 11:28 ` [kbuild] " Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190215061601.GE2304@kadam \
--to=dan.carpenter@oracle.com \
--cc=arend.vanspriel@broadcom.com \
--cc=brcm80211-dev-list.pdl@broadcom.com \
--cc=brcm80211-dev-list@cypress.com \
--cc=kbuild-all@01.org \
--cc=kbuild@01.org \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=rafal@milecki.pl \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).