Thread (3 messages) flat view 3 messages, 2 authors, 17d ago

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help