All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/wireless/ti/wlcore/main.c:700:9: sparse: sparse: context imbalance in 'wlcore_irq' - different lock contexts for basic block
Date: Mon, 23 Nov 2020 09:16:03 +0800	[thread overview]
Message-ID: <202011230953.WzJBPR0a-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 24722 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Tony Lindgren <tony@atomide.com>
CC: Kalle Valo <kvalo@codeaurora.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   d5530d82efc8631beff20480b1168b1c44294fe1
commit: 35fba0f0fd762a8b87d403ae3c723e0061c4aa25 wlcore: Use spin_trylock in wlcore_irq() to see if we need to queue tx
date:   4 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 4 months ago
config: nios2-randconfig-s031-20201123 (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-134-gb59dbdaf-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=35fba0f0fd762a8b87d403ae3c723e0061c4aa25
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 35fba0f0fd762a8b87d403ae3c723e0061c4aa25
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=nios2 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


"sparse warnings: (new ones prefixed by >>)"
   drivers/net/wireless/ti/wlcore/main.c:643:34: sparse: sparse: context imbalance in 'wlcore_irq_locked' - different lock contexts for basic block
>> drivers/net/wireless/ti/wlcore/main.c:700:9: sparse: sparse: context imbalance in 'wlcore_irq' - different lock contexts for basic block

vim +/wlcore_irq +700 drivers/net/wireless/ti/wlcore/main.c

1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  518  
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  519  static int wlcore_irq_locked(struct wl1271 *wl)
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  520  {
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  521  	int ret = 0;
c15f63bffabb996 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-12  522  	u32 intr;
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  523  	int loopcount = WL1271_IRQ_MAX_LOOPS;
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  524  	bool run_tx_queue = true;
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  525  	bool done = false;
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  526  	unsigned int defer_count;
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  527  	unsigned long flags;
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  528  
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  529  	/*
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  530  	 * In case edge triggered interrupt must be used, we cannot iterate
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  531  	 * more than once without introducing race conditions with the hardirq.
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  532  	 */
6f921fab5844941 drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2015-03-18  533  	if (wl->irq_flags & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING))
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  534  		loopcount = 1;
341b7cde6ccc606 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-31  535  
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  536  	wl1271_debug(DEBUG_IRQ, "IRQ work");
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  537  
4cc533830b7e6b3 drivers/net/wireless/ti/wlcore/main.c     Ido Yariv       2012-07-24  538  	if (unlikely(wl->state != WLCORE_STATE_ON))
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  539  		goto out;
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  540  
fa2648a34e73fb7 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19  541  	ret = pm_runtime_get_sync(wl->dev);
fa2648a34e73fb7 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19  542  	if (ret < 0) {
fa2648a34e73fb7 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19  543  		pm_runtime_put_noidle(wl->dev);
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  544  		goto out;
fa2648a34e73fb7 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19  545  	}
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  546  
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  547  	while (!done && loopcount--) {
4e857c58efeb993 drivers/net/wireless/ti/wlcore/main.c     Peter Zijlstra  2014-03-17  548  		smp_mb__after_atomic();
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  549  
75fb4df7f804229 drivers/net/wireless/ti/wlcore/main.c     Eliad Peller    2014-02-10  550  		ret = wlcore_fw_status(wl, wl->fw_status);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  551  		if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  552  			goto err_ret;
53d67a50cd17aca drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2011-12-12  553  
53d67a50cd17aca drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2011-12-12  554  		wlcore_hw_tx_immediate_compl(wl);
53d67a50cd17aca drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2011-12-12  555  
75fb4df7f804229 drivers/net/wireless/ti/wlcore/main.c     Eliad Peller    2014-02-10  556  		intr = wl->fw_status->intr;
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  557  		intr &= WLCORE_ALL_INTR_MASK;
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  558  		if (!intr) {
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  559  			done = true;
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  560  			continue;
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  561  		}
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  562  
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  563  		if (unlikely(intr & WL1271_ACX_INTR_WATCHDOG)) {
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  564  			wl1271_error("HW watchdog interrupt received! starting recovery.");
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  565  			wl->watchdog_recovery = true;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  566  			ret = -EIO;
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  567  
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  568  			/* restarting the chip. ignore any other interrupt. */
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  569  			goto err_ret;
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  570  		}
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  571  
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  572  		if (unlikely(intr & WL1271_ACX_SW_INTR_WATCHDOG)) {
f5755fe96cb0100 drivers/net/wireless/ti/wlcore/main.c     Ido Reis        2012-04-23  573  			wl1271_error("SW watchdog interrupt received! "
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  574  				     "starting recovery.");
afbe37185c0ecad drivers/net/wireless/ti/wlcore/main.c     Yoni Divinsky   2012-05-16  575  			wl->watchdog_recovery = true;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  576  			ret = -EIO;
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  577  
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  578  			/* restarting the chip. ignore any other interrupt. */
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  579  			goto err_ret;
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  580  		}
ccc83b046c03378 drivers/net/wireless/wl12xx/wl1271_main.c Eliad Peller    2010-10-27  581  
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  582  		if (likely(intr & WL1271_ACX_INTR_DATA)) {
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  583  			wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_DATA");
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  584  
75fb4df7f804229 drivers/net/wireless/ti/wlcore/main.c     Eliad Peller    2014-02-10  585  			ret = wlcore_rx(wl, wl->fw_status);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  586  			if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  587  				goto err_ret;
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  588  
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  589  			/* Check if any tx blocks were freed */
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  590  			if (!test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags)) {
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  591  				if (spin_trylock_irqsave(&wl->wl_lock, flags)) {
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  592  					if (!wl1271_tx_total_queue_count(wl))
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  593  						run_tx_queue = false;
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  594  					spin_unlock_irqrestore(&wl->wl_lock, flags);
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  595  				}
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  596  
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  597  				/*
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  598  				 * In order to avoid starvation of the TX path,
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  599  				 * call the work function directly.
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  600  				 */
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  601  				if (run_tx_queue) {
eb96f841b9563ba drivers/net/wireless/ti/wlcore/main.c     Ido Yariv       2012-06-18  602  					ret = wlcore_tx_work_locked(wl);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  603  					if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  604  						goto err_ret;
f0325e38ab39c2e drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  605  				}
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  606  			}
a522550a283de31 drivers/net/wireless/wl12xx/wl1271_main.c Ido Yariv       2010-10-12  607  
8aad24642a7c068 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  608  			/* check for tx results */
045b9b5f4172b2b drivers/net/wireless/ti/wlcore/main.c     Ido Yariv       2012-06-18  609  			ret = wlcore_hw_tx_delayed_compl(wl);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  610  			if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  611  				goto err_ret;
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  612  
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  613  			/* Make sure the deferred queues don't get too long */
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  614  			defer_count = skb_queue_len(&wl->deferred_tx_queue) +
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  615  				      skb_queue_len(&wl->deferred_rx_queue);
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  616  			if (defer_count > WL1271_DEFERRED_QUEUE_LIMIT)
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  617  				wl1271_flush_deferred_work(wl);
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  618  		}
1e73eb62cec7cf7 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2010-02-22  619  
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  620  		if (intr & WL1271_ACX_INTR_EVENT_A) {
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  621  			wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_A");
045b9b5f4172b2b drivers/net/wireless/ti/wlcore/main.c     Ido Yariv       2012-06-18  622  			ret = wl1271_event_handle(wl, 0);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  623  			if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  624  				goto err_ret;
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  625  		}
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  626  
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  627  		if (intr & WL1271_ACX_INTR_EVENT_B) {
1fd2794f3691399 drivers/net/wireless/wl12xx/wl1271_main.c Juuso Oikarinen 2009-10-13  628  			wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_B");
045b9b5f4172b2b drivers/net/wireless/ti/wlcore/main.c     Ido Yariv       2012-06-18  629  			ret = wl1271_event_handle(wl, 1);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  630  			if (ret < 0)
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  631  				goto err_ret;
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  632  		}
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  633  
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  634  		if (intr & WL1271_ACX_INTR_INIT_COMPLETE)
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  635  			wl1271_debug(DEBUG_IRQ,
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  636  				     "WL1271_ACX_INTR_INIT_COMPLETE");
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  637  
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  638  		if (intr & WL1271_ACX_INTR_HW_AVAILABLE)
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  639  			wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_HW_AVAILABLE");
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  640  	}
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  641  
da74b6933b3ba27 drivers/net/wireless/ti/wlcore/main.c     Dinghao Liu     2020-05-22  642  err_ret:
9b71578de08748d drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19 @643  	pm_runtime_mark_last_busy(wl->dev);
9b71578de08748d drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2018-06-19  644  	pm_runtime_put_autosuspend(wl->dev);
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  645  
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  646  out:
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  647  	return ret;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  648  }
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  649  
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  650  static irqreturn_t wlcore_irq(int irq, void *cookie)
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  651  {
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  652  	int ret;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  653  	unsigned long flags;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  654  	struct wl1271 *wl = cookie;
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  655  	bool queue_tx_work = true;
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  656  
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  657  	set_bit(WL1271_FLAG_IRQ_RUNNING, &wl->flags);
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  658  
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  659  	/* complete the ELP completion */
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  660  	if (test_bit(WL1271_FLAG_IN_ELP, &wl->flags)) {
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  661  		spin_lock_irqsave(&wl->wl_lock, flags);
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  662  		if (wl->elp_compl)
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  663  			complete(wl->elp_compl);
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  664  		spin_unlock_irqrestore(&wl->wl_lock, flags);
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  665  	}
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  666  
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  667  	if (test_bit(WL1271_FLAG_SUSPENDED, &wl->flags)) {
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  668  		/* don't enqueue a work right now. mark it as pending */
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  669  		set_bit(WL1271_FLAG_PENDING_WORK, &wl->flags);
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  670  		wl1271_debug(DEBUG_IRQ, "should not enqueue work");
eb215c33f308cef drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  671  		spin_lock_irqsave(&wl->wl_lock, flags);
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  672  		disable_irq_nosync(wl->irq);
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  673  		pm_wakeup_event(wl->dev, 0);
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  674  		spin_unlock_irqrestore(&wl->wl_lock, flags);
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  675  		goto out_handled;
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  676  	}
97236a0656034ef drivers/net/wireless/ti/wlcore/main.c     Luciano Coelho  2013-03-08  677  
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  678  	/* TX might be handled here, avoid redundant work */
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  679  	set_bit(WL1271_FLAG_TX_PENDING, &wl->flags);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  680  	cancel_work_sync(&wl->tx_work);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  681  
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  682  	mutex_lock(&wl->mutex);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  683  
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  684  	ret = wlcore_irq_locked(wl);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  685  	if (ret)
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  686  		wl12xx_queue_recovery_work(wl);
b5b45b3cbd56162 drivers/net/wireless/ti/wlcore/main.c     Arik Nemtsov    2012-06-21  687  
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  688  	/* In case TX was not handled in wlcore_irq_locked(), queue TX work */
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  689  	clear_bit(WL1271_FLAG_TX_PENDING, &wl->flags);
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  690  	if (!test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags)) {
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  691  		if (spin_trylock_irqsave(&wl->wl_lock, flags)) {
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  692  			if (!wl1271_tx_total_queue_count(wl))
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  693  				queue_tx_work = false;
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  694  			spin_unlock_irqrestore(&wl->wl_lock, flags);
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  695  		}
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  696  		if (queue_tx_work)
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  697  			ieee80211_queue_work(wl->hw, &wl->tx_work);
35fba0f0fd762a8 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2020-07-02  698  	}
b07d4037051318d drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  699  
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06 @700  	mutex_unlock(&wl->mutex);
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  701  
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  702  out_handled:
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  703  	spin_lock_irqsave(&wl->wl_lock, flags);
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  704  	clear_bit(WL1271_FLAG_IRQ_RUNNING, &wl->flags);
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  705  	spin_unlock_irqrestore(&wl->wl_lock, flags);
4633d30b61ac141 drivers/net/wireless/ti/wlcore/main.c     Tony Lindgren   2019-10-09  706  
a620865edf62ea2 drivers/net/wireless/wl12xx/main.c        Ido Yariv       2011-03-01  707  	return IRQ_HANDLED;
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  708  }
f5fc0f86b02afef drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho  2009-08-06  709  

:::::: The code at line 700 was first introduced by commit
:::::: f5fc0f86b02afef1119b523623b4cde41475bc8c wl1271: add wl1271 driver files

:::::: TO: Luciano Coelho <luciano.coelho@nokia.com>
:::::: CC: John W. Linville <linville@tuxdriver.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27075 bytes --]

             reply	other threads:[~2020-11-23  1:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-23  1:16 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-06-30 13:55 drivers/net/wireless/ti/wlcore/main.c:700:9: sparse: sparse: context imbalance in 'wlcore_irq' - different lock contexts for basic block kernel test robot
2021-05-10  9:04 kernel test robot
2021-04-24  5:40 kernel test robot
2021-03-04  7:16 kernel test robot
2020-08-11 11:54 kernel test robot
2020-08-11 11:54 ` kernel test robot
2020-08-17 10:28 ` Tony Lindgren
2020-08-17 10:28   ` Tony Lindgren
2020-08-20  0:34   ` Chen, Rong A

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=202011230953.WzJBPR0a-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /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.