Re: [PATCH net] igmp: convert struct ip_sf_list to RCU
From: kernel test robot <hidden>
Date: 2026-08-27 08:13:53
Also in:
oe-kbuild-all
Hi Eric, kernel test robot noticed the following build warnings: [auto build test WARNING on net/main] url: https://github.com/intel-lab-lkp/linux/commits/Eric-Dumazet/igmp-convert-struct-ip_sf_list-to-RCU/20260826-115913 base: net/main patch link: https://lore.kernel.org/r/20260826115913.3381537-1-edumazet%40google.com patch subject: [PATCH net] igmp: convert struct ip_sf_list to RCU config: i386-randconfig-062-20260827 (https://download.01.org/0day-ci/archive/20260827/202608271655.mXCyurGJ-lkp@intel.com/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260827/202608271655.mXCyurGJ-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot [off-list ref] | Closes: https://lore.kernel.org/oe-kbuild-all/202608271655.mXCyurGJ-lkp@intel.com/ (local) sparse warnings: (new ones prefixed by >>) net/ipv4/igmp.c: note: in included file (through include/linux/igmp.h): include/uapi/linux/igmp.h:60:32: sparse: sparse: array of flexible structures
quoted
net/ipv4/igmp.c:3114:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ip_sf_list *psf @@ got struct ip_sf_list [noderef] __rcu *sf_next @@
net/ipv4/igmp.c:3114:13: sparse: expected struct ip_sf_list *psf net/ipv4/igmp.c:3114:13: sparse: got struct ip_sf_list [noderef] __rcu *sf_next
quoted
net/ipv4/igmp.c:3130:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ip_sf_list *psf @@ got struct ip_sf_list [noderef] __rcu *sources @@
net/ipv4/igmp.c:3130:21: sparse: expected struct ip_sf_list *psf
net/ipv4/igmp.c:3130:21: sparse: got struct ip_sf_list [noderef] __rcu *sources
net/ipv4/igmp.c:3098:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ip_sf_list *psf @@ got struct ip_sf_list [noderef] __rcu *sources @@
net/ipv4/igmp.c:3098:29: sparse: expected struct ip_sf_list *psf
net/ipv4/igmp.c:3098:29: sparse: got struct ip_sf_list [noderef] __rcu *sources
net/ipv4/igmp.c:3098:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ip_sf_list *psf @@ got struct ip_sf_list [noderef] __rcu *sources @@
net/ipv4/igmp.c:3098:29: sparse: expected struct ip_sf_list *psf
net/ipv4/igmp.c:3098:29: sparse: got struct ip_sf_list [noderef] __rcu *sources
vim +3114 net/ipv4/igmp.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 3109
^1da177e4c3f41 Linus Torvalds 2005-04-16 3110 static struct ip_sf_list *igmp_mcf_get_next(struct seq_file *seq, struct ip_sf_list *psf)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3111 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3112 struct igmp_mcf_iter_state *state = igmp_mcf_seq_private(seq);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3113
^1da177e4c3f41 Linus Torvalds 2005-04-16 @3114 psf = psf->sf_next;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3115 while (!psf) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3116 spin_unlock_bh(&state->im->lock);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3117 state->im = state->im->next;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3118 while (!state->im) {
6baff15037693c Eric Dumazet 2009-11-11 3119 state->dev = next_net_device_rcu(state->dev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3120 if (!state->dev) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3121 state->idev = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3122 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3123 }
6baff15037693c Eric Dumazet 2009-11-11 3124 state->idev = __in_dev_get_rcu(state->dev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3125 if (!state->idev)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3126 continue;
1d7138de878d1d Eric Dumazet 2010-11-12 3127 state->im = rcu_dereference(state->idev->mc_list);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3128 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3129 spin_lock_bh(&state->im->lock);
^1da177e4c3f41 Linus Torvalds 2005-04-16 @3130 psf = state->im->sources;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3131 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3132 out:
^1da177e4c3f41 Linus Torvalds 2005-04-16 3133 return psf;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3134 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3135
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki