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 --]
next 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.