net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces)
From: kernel test robot
Date: Sat Aug 20 2022 - 22:03:44 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 15b3f48a4339e3c16acf18624e2b7f60bc5e9a2c
commit: 93a4fa622eb061f75f87f0cf9609ab4e69c67d01 LoongArch: Add STACKTRACE support
date: 9 days ago
config: loongarch-randconfig-s041-20220821 (https://download.01.org/0day-ci/archive/20220821/202208211002.gDoRlLLU-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=93a4fa622eb061f75f87f0cf9609ab4e69c67d01
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 93a4fa622eb061f75f87f0cf9609ab4e69c67d01
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=loongarch SHELL=/bin/bash net/core/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
sparse warnings: (new ones prefixed by >>)
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got unsigned int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got unsigned int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got unsigned int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got unsigned int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got int [noderef] __percpu *
>> net/core/netpoll.c:317:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
net/core/netpoll.c:317:9: sparse: expected void *ptr
net/core/netpoll.c:317:9: sparse: got int [noderef] __percpu *
net/core/netpoll.c:348:25: sparse: sparse: context imbalance in '__netpoll_send_skb' - different lock contexts for basic block
vim +317 net/core/netpoll.c
bea3348eef27e6 Stephen Hemminger 2007-10-03 307
2899656b494dcd Amerigo Wang 2012-08-10 308 /* call with IRQ disabled */
1ddabdfaf70c20 Eric Dumazet 2020-05-07 309 static netdev_tx_t __netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
^1da177e4c3f41 Linus Torvalds 2005-04-16 310 {
a54776f2c4939b Yunjian Wang 2020-04-29 311 netdev_tx_t status = NETDEV_TX_BUSY;
307f660d056b5e Eric Dumazet 2020-05-07 312 struct net_device *dev;
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 313 unsigned long tries;
de85d99eb7b595 Herbert Xu 2010-06-10 314 /* It is up to the caller to keep npinfo alive. */
2899656b494dcd Amerigo Wang 2012-08-10 315 struct netpoll_info *npinfo;
f0d3459d072278 Matt Mackall 2005-08-11 316
af0733937317e1 Frederic Weisbecker 2017-11-06 @317 lockdep_assert_irqs_disabled();
2899656b494dcd Amerigo Wang 2012-08-10 318
307f660d056b5e Eric Dumazet 2020-05-07 319 dev = np->dev;
307f660d056b5e Eric Dumazet 2020-05-07 320 npinfo = rcu_dereference_bh(dev->npinfo);
307f660d056b5e Eric Dumazet 2020-05-07 321
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 322 if (!npinfo || !netif_running(dev) || !netif_device_present(dev)) {
080b3c19a4ffe4 Eric W. Biederman 2014-03-27 323 dev_kfree_skb_irq(skb);
1ddabdfaf70c20 Eric Dumazet 2020-05-07 324 return NET_XMIT_DROP;
^1da177e4c3f41 Linus Torvalds 2005-04-16 325 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 326
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 327 /* don't get messages out of order, and no recursion */
bea3348eef27e6 Stephen Hemminger 2007-10-03 328 if (skb_queue_len(&npinfo->txq) == 0 && !netpoll_owner_active(dev)) {
fd2ea0a79faad8 David S. Miller 2008-07-17 329 struct netdev_queue *txq;
a49f99ffca57a2 Andrew Morton 2006-12-11 330
4bd97d51a5e602 Paolo Abeni 2019-03-20 331 txq = netdev_core_pick_tx(dev, skb, NULL);
fd2ea0a79faad8 David S. Miller 2008-07-17 332
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 333 /* try until next clock tick */
e37b8d931936f8 Andrew Morton 2006-12-09 334 for (tries = jiffies_to_usecs(1)/USEC_PER_POLL;
e37b8d931936f8 Andrew Morton 2006-12-09 335 tries > 0; --tries) {
5efeac44cfca62 Eric W. Biederman 2014-03-27 336 if (HARD_TX_TRYLOCK(dev, txq)) {
944e294857033d Eric W. Biederman 2014-03-27 337 if (!netif_xmit_stopped(txq))
944e294857033d Eric W. Biederman 2014-03-27 338 status = netpoll_start_xmit(skb, dev, txq);
689971b4461388 Amerigo Wang 2012-08-10 339
5efeac44cfca62 Eric W. Biederman 2014-03-27 340 HARD_TX_UNLOCK(dev, txq);
^1da177e4c3f41 Linus Torvalds 2005-04-16 341
2c1644cf6d46a8 Feng Sun 2019-08-26 342 if (dev_xmit_complete(status))
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 343 break;
8834807b43200b Jeremy Fitzhardinge 2006-06-26 344
0db3dc73f7a3a7 Stephen Hemminger 2007-06-27 345 }
0db3dc73f7a3a7 Stephen Hemminger 2007-06-27 346
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 347 /* tickle device maybe there is some cleanup */
2a49e001cbe3eb Joe Perches 2011-06-30 348 netpoll_poll_dev(np->dev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 349
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 350 udelay(USEC_PER_POLL);
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 351 }
79b1bee888d43b Dongdong Deng 2009-08-21 352
79b1bee888d43b Dongdong Deng 2009-08-21 353 WARN_ONCE(!irqs_disabled(),
d75f773c86a2b8 Sakari Ailus 2019-03-25 354 "netpoll_send_skb_on_dev(): %s enabled interrupts in poll (%pS)\n",
944e294857033d Eric W. Biederman 2014-03-27 355 dev->name, dev->netdev_ops->ndo_start_xmit);
79b1bee888d43b Dongdong Deng 2009-08-21 356
e37b8d931936f8 Andrew Morton 2006-12-09 357 }
f0d3459d072278 Matt Mackall 2005-08-11 358
2c1644cf6d46a8 Feng Sun 2019-08-26 359 if (!dev_xmit_complete(status)) {
5de4a473bda495 Stephen Hemminger 2006-10-26 360 skb_queue_tail(&npinfo->txq, skb);
4c1ac1b49122b8 David Howells 2006-12-05 361 schedule_delayed_work(&npinfo->tx_work,0);
2bdfe0baeca0e2 Stephen Hemminger 2006-10-26 362 }
1ddabdfaf70c20 Eric Dumazet 2020-05-07 363 return NETDEV_TX_OK;
^1da177e4c3f41 Linus Torvalds 2005-04-16 364 }
fb1eee476b0d3b Eric Dumazet 2020-05-07 365
:::::: The code at line 317 was first introduced by commit
:::::: af0733937317e1e03b60f3af8cf9cd59d665593c netpoll: Use lockdep to assert IRQs are disabled/enabled
:::::: TO: Frederic Weisbecker <frederic@xxxxxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://01.org/lkp