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: Wed, 30 Jun 2021 21:55:05 +0800 [thread overview]
Message-ID: <202106302149.FsFPwFAY-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 9457 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: 007b350a58754a93ca9fe50c498cc27780171153
commit: 35fba0f0fd762a8b87d403ae3c723e0061c4aa25 wlcore: Use spin_trylock in wlcore_irq() to see if we need to queue tx
date: 12 months ago
:::::: branch date: 10 hours ago
:::::: commit date: 12 months ago
config: alpha-randconfig-s032-20210630 (attached as .config)
compiler: alpha-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-341-g8af24329-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__' O=build_dir ARCH=alpha SHELL=/bin/bash drivers/net/wireless/ti/wlcore/
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
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 649
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 650 static irqreturn_t wlcore_irq(int irq, void *cookie)
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 651 {
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 652 int ret;
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 653 unsigned long flags;
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 654 struct wl1271 *wl = cookie;
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 655 bool queue_tx_work = true;
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 656
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 657 set_bit(WL1271_FLAG_IRQ_RUNNING, &wl->flags);
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 658
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 659 /* complete the ELP completion */
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 660 if (test_bit(WL1271_FLAG_IN_ELP, &wl->flags)) {
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 661 spin_lock_irqsave(&wl->wl_lock, flags);
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 662 if (wl->elp_compl)
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 663 complete(wl->elp_compl);
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 664 spin_unlock_irqrestore(&wl->wl_lock, flags);
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 665 }
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 666
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 667 if (test_bit(WL1271_FLAG_SUSPENDED, &wl->flags)) {
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 668 /* don't enqueue a work right now. mark it as pending */
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 669 set_bit(WL1271_FLAG_PENDING_WORK, &wl->flags);
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 670 wl1271_debug(DEBUG_IRQ, "should not enqueue work");
eb215c33f308ce drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 671 spin_lock_irqsave(&wl->wl_lock, flags);
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 672 disable_irq_nosync(wl->irq);
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 673 pm_wakeup_event(wl->dev, 0);
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 674 spin_unlock_irqrestore(&wl->wl_lock, flags);
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 675 goto out_handled;
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 676 }
97236a0656034e drivers/net/wireless/ti/wlcore/main.c Luciano Coelho 2013-03-08 677
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 678 /* TX might be handled here, avoid redundant work */
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 679 set_bit(WL1271_FLAG_TX_PENDING, &wl->flags);
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 680 cancel_work_sync(&wl->tx_work);
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 681
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 682 mutex_lock(&wl->mutex);
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 683
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 684 ret = wlcore_irq_locked(wl);
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 685 if (ret)
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 686 wl12xx_queue_recovery_work(wl);
b5b45b3cbd5616 drivers/net/wireless/ti/wlcore/main.c Arik Nemtsov 2012-06-21 687
35fba0f0fd762a 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 */
b07d4037051318 drivers/net/wireless/wl12xx/main.c Ido Yariv 2011-03-01 689 clear_bit(WL1271_FLAG_TX_PENDING, &wl->flags);
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 690 if (!test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags)) {
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 691 if (spin_trylock_irqsave(&wl->wl_lock, flags)) {
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 692 if (!wl1271_tx_total_queue_count(wl))
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 693 queue_tx_work = false;
b07d4037051318 drivers/net/wireless/wl12xx/main.c Ido Yariv 2011-03-01 694 spin_unlock_irqrestore(&wl->wl_lock, flags);
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 695 }
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 696 if (queue_tx_work)
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 697 ieee80211_queue_work(wl->hw, &wl->tx_work);
35fba0f0fd762a drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2020-07-02 698 }
b07d4037051318 drivers/net/wireless/wl12xx/main.c Ido Yariv 2011-03-01 699
f5fc0f86b02afe drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho 2009-08-06 @700 mutex_unlock(&wl->mutex);
a620865edf62ea drivers/net/wireless/wl12xx/main.c Ido Yariv 2011-03-01 701
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 702 out_handled:
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 703 spin_lock_irqsave(&wl->wl_lock, flags);
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 704 clear_bit(WL1271_FLAG_IRQ_RUNNING, &wl->flags);
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 705 spin_unlock_irqrestore(&wl->wl_lock, flags);
4633d30b61ac14 drivers/net/wireless/ti/wlcore/main.c Tony Lindgren 2019-10-09 706
a620865edf62ea drivers/net/wireless/wl12xx/main.c Ido Yariv 2011-03-01 707 return IRQ_HANDLED;
f5fc0f86b02afe drivers/net/wireless/wl12xx/wl1271_main.c Luciano Coelho 2009-08-06 708 }
f5fc0f86b02afe 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: 22230 bytes --]
next reply other threads:[~2021-06-30 13:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-30 13:55 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-05-10 9:04 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-04-24 5:40 kernel test robot
2021-03-04 7:16 kernel test robot
2020-11-23 1: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=202106302149.FsFPwFAY-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.