All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [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)
Date: Thu, 21 Nov 2019 11:04:51 +0300	[thread overview]
Message-ID: <20191121080451.GA617@kadam> (raw)

[-- 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

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [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)
Date: Thu, 21 Nov 2019 11:04:51 +0300	[thread overview]
Message-ID: <20191121080451.GA617@kadam> (raw)

[-- 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

             reply	other threads:[~2019-11-21  8:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-21  8:04 Dan Carpenter [this message]
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
     [not found] <a8c4bec3-4108-d460-3766-eb5548d5f878@quantenna.com>
2019-11-21 18:54 ` Dan Carpenter
2019-11-21 18:54   ` Dan Carpenter

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=20191121080451.GA617@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.