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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.