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]
