All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.