* [wireless-drivers-next:master 8/21] drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
@ 2019-11-21 8:04 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2019-11-21 8:04 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12023 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
head: 924ea58dadea23cc28b60d02b9c0896b7b168a6f
commit: 904628d3130b5aef0c9b06efa80e5a96f203e000 [8/21] qtnfmac: add interface ID to each packet
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>
New smatch warnings:
drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
# https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git/commit/?id=904628d3130b5aef0c9b06efa80e5a96f203e000
git remote add wireless-drivers-next https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
git remote update wireless-drivers-next
git checkout 904628d3130b5aef0c9b06efa80e5a96f203e000
vim +/skb +596 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c
904628d3130b5a drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2019-11-18 535 static int qtnf_pcie_skb_send(struct qtnf_bus *bus, struct sk_buff *skb)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 536 {
addc7540708f52 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 537 struct qtnf_pcie_pearl_state *ps = get_bus_priv(bus);
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 538 struct qtnf_pcie_bus_priv *priv = &ps->base;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 539 dma_addr_t txbd_paddr, skb_paddr;
d0b95bfa11786e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 540 struct qtnf_pearl_tx_bd *txbd;
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 541 unsigned long flags;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 542 int len, i;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 543 u32 info;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 544 int ret = 0;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 545
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 546 spin_lock_irqsave(&priv->tx_lock, flags);
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 547
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 548 if (!qtnf_tx_queue_ready(ps)) {
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 549 if (skb->dev) {
^^^^^^^^
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 550 netif_tx_stop_all_queues(skb->dev);
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 551 priv->tx_stopped = 1;
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 552 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 553
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 554 spin_unlock_irqrestore(&priv->tx_lock, flags);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 555 return NETDEV_TX_BUSY;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 556 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 557
3cbc3a0f19ac73 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 558 i = priv->tx_bd_w_index;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 559 priv->tx_skb[i] = skb;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 @560 len = skb->len;
^^^^^^^^
Dereferenced without checking.
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 561
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 562 skb_paddr = pci_map_single(priv->pdev, skb->data,
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 563 skb->len, PCI_DMA_TODEVICE);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 564 if (pci_dma_mapping_error(priv->pdev, skb_paddr)) {
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 565 pr_err("skb DMA mapping error: %pad\n", &skb_paddr);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 566 ret = -ENOMEM;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 567 goto tx_done;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 568 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 569
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 570 txbd = &ps->tx_bd_vbase[i];
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 571 txbd->addr = cpu_to_le32(QTN_HOST_LO32(skb_paddr));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 572 txbd->addr_h = cpu_to_le32(QTN_HOST_HI32(skb_paddr));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 573
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 574 info = (len & QTN_PCIE_TX_DESC_LEN_MASK) << QTN_PCIE_TX_DESC_LEN_SHIFT;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 575 txbd->info = cpu_to_le32(info);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 576
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 577 /* sync up all descriptor updates before passing them to EP */
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 578 dma_wmb();
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 579
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 580 /* write new TX descriptor to PCIE_RX_FIFO on EP */
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 581 txbd_paddr = ps->tx_bd_pbase + i * sizeof(struct qtnf_pearl_tx_bd);
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 582
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 583 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 584 writel(QTN_HOST_HI32(txbd_paddr),
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 585 PCIE_HDP_HOST_WR_DESC0_H(ps->pcie_reg_base));
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 586 #endif
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 587 writel(QTN_HOST_LO32(txbd_paddr),
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 588 PCIE_HDP_HOST_WR_DESC0(ps->pcie_reg_base));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 589
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 590 if (++i >= priv->tx_bd_num)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 591 i = 0;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 592
3cbc3a0f19ac73 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 593 priv->tx_bd_w_index = i;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 594
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 595 tx_done:
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 @596 if (ret && skb) {
^^^
Checked too late.
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 597 pr_err_ratelimited("drop skb\n");
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 598 if (skb->dev)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 599 skb->dev->stats.tx_dropped++;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 600 dev_kfree_skb_any(skb);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 601 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 602
0593da274d4d7f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 603 priv->tx_done_count++;
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 604 spin_unlock_irqrestore(&priv->tx_lock, flags);
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 605
789763b683eb77 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 606 qtnf_pearl_data_tx_reclaim(ps);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 607
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 608 return NETDEV_TX_OK;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 609 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 610
:::::: The code at line 596 was first introduced by commit
:::::: 98f44cb0655cbef0850ba7ff4c8213fb1bf9b6a2 qtnfmac: introduce new FullMAC driver for Quantenna chipsets
:::::: TO: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
:::::: CC: Kalle Valo <kvalo@codeaurora.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] 4+ messages in thread* [wireless-drivers-next:master 8/21] drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
@ 2019-11-21 8:04 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2019-11-21 8:04 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 12023 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
head: 924ea58dadea23cc28b60d02b9c0896b7b168a6f
commit: 904628d3130b5aef0c9b06efa80e5a96f203e000 [8/21] qtnfmac: add interface ID to each packet
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>
New smatch warnings:
drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
# https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git/commit/?id=904628d3130b5aef0c9b06efa80e5a96f203e000
git remote add wireless-drivers-next https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git
git remote update wireless-drivers-next
git checkout 904628d3130b5aef0c9b06efa80e5a96f203e000
vim +/skb +596 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c
904628d3130b5a drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2019-11-18 535 static int qtnf_pcie_skb_send(struct qtnf_bus *bus, struct sk_buff *skb)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 536 {
addc7540708f52 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 537 struct qtnf_pcie_pearl_state *ps = get_bus_priv(bus);
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 538 struct qtnf_pcie_bus_priv *priv = &ps->base;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 539 dma_addr_t txbd_paddr, skb_paddr;
d0b95bfa11786e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 540 struct qtnf_pearl_tx_bd *txbd;
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 541 unsigned long flags;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 542 int len, i;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 543 u32 info;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 544 int ret = 0;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 545
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 546 spin_lock_irqsave(&priv->tx_lock, flags);
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 547
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 548 if (!qtnf_tx_queue_ready(ps)) {
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 549 if (skb->dev) {
^^^^^^^^
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 550 netif_tx_stop_all_queues(skb->dev);
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 551 priv->tx_stopped = 1;
c35c0d54a77d0f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-10-30 552 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 553
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 554 spin_unlock_irqrestore(&priv->tx_lock, flags);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 555 return NETDEV_TX_BUSY;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 556 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 557
3cbc3a0f19ac73 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 558 i = priv->tx_bd_w_index;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 559 priv->tx_skb[i] = skb;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 @560 len = skb->len;
^^^^^^^^
Dereferenced without checking.
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 561
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 562 skb_paddr = pci_map_single(priv->pdev, skb->data,
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 563 skb->len, PCI_DMA_TODEVICE);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 564 if (pci_dma_mapping_error(priv->pdev, skb_paddr)) {
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 565 pr_err("skb DMA mapping error: %pad\n", &skb_paddr);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 566 ret = -ENOMEM;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 567 goto tx_done;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 568 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 569
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 570 txbd = &ps->tx_bd_vbase[i];
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 571 txbd->addr = cpu_to_le32(QTN_HOST_LO32(skb_paddr));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 572 txbd->addr_h = cpu_to_le32(QTN_HOST_HI32(skb_paddr));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 573
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 574 info = (len & QTN_PCIE_TX_DESC_LEN_MASK) << QTN_PCIE_TX_DESC_LEN_SHIFT;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 575 txbd->info = cpu_to_le32(info);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 576
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 577 /* sync up all descriptor updates before passing them to EP */
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 578 dma_wmb();
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 579
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 580 /* write new TX descriptor to PCIE_RX_FIFO on EP */
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 581 txbd_paddr = ps->tx_bd_pbase + i * sizeof(struct qtnf_pearl_tx_bd);
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 582
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 583 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 584 writel(QTN_HOST_HI32(txbd_paddr),
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 585 PCIE_HDP_HOST_WR_DESC0_H(ps->pcie_reg_base));
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 586 #endif
f31039d4aea97d drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-29 587 writel(QTN_HOST_LO32(txbd_paddr),
c9ff6c9157c2e6 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 588 PCIE_HDP_HOST_WR_DESC0(ps->pcie_reg_base));
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 589
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 590 if (++i >= priv->tx_bd_num)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 591 i = 0;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 592
3cbc3a0f19ac73 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 593 priv->tx_bd_w_index = i;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 594
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 595 tx_done:
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 @596 if (ret && skb) {
^^^
Checked too late.
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 597 pr_err_ratelimited("drop skb\n");
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 598 if (skb->dev)
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 599 skb->dev->stats.tx_dropped++;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 600 dev_kfree_skb_any(skb);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 601 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 602
0593da274d4d7f drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-08-15 603 priv->tx_done_count++;
21077d09b4a67e drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 604 spin_unlock_irqrestore(&priv->tx_lock, flags);
20da2ec06bfad2 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Sergey Matyukevich 2017-09-18 605
789763b683eb77 drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c Igor Mitsyanko 2018-09-24 606 qtnf_pearl_data_tx_reclaim(ps);
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 607
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 608 return NETDEV_TX_OK;
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 609 }
98f44cb0655cbe drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c Igor Mitsyanko 2017-05-11 610
:::::: The code at line 596 was first introduced by commit
:::::: 98f44cb0655cbef0850ba7ff4c8213fb1bf9b6a2 qtnfmac: introduce new FullMAC driver for Quantenna chipsets
:::::: TO: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
:::::: CC: Kalle Valo <kvalo@codeaurora.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <a8c4bec3-4108-d460-3766-eb5548d5f878@quantenna.com>]
* Re: [wireless-drivers-next:master 8/21] drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
[not found] <a8c4bec3-4108-d460-3766-eb5548d5f878@quantenna.com>
@ 2019-11-21 18:54 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2019-11-21 18:54 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 423 bytes --]
On Thu, Nov 21, 2019 at 04:06:10PM +0000, Igor Mitsyanko wrote:
> Thanks Dan!
>
> @Sergey I think we do not need !skb check at all in this function,
> agree? I assume if we remove "if (ret && skb)" it will make smatch happy?
>
Yes. Smatch only cares about consistent checking. Or it will accept
inconsistent NULL checks so long as it is convinced that the pointer
can't be NULL.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [wireless-drivers-next:master 8/21] drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560)
@ 2019-11-21 18:54 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2019-11-21 18:54 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 423 bytes --]
On Thu, Nov 21, 2019 at 04:06:10PM +0000, Igor Mitsyanko wrote:
> Thanks Dan!
>
> @Sergey I think we do not need !skb check at all in this function,
> agree? I assume if we remove "if (ret && skb)" it will make smatch happy?
>
Yes. Smatch only cares about consistent checking. Or it will accept
inconsistent NULL checks so long as it is convinced that the pointer
can't be NULL.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-11-21 18:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-21 8:04 [wireless-drivers-next:master 8/21] drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c:596 qtnf_pcie_skb_send() warn: variable dereferenced before check 'skb' (see line 560) Dan Carpenter
2019-11-21 8:04 ` Dan Carpenter
[not found] <a8c4bec3-4108-d460-3766-eb5548d5f878@quantenna.com>
2019-11-21 18:54 ` Dan Carpenter
2019-11-21 18:54 ` Dan Carpenter
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.