CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Shannon Nelson <snel...@pensando.io>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9050ba3a61a4b5bd84c2cde092a100404f814f31 commit: e75ccac1d0644c9d7ad531cb9a81c499930c06da ionic: use fewer inits on the buf_info struct date: 9 months ago :::::: branch date: 19 hours ago :::::: commit date: 9 months ago config: x86_64-randconfig-m001-20220502 (https://download.01.org/0day-ci/archive/20220503/202205032018.akbdypho-...@intel.com/config) compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> smatch warnings: drivers/net/ethernet/pensando/ionic/ionic_txrx.c:149 ionic_rx_frags() warn: variable dereferenced before check 'buf_info->page' (see line 137) vim +149 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 2b5720f2690857 Shannon Nelson 2021-03-10 118 08f2e4b2b2008c Shannon Nelson 2019-10-23 119 static struct sk_buff *ionic_rx_frags(struct ionic_queue *q, 08f2e4b2b2008c Shannon Nelson 2019-10-23 120 struct ionic_desc_info *desc_info, a25edab93b2877 Shannon Nelson 2021-03-10 121 struct ionic_rxq_comp *comp) 0f3154e6bcb354 Shannon Nelson 2019-09-03 122 { 89e572e7369fd9 Shannon Nelson 2021-03-10 123 struct net_device *netdev = q->lif->netdev; 4b0a7539a3728f Shannon Nelson 2021-03-10 124 struct ionic_buf_info *buf_info; 89e572e7369fd9 Shannon Nelson 2021-03-10 125 struct ionic_rx_stats *stats; f37bc3462e80d2 Shannon Nelson 2021-03-10 126 struct device *dev = q->dev; 08f2e4b2b2008c Shannon Nelson 2019-10-23 127 struct sk_buff *skb; 08f2e4b2b2008c Shannon Nelson 2019-10-23 128 unsigned int i; 08f2e4b2b2008c Shannon Nelson 2019-10-23 129 u16 frag_len; 08f2e4b2b2008c Shannon Nelson 2019-10-23 130 u16 len; 08f2e4b2b2008c Shannon Nelson 2019-10-23 131 89e572e7369fd9 Shannon Nelson 2021-03-10 132 stats = q_to_rx_stats(q); 89e572e7369fd9 Shannon Nelson 2021-03-10 133 4b0a7539a3728f Shannon Nelson 2021-03-10 134 buf_info = &desc_info->bufs[0]; 08f2e4b2b2008c Shannon Nelson 2019-10-23 135 len = le16_to_cpu(comp->len); 08f2e4b2b2008c Shannon Nelson 2019-10-23 136 e75ccac1d0644c Shannon Nelson 2021-07-27 @137 prefetchw(buf_info->page); 08f2e4b2b2008c Shannon Nelson 2019-10-23 138 89e572e7369fd9 Shannon Nelson 2021-03-10 139 skb = napi_get_frags(&q_to_qcq(q)->napi); 89e572e7369fd9 Shannon Nelson 2021-03-10 140 if (unlikely(!skb)) { 89e572e7369fd9 Shannon Nelson 2021-03-10 141 net_warn_ratelimited("%s: SKB alloc failed on %s!\n", 89e572e7369fd9 Shannon Nelson 2021-03-10 142 netdev->name, q->name); 89e572e7369fd9 Shannon Nelson 2021-03-10 143 stats->alloc_err++; 08f2e4b2b2008c Shannon Nelson 2019-10-23 144 return NULL; 89e572e7369fd9 Shannon Nelson 2021-03-10 145 } 08f2e4b2b2008c Shannon Nelson 2019-10-23 146 08f2e4b2b2008c Shannon Nelson 2019-10-23 147 i = comp->num_sg_elems + 1; 08f2e4b2b2008c Shannon Nelson 2019-10-23 148 do { 4b0a7539a3728f Shannon Nelson 2021-03-10 @149 if (unlikely(!buf_info->page)) { 08f2e4b2b2008c Shannon Nelson 2019-10-23 150 dev_kfree_skb(skb); 08f2e4b2b2008c Shannon Nelson 2019-10-23 151 return NULL; 0f3154e6bcb354 Shannon Nelson 2019-09-03 152 } 0f3154e6bcb354 Shannon Nelson 2019-09-03 153 4b0a7539a3728f Shannon Nelson 2021-03-10 154 frag_len = min_t(u16, len, IONIC_PAGE_SIZE - buf_info->page_offset); 08f2e4b2b2008c Shannon Nelson 2019-10-23 155 len -= frag_len; 08f2e4b2b2008c Shannon Nelson 2019-10-23 156 4b0a7539a3728f Shannon Nelson 2021-03-10 157 dma_sync_single_for_cpu(dev, 4b0a7539a3728f Shannon Nelson 2021-03-10 158 buf_info->dma_addr + buf_info->page_offset, 4b0a7539a3728f Shannon Nelson 2021-03-10 159 frag_len, DMA_FROM_DEVICE); 4b0a7539a3728f Shannon Nelson 2021-03-10 160 08f2e4b2b2008c Shannon Nelson 2019-10-23 161 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, 4b0a7539a3728f Shannon Nelson 2021-03-10 162 buf_info->page, buf_info->page_offset, frag_len, 4b0a7539a3728f Shannon Nelson 2021-03-10 163 IONIC_PAGE_SIZE); 4b0a7539a3728f Shannon Nelson 2021-03-10 164 4b0a7539a3728f Shannon Nelson 2021-03-10 165 if (!ionic_rx_buf_recycle(q, buf_info, frag_len)) { 4b0a7539a3728f Shannon Nelson 2021-03-10 166 dma_unmap_page(dev, buf_info->dma_addr, 4b0a7539a3728f Shannon Nelson 2021-03-10 167 IONIC_PAGE_SIZE, DMA_FROM_DEVICE); e75ccac1d0644c Shannon Nelson 2021-07-27 168 buf_info->page = NULL; 4b0a7539a3728f Shannon Nelson 2021-03-10 169 } 4b0a7539a3728f Shannon Nelson 2021-03-10 170 4b0a7539a3728f Shannon Nelson 2021-03-10 171 buf_info++; 4b0a7539a3728f Shannon Nelson 2021-03-10 172 08f2e4b2b2008c Shannon Nelson 2019-10-23 173 i--; 08f2e4b2b2008c Shannon Nelson 2019-10-23 174 } while (i > 0); 08f2e4b2b2008c Shannon Nelson 2019-10-23 175 08f2e4b2b2008c Shannon Nelson 2019-10-23 176 return skb; 0f3154e6bcb354 Shannon Nelson 2019-09-03 177 } 0f3154e6bcb354 Shannon Nelson 2019-09-03 178 :::::: The code at line 149 was first introduced by commit :::::: 4b0a7539a3728f0fd7a11087d64371e8c28b4723 ionic: implement Rx page reuse :::::: TO: Shannon Nelson <snel...@pensando.io> :::::: CC: David S. Miller <da...@davemloft.net> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org