From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 1/4] staging: wilc1000: remove use of infinite loop conditions
Date: Fri, 24 Jan 2020 09:04:32 +0300 [thread overview]
Message-ID: <20200124060432.GE1870@kadam> (raw)
In-Reply-To: <20200117160157.8706-2-ajay.kathat@microchip.com>
[-- Attachment #1: Type: text/plain, Size: 17122 bytes --]
Hey Ajay,
url: https://github.com/0day-ci/linux/commits/Ajay-Kathat-microchip-com/staging-wilc1000-handle-few-full-driver-review-comments/20200118-064137
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 270f104ba26f0498aff85e5b002e2f4c2249c04b
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/staging/wilc1000/wlan.c:663 wilc_wlan_handle_txq() error: double unlocked 'wilc->hif_cs' (orig line 575)
# https://github.com/0day-ci/linux/commit/afb35a84bfc18d51ed5ffebd87d7f4cf07c3b44e
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout afb35a84bfc18d51ed5ffebd87d7f4cf07c3b44e
vim +663 drivers/staging/wilc1000/wlan.c
a41047962ac053 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 528 if (i == 0)
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 529 goto out;
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 530 vmm_table[i] = 0x0;
a41047962ac053 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 531
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 532 acquire_bus(wilc, WILC_BUS_ACQUIRE_AND_WAKEUP);
Acquire here.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 533 counter = 0;
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 534 func = wilc->hif_func;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 535 do {
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 536 ret = func->hif_read_reg(wilc, WILC_HOST_TX_CTRL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 537 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 538 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 539
4ee4b9da2b0142 drivers/staging/wilc1000/wilc_wlan.c Elizabeth Ferdman 2016-09-30 540 if ((reg & 0x1) == 0)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 541 break;
4ee4b9da2b0142 drivers/staging/wilc1000/wilc_wlan.c Elizabeth Ferdman 2016-09-30 542
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 543 counter++;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 544 if (counter > 200) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 545 counter = 0;
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 546 ret = func->hif_write_reg(wilc, WILC_HOST_TX_CTRL, 0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 547 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 548 }
67e2a07ed8008b drivers/staging/wilc1000/wilc_wlan.c Glen Lee 2015-12-21 549 } while (!wilc->quit);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 550
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 551 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 552 goto out_release_bus;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 553
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 554 timeout = 200;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 555 do {
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 556 ret = func->hif_block_tx(wilc,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 557 WILC_VMM_TBL_RX_SHADOW_BASE,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 558 (u8 *)vmm_table,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 559 ((i + 1) * 4));
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 560 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 561 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 562
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 563 ret = func->hif_write_reg(wilc, WILC_HOST_VMM_CTL, 0x2);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 564 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 565 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 566
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 567 do {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 568 ret = func->hif_read_reg(wilc, WILC_HOST_VMM_CTL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 569 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 570 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 571 if ((reg >> 2) & 0x1) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 572 entries = ((reg >> 3) & 0x3f);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 573 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 574 }
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 @575 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
^^^^^^^^^^^
Bus is released here.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 576 } while (--timeout);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 577 if (timeout <= 0) {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 578 ret = func->hif_write_reg(wilc, WILC_HOST_VMM_CTL, 0x0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 579 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 580 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 581
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 582 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 583 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 584
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 585 if (entries == 0) {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 586 ret = func->hif_read_reg(wilc, WILC_HOST_TX_CTRL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 587 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 588 break;
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 589 reg &= ~BIT(0);
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 590 ret = func->hif_write_reg(wilc, WILC_HOST_TX_CTRL, reg);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 591 }
afb35a84bfc18d drivers/staging/wilc1000/wlan.c Ajay Singh 2020-01-17 592 } while (0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 593
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 594 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 595 goto out_release_bus;
^^^^^^^^^^^^^^^^^^^^
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 596
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 597 if (entries == 0) {
68b4f745cf1963 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 598 ret = -ENOBUFS;
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 599 goto out_release_bus;
^^^^^^^^^^^^^^^^^^^^
Released again in these gotos.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 600 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 601
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 602 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 603
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 604 offset = 0;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 605 i = 0;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 606 do {
fbc2fe16afa3f3 drivers/staging/wilc1000/wilc_wlan.c Chaehyun Lim 2015-09-15 607 u32 header, buffer_offset;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 608 char *bssid;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 609
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 610 tqe = wilc_wlan_txq_remove_from_head(dev);
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 611 if (!tqe)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 612 break;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 613
9bc061e8805487 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2019-06-26 614 vif = tqe->vif;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 615 if (vmm_table[i] == 0)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 616 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 617
02211edc9a1f71 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-08-01 618 le32_to_cpus(&vmm_table[i]);
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 619 vmm_sz = (vmm_table[i] & 0x3ff);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 620 vmm_sz *= 4;
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 621 header = (tqe->type << 31) |
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 622 (tqe->buffer_size << 15) |
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 623 vmm_sz;
78174adaf59e85 drivers/staging/wilc1000/wilc_wlan.c Chandra S Gorentla 2015-08-08 624 if (tqe->type == WILC_MGMT_PKT)
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 625 header |= BIT(30);
78174adaf59e85 drivers/staging/wilc1000/wilc_wlan.c Chandra S Gorentla 2015-08-08 626 else
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 627 header &= ~BIT(30);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 628
02211edc9a1f71 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-08-01 629 cpu_to_le32s(&header);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 630 memcpy(&txb[offset], &header, 4);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 631 if (tqe->type == WILC_CFG_PKT) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 632 buffer_offset = ETH_CONFIG_PKT_HDR_OFFSET;
590c0a39650f02 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 633 } else if (tqe->type == WILC_NET_PKT) {
9bc061e8805487 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2019-06-26 634 bssid = tqe->vif->bssid;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 635 buffer_offset = ETH_ETHERNET_HDR_OFFSET;
1bbf6a6d4091af drivers/staging/wilc1000/wilc_wlan.c Aditya Shankar 2017-11-03 636 memcpy(&txb[offset + 8], bssid, 6);
590c0a39650f02 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 637 } else {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 638 buffer_offset = HOST_HDR_OFFSET;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 639 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 640
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 641 memcpy(&txb[offset + buffer_offset],
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 642 tqe->buffer, tqe->buffer_size);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 643 offset += vmm_sz;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 644 i++;
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 645 tqe->status = 1;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 646 if (tqe->tx_complete_func)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 647 tqe->tx_complete_func(tqe->priv, tqe->status);
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 648 if (tqe->ack_idx != NOT_TCP_ACK &&
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 649 tqe->ack_idx < MAX_PENDING_ACKS)
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 650 vif->ack_filter.pending_acks[tqe->ack_idx].txqe = NULL;
a18dd63047a86e drivers/staging/wilc1000/wilc_wlan.c Greg Kroah-Hartman 2015-09-03 651 kfree(tqe);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 652 } while (--entries);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 653
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 654 acquire_bus(wilc, WILC_BUS_ACQUIRE_AND_WAKEUP);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 655
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 656 ret = func->hif_clear_int_ext(wilc, ENABLE_TX_VMM);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 657 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 658 goto out_release_bus;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 659
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 660 ret = func->hif_block_tx_ext(wilc, 0, txb, offset);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 661
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 662 out_release_bus:
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 @663 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 664
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 665 out:
334bed089d3d74 drivers/staging/wilc1000/wilc_wlan.c Binoy Jayan 2016-06-15 666 mutex_unlock(&wilc->txq_add_to_head_cs);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 667
67e2a07ed8008b drivers/staging/wilc1000/wilc_wlan.c Glen Lee 2015-12-21 668 *txq_count = wilc->txq_entries;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 669 return ret;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 670 }
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 1/4] staging: wilc1000: remove use of infinite loop conditions
Date: Fri, 24 Jan 2020 09:04:32 +0300 [thread overview]
Message-ID: <20200124060432.GE1870@kadam> (raw)
In-Reply-To: <20200117160157.8706-2-ajay.kathat@microchip.com>
[-- Attachment #1: Type: text/plain, Size: 17122 bytes --]
Hey Ajay,
url: https://github.com/0day-ci/linux/commits/Ajay-Kathat-microchip-com/staging-wilc1000-handle-few-full-driver-review-comments/20200118-064137
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 270f104ba26f0498aff85e5b002e2f4c2249c04b
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/staging/wilc1000/wlan.c:663 wilc_wlan_handle_txq() error: double unlocked 'wilc->hif_cs' (orig line 575)
# https://github.com/0day-ci/linux/commit/afb35a84bfc18d51ed5ffebd87d7f4cf07c3b44e
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout afb35a84bfc18d51ed5ffebd87d7f4cf07c3b44e
vim +663 drivers/staging/wilc1000/wlan.c
a41047962ac053 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 528 if (i == 0)
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 529 goto out;
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 530 vmm_table[i] = 0x0;
a41047962ac053 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 531
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 532 acquire_bus(wilc, WILC_BUS_ACQUIRE_AND_WAKEUP);
Acquire here.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 533 counter = 0;
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 534 func = wilc->hif_func;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 535 do {
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 536 ret = func->hif_read_reg(wilc, WILC_HOST_TX_CTRL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 537 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 538 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 539
4ee4b9da2b0142 drivers/staging/wilc1000/wilc_wlan.c Elizabeth Ferdman 2016-09-30 540 if ((reg & 0x1) == 0)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 541 break;
4ee4b9da2b0142 drivers/staging/wilc1000/wilc_wlan.c Elizabeth Ferdman 2016-09-30 542
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 543 counter++;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 544 if (counter > 200) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 545 counter = 0;
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 546 ret = func->hif_write_reg(wilc, WILC_HOST_TX_CTRL, 0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 547 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 548 }
67e2a07ed8008b drivers/staging/wilc1000/wilc_wlan.c Glen Lee 2015-12-21 549 } while (!wilc->quit);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 550
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 551 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 552 goto out_release_bus;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 553
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 554 timeout = 200;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 555 do {
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 556 ret = func->hif_block_tx(wilc,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 557 WILC_VMM_TBL_RX_SHADOW_BASE,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 558 (u8 *)vmm_table,
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 559 ((i + 1) * 4));
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 560 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 561 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 562
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 563 ret = func->hif_write_reg(wilc, WILC_HOST_VMM_CTL, 0x2);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 564 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 565 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 566
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 567 do {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 568 ret = func->hif_read_reg(wilc, WILC_HOST_VMM_CTL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 569 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 570 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 571 if ((reg >> 2) & 0x1) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 572 entries = ((reg >> 3) & 0x3f);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 573 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 574 }
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 @575 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
^^^^^^^^^^^
Bus is released here.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 576 } while (--timeout);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 577 if (timeout <= 0) {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 578 ret = func->hif_write_reg(wilc, WILC_HOST_VMM_CTL, 0x0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 579 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 580 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 581
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 582 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 583 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 584
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 585 if (entries == 0) {
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 586 ret = func->hif_read_reg(wilc, WILC_HOST_TX_CTRL, ®);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 587 if (!ret)
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 588 break;
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 589 reg &= ~BIT(0);
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 590 ret = func->hif_write_reg(wilc, WILC_HOST_TX_CTRL, reg);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 591 }
afb35a84bfc18d drivers/staging/wilc1000/wlan.c Ajay Singh 2020-01-17 592 } while (0);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 593
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 594 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 595 goto out_release_bus;
^^^^^^^^^^^^^^^^^^^^
39823a50ff371c drivers/staging/wilc1000/wilc_wlan.c Alison Schofield 2015-10-08 596
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 597 if (entries == 0) {
68b4f745cf1963 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 598 ret = -ENOBUFS;
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 599 goto out_release_bus;
^^^^^^^^^^^^^^^^^^^^
Released again in these gotos.
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 600 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 601
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 602 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 603
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 604 offset = 0;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 605 i = 0;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 606 do {
fbc2fe16afa3f3 drivers/staging/wilc1000/wilc_wlan.c Chaehyun Lim 2015-09-15 607 u32 header, buffer_offset;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 608 char *bssid;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 609
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 610 tqe = wilc_wlan_txq_remove_from_head(dev);
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 611 if (!tqe)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 612 break;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 613
9bc061e8805487 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2019-06-26 614 vif = tqe->vif;
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 615 if (vmm_table[i] == 0)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 616 break;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 617
02211edc9a1f71 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-08-01 618 le32_to_cpus(&vmm_table[i]);
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 619 vmm_sz = (vmm_table[i] & 0x3ff);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 620 vmm_sz *= 4;
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 621 header = (tqe->type << 31) |
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 622 (tqe->buffer_size << 15) |
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 623 vmm_sz;
78174adaf59e85 drivers/staging/wilc1000/wilc_wlan.c Chandra S Gorentla 2015-08-08 624 if (tqe->type == WILC_MGMT_PKT)
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 625 header |= BIT(30);
78174adaf59e85 drivers/staging/wilc1000/wilc_wlan.c Chandra S Gorentla 2015-08-08 626 else
ffda203c0cf3b5 drivers/staging/wilc1000/wilc_wlan.c Anish Bhatt 2015-09-29 627 header &= ~BIT(30);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 628
02211edc9a1f71 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-08-01 629 cpu_to_le32s(&header);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 630 memcpy(&txb[offset], &header, 4);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 631 if (tqe->type == WILC_CFG_PKT) {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 632 buffer_offset = ETH_CONFIG_PKT_HDR_OFFSET;
590c0a39650f02 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 633 } else if (tqe->type == WILC_NET_PKT) {
9bc061e8805487 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2019-06-26 634 bssid = tqe->vif->bssid;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 635 buffer_offset = ETH_ETHERNET_HDR_OFFSET;
1bbf6a6d4091af drivers/staging/wilc1000/wilc_wlan.c Aditya Shankar 2017-11-03 636 memcpy(&txb[offset + 8], bssid, 6);
590c0a39650f02 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 637 } else {
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 638 buffer_offset = HOST_HDR_OFFSET;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 639 }
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 640
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 641 memcpy(&txb[offset + buffer_offset],
ab12d8c773f86c drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 642 tqe->buffer, tqe->buffer_size);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 643 offset += vmm_sz;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 644 i++;
ac087c82c4ec08 drivers/staging/wilc1000/wilc_wlan.c Leo Kim 2015-11-06 645 tqe->status = 1;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 646 if (tqe->tx_complete_func)
82059dcec99e50 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 647 tqe->tx_complete_func(tqe->priv, tqe->status);
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 648 if (tqe->ack_idx != NOT_TCP_ACK &&
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 649 tqe->ack_idx < MAX_PENDING_ACKS)
f31e5584dc555f drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-09-04 650 vif->ack_filter.pending_acks[tqe->ack_idx].txqe = NULL;
a18dd63047a86e drivers/staging/wilc1000/wilc_wlan.c Greg Kroah-Hartman 2015-09-03 651 kfree(tqe);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 652 } while (--entries);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 653
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 654 acquire_bus(wilc, WILC_BUS_ACQUIRE_AND_WAKEUP);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 655
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 656 ret = func->hif_clear_int_ext(wilc, ENABLE_TX_VMM);
133b22d694c7a4 drivers/staging/wilc1000/wilc_wlan.c Chris Park 2016-02-04 657 if (!ret)
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 658 goto out_release_bus;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 659
f782497c099102 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-16 660 ret = func->hif_block_tx_ext(wilc, 0, txb, offset);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 661
588bf3c1162604 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 662 out_release_bus:
b997b84ffca6ab drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-11-12 @663 release_bus(wilc, WILC_BUS_RELEASE_ALLOW_SLEEP);
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 664
891256180aea96 drivers/staging/wilc1000/wilc_wlan.c Ajay Singh 2018-02-26 665 out:
334bed089d3d74 drivers/staging/wilc1000/wilc_wlan.c Binoy Jayan 2016-06-15 666 mutex_unlock(&wilc->txq_add_to_head_cs);
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 667
67e2a07ed8008b drivers/staging/wilc1000/wilc_wlan.c Glen Lee 2015-12-21 668 *txq_count = wilc->txq_entries;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 669 return ret;
c5c77ba18ea66a drivers/staging/wilc1000/wilc_wlan.c Johnny Kim 2015-05-11 670 }
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
next prev parent reply other threads:[~2020-01-24 6:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-17 10:31 [PATCH 0/4] staging: wilc1000: handle few full driver review comments Ajay.Kathat
2020-01-17 10:31 ` [PATCH 1/4] staging: wilc1000: remove use of infinite loop conditions Ajay.Kathat
2020-01-24 6:04 ` Dan Carpenter [this message]
2020-01-24 6:04 ` Dan Carpenter
2020-01-17 10:31 ` [PATCH 2/4] staging: wilc1000: move firmware API struct's to separate header file Ajay.Kathat
2020-01-17 10:31 ` [PATCH 3/4] staging: wilc1000: added 'wilc_' prefix for 'struct assoc_resp' name Ajay.Kathat
2020-01-17 10:31 ` [PATCH 4/4] staging: wilc1000: remove unused code prior to throughput enhancement in SPI Ajay.Kathat
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=20200124060432.GE1870@kadam \
--to=dan.carpenter@oracle.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.