BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Haijun Liu <[email protected]>
CC: Chandrashekar Devegowda <[email protected]>
CC: Ricardo Martinez <[email protected]>
CC: Loic Poulain <[email protected]>
CC: Sergey Ryazanov <[email protected]>
CC: "Ilpo Järvinen" <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   568035b01cfb107af8d2e4bd2fb9aea22cf5b868
commit: d642b012df70a76dd5723f2d426b40bffe83ac49 net: wwan: t7xx: Add data path 
interface
date:   3 months ago
:::::: branch date: 2 hours ago
:::::: commit date: 3 months ago
config: parisc-randconfig-m031-20220807 
(https://download.01.org/0day-ci/archive/20220815/[email protected]/config)
compiler: hppa-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c:127 t7xx_dpmaif_release_tx_buffer() 
error: potentially dereferencing uninitialized 'cur_drb'.

vim +/cur_drb +127 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c

d642b012df70a7 Haijun Liu 2022-05-06   78  
d642b012df70a7 Haijun Liu 2022-05-06   79  static unsigned int 
t7xx_dpmaif_release_tx_buffer(struct dpmaif_ctrl *dpmaif_ctrl,
d642b012df70a7 Haijun Liu 2022-05-06   80                                       
          unsigned int q_num, unsigned int release_cnt)
d642b012df70a7 Haijun Liu 2022-05-06   81  {
d642b012df70a7 Haijun Liu 2022-05-06   82       struct dpmaif_tx_queue *txq = 
&dpmaif_ctrl->txq[q_num];
d642b012df70a7 Haijun Liu 2022-05-06   83       struct dpmaif_callbacks *cb = 
dpmaif_ctrl->callbacks;
d642b012df70a7 Haijun Liu 2022-05-06   84       struct dpmaif_drb_skb 
*cur_drb_skb, *drb_skb_base;
d642b012df70a7 Haijun Liu 2022-05-06   85       struct dpmaif_drb *cur_drb, 
*drb_base;
d642b012df70a7 Haijun Liu 2022-05-06   86       unsigned int drb_cnt, i, 
cur_idx;
d642b012df70a7 Haijun Liu 2022-05-06   87       unsigned long flags;
d642b012df70a7 Haijun Liu 2022-05-06   88  
d642b012df70a7 Haijun Liu 2022-05-06   89       drb_skb_base = 
txq->drb_skb_base;
d642b012df70a7 Haijun Liu 2022-05-06   90       drb_base = txq->drb_base;
d642b012df70a7 Haijun Liu 2022-05-06   91  
d642b012df70a7 Haijun Liu 2022-05-06   92       
spin_lock_irqsave(&txq->tx_lock, flags);
d642b012df70a7 Haijun Liu 2022-05-06   93       drb_cnt = txq->drb_size_cnt;
d642b012df70a7 Haijun Liu 2022-05-06   94       cur_idx = 
txq->drb_release_rd_idx;
d642b012df70a7 Haijun Liu 2022-05-06   95       
spin_unlock_irqrestore(&txq->tx_lock, flags);
d642b012df70a7 Haijun Liu 2022-05-06   96  
d642b012df70a7 Haijun Liu 2022-05-06   97       for (i = 0; i < release_cnt; 
i++) {
d642b012df70a7 Haijun Liu 2022-05-06   98               cur_drb = drb_base + 
cur_idx;
d642b012df70a7 Haijun Liu 2022-05-06   99               if 
(FIELD_GET(DRB_HDR_DTYP, le32_to_cpu(cur_drb->header)) == DES_DTYP_PD) {
d642b012df70a7 Haijun Liu 2022-05-06  100                       cur_drb_skb = 
drb_skb_base + cur_idx;
d642b012df70a7 Haijun Liu 2022-05-06  101                       if 
(!cur_drb_skb->is_msg)
d642b012df70a7 Haijun Liu 2022-05-06  102                               
dma_unmap_single(dpmaif_ctrl->dev, cur_drb_skb->bus_addr,
d642b012df70a7 Haijun Liu 2022-05-06  103                                       
         cur_drb_skb->data_len, DMA_TO_DEVICE);
d642b012df70a7 Haijun Liu 2022-05-06  104  
d642b012df70a7 Haijun Liu 2022-05-06  105                       if 
(!FIELD_GET(DRB_HDR_CONT, le32_to_cpu(cur_drb->header))) {
d642b012df70a7 Haijun Liu 2022-05-06  106                               if 
(!cur_drb_skb->skb) {
d642b012df70a7 Haijun Liu 2022-05-06  107                                       
dev_err(dpmaif_ctrl->dev,
d642b012df70a7 Haijun Liu 2022-05-06  108                                       
        "txq%u: DRB check fail, invalid skb\n", q_num);
d642b012df70a7 Haijun Liu 2022-05-06  109                                       
continue;
d642b012df70a7 Haijun Liu 2022-05-06  110                               }
d642b012df70a7 Haijun Liu 2022-05-06  111  
d642b012df70a7 Haijun Liu 2022-05-06  112                               
dev_kfree_skb_any(cur_drb_skb->skb);
d642b012df70a7 Haijun Liu 2022-05-06  113                       }
d642b012df70a7 Haijun Liu 2022-05-06  114  
d642b012df70a7 Haijun Liu 2022-05-06  115                       
cur_drb_skb->skb = NULL;
d642b012df70a7 Haijun Liu 2022-05-06  116               }
d642b012df70a7 Haijun Liu 2022-05-06  117  
d642b012df70a7 Haijun Liu 2022-05-06  118               
spin_lock_irqsave(&txq->tx_lock, flags);
d642b012df70a7 Haijun Liu 2022-05-06  119               cur_idx = 
t7xx_ring_buf_get_next_wr_idx(drb_cnt, cur_idx);
d642b012df70a7 Haijun Liu 2022-05-06  120               txq->drb_release_rd_idx 
= cur_idx;
d642b012df70a7 Haijun Liu 2022-05-06  121               
spin_unlock_irqrestore(&txq->tx_lock, flags);
d642b012df70a7 Haijun Liu 2022-05-06  122  
d642b012df70a7 Haijun Liu 2022-05-06  123               if 
(atomic_inc_return(&txq->tx_budget) > txq->drb_size_cnt / 8)
d642b012df70a7 Haijun Liu 2022-05-06  124                       
cb->state_notify(dpmaif_ctrl->t7xx_dev, DMPAIF_TXQ_STATE_IRQ, txq->index);
d642b012df70a7 Haijun Liu 2022-05-06  125       }
d642b012df70a7 Haijun Liu 2022-05-06  126  
d642b012df70a7 Haijun Liu 2022-05-06 @127       if (FIELD_GET(DRB_HDR_CONT, 
le32_to_cpu(cur_drb->header)))
d642b012df70a7 Haijun Liu 2022-05-06  128               
dev_err(dpmaif_ctrl->dev, "txq%u: DRB not marked as the last one\n", q_num);
d642b012df70a7 Haijun Liu 2022-05-06  129  
d642b012df70a7 Haijun Liu 2022-05-06  130       return i;
d642b012df70a7 Haijun Liu 2022-05-06  131  }
d642b012df70a7 Haijun Liu 2022-05-06  132  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to