From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
Date: Tue, 18 Jan 2022 19:13:25 +0800 [thread overview]
Message-ID: <202201181515.OPFOFmFA-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6193 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Cai Huoqing <caihuoqing@baidu.com>
Hi Cai,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0c947b893d69231a9add855939da7c66237ab44f
commit: fbcf8a340150abd20bf44fc706362b0827157fe8 net: ethernet: actions: Add helper dependency on COMPILE_TEST
date: 5 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 5 months ago
config: openrisc-randconfig-m031-20220117 (https://download.01.org/0day-ci/archive/20220118/202201181515.OPFOFmFA-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
drivers/net/ethernet/actions/owl-emac.c:233 owl_emac_ring_prepare_tx() error: potentially dereferencing uninitialized 'desc'.
vim +/desc +210 drivers/net/ethernet/actions/owl-emac.c
de6e0b19823985 Cristian Ciocaltea 2021-03-22 178
de6e0b19823985 Cristian Ciocaltea 2021-03-22 179 static int owl_emac_ring_prepare_rx(struct owl_emac_priv *priv)
de6e0b19823985 Cristian Ciocaltea 2021-03-22 180 {
de6e0b19823985 Cristian Ciocaltea 2021-03-22 181 struct owl_emac_ring *ring = &priv->rx_ring;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 182 struct device *dev = owl_emac_get_dev(priv);
de6e0b19823985 Cristian Ciocaltea 2021-03-22 183 struct net_device *netdev = priv->netdev;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 184 struct owl_emac_ring_desc *desc;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 185 struct sk_buff *skb;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 186 dma_addr_t dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 187 int i;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 188
de6e0b19823985 Cristian Ciocaltea 2021-03-22 189 for (i = 0; i < ring->size; i++) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22 190 skb = owl_emac_alloc_skb(netdev);
de6e0b19823985 Cristian Ciocaltea 2021-03-22 191 if (!skb)
de6e0b19823985 Cristian Ciocaltea 2021-03-22 192 return -ENOMEM;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 193
de6e0b19823985 Cristian Ciocaltea 2021-03-22 194 dma_addr = owl_emac_dma_map_rx(priv, skb);
de6e0b19823985 Cristian Ciocaltea 2021-03-22 195 if (dma_mapping_error(dev, dma_addr)) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22 196 dev_kfree_skb(skb);
de6e0b19823985 Cristian Ciocaltea 2021-03-22 197 return -ENOMEM;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 198 }
de6e0b19823985 Cristian Ciocaltea 2021-03-22 199
de6e0b19823985 Cristian Ciocaltea 2021-03-22 200 desc = &ring->descs[i];
de6e0b19823985 Cristian Ciocaltea 2021-03-22 201 desc->status = OWL_EMAC_BIT_RDES0_OWN;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 202 desc->control = skb_tailroom(skb) & OWL_EMAC_MSK_RDES1_RBS1;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 203 desc->buf_addr = dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 204 desc->reserved = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 205
de6e0b19823985 Cristian Ciocaltea 2021-03-22 206 ring->skbs[i] = skb;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 207 ring->skbs_dma[i] = dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 208 }
de6e0b19823985 Cristian Ciocaltea 2021-03-22 209
de6e0b19823985 Cristian Ciocaltea 2021-03-22 @210 desc->control |= OWL_EMAC_BIT_RDES1_RER;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 211
de6e0b19823985 Cristian Ciocaltea 2021-03-22 212 ring->head = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 213 ring->tail = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 214
de6e0b19823985 Cristian Ciocaltea 2021-03-22 215 return 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 216 }
de6e0b19823985 Cristian Ciocaltea 2021-03-22 217
de6e0b19823985 Cristian Ciocaltea 2021-03-22 218 static void owl_emac_ring_prepare_tx(struct owl_emac_priv *priv)
de6e0b19823985 Cristian Ciocaltea 2021-03-22 219 {
de6e0b19823985 Cristian Ciocaltea 2021-03-22 220 struct owl_emac_ring *ring = &priv->tx_ring;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 221 struct owl_emac_ring_desc *desc;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 222 int i;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 223
de6e0b19823985 Cristian Ciocaltea 2021-03-22 224 for (i = 0; i < ring->size; i++) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22 225 desc = &ring->descs[i];
de6e0b19823985 Cristian Ciocaltea 2021-03-22 226
de6e0b19823985 Cristian Ciocaltea 2021-03-22 227 desc->status = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 228 desc->control = OWL_EMAC_BIT_TDES1_IC;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 229 desc->buf_addr = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 230 desc->reserved = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 231 }
de6e0b19823985 Cristian Ciocaltea 2021-03-22 232
de6e0b19823985 Cristian Ciocaltea 2021-03-22 @233 desc->control |= OWL_EMAC_BIT_TDES1_TER;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 234
de6e0b19823985 Cristian Ciocaltea 2021-03-22 235 memset(ring->skbs_dma, 0, sizeof(dma_addr_t) * ring->size);
de6e0b19823985 Cristian Ciocaltea 2021-03-22 236
de6e0b19823985 Cristian Ciocaltea 2021-03-22 237 ring->head = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 238 ring->tail = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22 239 }
de6e0b19823985 Cristian Ciocaltea 2021-03-22 240
:::::: The code at line 210 was first introduced by commit
:::::: de6e0b198239857943db395377dc1d2ddd6c05df net: ethernet: actions: Add Actions Semi Owl Ethernet MAC driver
:::::: TO: Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-18 11:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-18 11:13 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-08-06 17:45 drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc' kernel test robot
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=202201181515.OPFOFmFA-lkp@intel.com \
--to=lkp@intel.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.