All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 10504/14131] net/ipv6/mcast.c:606:34: sparse: expected void [noderef] <asn:1> *to
@ 2020-06-01 12:29 kbuild test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kbuild test robot @ 2020-06-01 12:29 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8685 bytes --]

CC: kbuild-all(a)lists.01.org
TO: "Al, Viro," <viro@zeniv.linux.org.uk>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 931ca7ab7fe804d77bc6952f1512950c0d870f26 [10504/14131] ip*_mc_gsfget(): lift copyout of struct group_filter into callers
:::::: branch date: 3 days ago
:::::: commit date: 12 days ago
config: microblaze-randconfig-s032-20200601 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 931ca7ab7fe804d77bc6952f1512950c0d870f26
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=microblaze CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

   include/linux/byteorder/big_endian.h:8:2: sparse: sparse: inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
   net/ipv6/mcast.c:606:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got struct __kernel_sockaddr_storage *p @@
>> net/ipv6/mcast.c:606:34: sparse:     expected void [noderef] <asn:1> *to
   net/ipv6/mcast.c:606:34: sparse:     got struct __kernel_sockaddr_storage *p
   net/ipv6/mcast.c:549:5: sparse: sparse: symbol 'ip6_mc_msfget' redeclared with different type (incompatible argument 3 (different address spaces)):
   net/ipv6/mcast.c:549:5: sparse:    int extern [addressable] [signed] [toplevel] ip6_mc_msfget( ... )
>> include/net/ipv6.h:1140:5: sparse: note: previously declared as:
   include/net/ipv6.h:1140:5: sparse:    int extern [addressable] [signed] [toplevel] ip6_mc_msfget( ... )
   net/ipv6/mcast.c:259:25: sparse: sparse: context imbalance in 'ip6_mc_find_dev_rcu' - different lock contexts for basic block
   net/ipv6/mcast.c:453:9: sparse: sparse: context imbalance in 'ip6_mc_source' - unexpected unlock
   net/ipv6/mcast.c:542:9: sparse: sparse: context imbalance in 'ip6_mc_msfilter' - unexpected unlock
   net/ipv6/mcast.c:589:21: sparse: sparse: context imbalance in 'ip6_mc_msfget' - unexpected unlock
   net/ipv6/mcast.c:2700:25: sparse: sparse: context imbalance in 'igmp6_mc_get_next' - unexpected unlock
   net/ipv6/mcast.c:2722:9: sparse: sparse: context imbalance in 'igmp6_mc_get_idx' - wrong count at exit
   net/ipv6/mcast.c:2749:9: sparse: sparse: context imbalance in 'igmp6_mc_seq_stop' - unexpected unlock
   net/ipv6/mcast.c:2821:31: sparse: sparse: context imbalance in 'igmp6_mcf_get_next' - unexpected unlock
   net/ipv6/mcast.c:2853:9: sparse: sparse: context imbalance in 'igmp6_mcf_get_idx' - wrong count at exit
   net/ipv6/mcast.c:2870:9: sparse: sparse: context imbalance in 'igmp6_mcf_seq_next' - wrong count at exit
   net/ipv6/mcast.c:2883:17: sparse: sparse: context imbalance in 'igmp6_mcf_seq_stop' - unexpected unlock

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=931ca7ab7fe804d77bc6952f1512950c0d870f26
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 931ca7ab7fe804d77bc6952f1512950c0d870f26
vim +606 net/ipv6/mcast.c

^1da177e4c3f41 Linus Torvalds    2005-04-16  548  
^1da177e4c3f41 Linus Torvalds    2005-04-16  549  int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
931ca7ab7fe804 Al Viro           2020-03-29  550  	struct sockaddr_storage *p)
^1da177e4c3f41 Linus Torvalds    2005-04-16  551  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  552  	int err, i, count, copycount;
b71d1d426d263b Eric Dumazet      2011-04-22  553  	const struct in6_addr *group;
^1da177e4c3f41 Linus Torvalds    2005-04-16  554  	struct ipv6_mc_socklist *pmc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  555  	struct inet6_dev *idev;
^1da177e4c3f41 Linus Torvalds    2005-04-16  556  	struct ipv6_pinfo *inet6 = inet6_sk(sk);
^1da177e4c3f41 Linus Torvalds    2005-04-16  557  	struct ip6_sf_socklist *psl;
3b1e0a655f8eba YOSHIFUJI Hideaki 2008-03-26  558  	struct net *net = sock_net(sk);
^1da177e4c3f41 Linus Torvalds    2005-04-16  559  
^1da177e4c3f41 Linus Torvalds    2005-04-16  560  	group = &((struct sockaddr_in6 *)&gsf->gf_group)->sin6_addr;
^1da177e4c3f41 Linus Torvalds    2005-04-16  561  
^1da177e4c3f41 Linus Torvalds    2005-04-16  562  	if (!ipv6_addr_is_multicast(group))
^1da177e4c3f41 Linus Torvalds    2005-04-16  563  		return -EINVAL;
^1da177e4c3f41 Linus Torvalds    2005-04-16  564  
96b52e61be1ad4 Eric Dumazet      2010-06-07  565  	rcu_read_lock();
96b52e61be1ad4 Eric Dumazet      2010-06-07  566  	idev = ip6_mc_find_dev_rcu(net, group, gsf->gf_interface);
^1da177e4c3f41 Linus Torvalds    2005-04-16  567  
96b52e61be1ad4 Eric Dumazet      2010-06-07  568  	if (!idev) {
96b52e61be1ad4 Eric Dumazet      2010-06-07  569  		rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  570  		return -ENODEV;
96b52e61be1ad4 Eric Dumazet      2010-06-07  571  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  572  
^1da177e4c3f41 Linus Torvalds    2005-04-16  573  	err = -EADDRNOTAVAIL;
f7ed925c1b4d62 WANG Cong         2014-09-11  574  	/* changes to the ipv6_mc_list require the socket lock and
f7ed925c1b4d62 WANG Cong         2014-09-11  575  	 * rtnl lock. We have the socket lock and rcu read lock,
5ab4a6c81eb3db David L Stevens   2005-12-27  576  	 * so reading the list is safe.
5ab4a6c81eb3db David L Stevens   2005-12-27  577  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  578  
456b61bca8ee32 Eric Dumazet      2010-11-23  579  	for_each_pmc_rcu(inet6, pmc) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  580  		if (pmc->ifindex != gsf->gf_interface)
^1da177e4c3f41 Linus Torvalds    2005-04-16  581  			continue;
^1da177e4c3f41 Linus Torvalds    2005-04-16  582  		if (ipv6_addr_equal(group, &pmc->addr))
^1da177e4c3f41 Linus Torvalds    2005-04-16  583  			break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  584  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  585  	if (!pmc)		/* must have a prior join */
^1da177e4c3f41 Linus Torvalds    2005-04-16  586  		goto done;
^1da177e4c3f41 Linus Torvalds    2005-04-16  587  	gsf->gf_fmode = pmc->sfmode;
^1da177e4c3f41 Linus Torvalds    2005-04-16  588  	psl = pmc->sflist;
^1da177e4c3f41 Linus Torvalds    2005-04-16  589  	count = psl ? psl->sl_count : 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  590  	read_unlock_bh(&idev->lock);
96b52e61be1ad4 Eric Dumazet      2010-06-07  591  	rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  592  
^1da177e4c3f41 Linus Torvalds    2005-04-16  593  	copycount = count < gsf->gf_numsrc ? count : gsf->gf_numsrc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  594  	gsf->gf_numsrc = count;
f7ed925c1b4d62 WANG Cong         2014-09-11  595  	/* changes to psl require the socket lock, and a write lock
f7ed925c1b4d62 WANG Cong         2014-09-11  596  	 * on pmc->sflock. We have the socket lock so reading here is safe.
5ab4a6c81eb3db David L Stevens   2005-12-27  597  	 */
931ca7ab7fe804 Al Viro           2020-03-29  598  	for (i = 0; i < copycount; i++, p++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  599  		struct sockaddr_in6 *psin6;
^1da177e4c3f41 Linus Torvalds    2005-04-16  600  		struct sockaddr_storage ss;
^1da177e4c3f41 Linus Torvalds    2005-04-16  601  
^1da177e4c3f41 Linus Torvalds    2005-04-16  602  		psin6 = (struct sockaddr_in6 *)&ss;
^1da177e4c3f41 Linus Torvalds    2005-04-16  603  		memset(&ss, 0, sizeof(ss));
^1da177e4c3f41 Linus Torvalds    2005-04-16  604  		psin6->sin6_family = AF_INET6;
^1da177e4c3f41 Linus Torvalds    2005-04-16  605  		psin6->sin6_addr = psl->sl_addr[i];
931ca7ab7fe804 Al Viro           2020-03-29 @606  		if (copy_to_user(p, &ss, sizeof(ss)))
^1da177e4c3f41 Linus Torvalds    2005-04-16  607  			return -EFAULT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  608  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  609  	return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  610  done:
^1da177e4c3f41 Linus Torvalds    2005-04-16  611  	read_unlock_bh(&idev->lock);
96b52e61be1ad4 Eric Dumazet      2010-06-07  612  	rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  613  	return err;
^1da177e4c3f41 Linus Torvalds    2005-04-16  614  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  615  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25346 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [linux-next:master 10504/14131] net/ipv6/mcast.c:606:34: sparse: expected void [noderef] <asn:1> *to
@ 2020-06-09 15:08 kbuild test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kbuild test robot @ 2020-06-09 15:08 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 8609 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 931ca7ab7fe804d77bc6952f1512950c0d870f26 [10504/14131] ip*_mc_gsfget(): lift copyout of struct group_filter into callers
:::::: branch date: 3 days ago
:::::: commit date: 12 days ago
config: microblaze-randconfig-s032-20200601 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 931ca7ab7fe804d77bc6952f1512950c0d870f26
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=microblaze CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

   include/linux/byteorder/big_endian.h:8:2: sparse: sparse: inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
   net/ipv6/mcast.c:606:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] <asn:1> *to @@     got struct __kernel_sockaddr_storage *p @@
>> net/ipv6/mcast.c:606:34: sparse:     expected void [noderef] <asn:1> *to
   net/ipv6/mcast.c:606:34: sparse:     got struct __kernel_sockaddr_storage *p
   net/ipv6/mcast.c:549:5: sparse: sparse: symbol 'ip6_mc_msfget' redeclared with different type (incompatible argument 3 (different address spaces)):
   net/ipv6/mcast.c:549:5: sparse:    int extern [addressable] [signed] [toplevel] ip6_mc_msfget( ... )
>> include/net/ipv6.h:1140:5: sparse: note: previously declared as:
   include/net/ipv6.h:1140:5: sparse:    int extern [addressable] [signed] [toplevel] ip6_mc_msfget( ... )
   net/ipv6/mcast.c:259:25: sparse: sparse: context imbalance in 'ip6_mc_find_dev_rcu' - different lock contexts for basic block
   net/ipv6/mcast.c:453:9: sparse: sparse: context imbalance in 'ip6_mc_source' - unexpected unlock
   net/ipv6/mcast.c:542:9: sparse: sparse: context imbalance in 'ip6_mc_msfilter' - unexpected unlock
   net/ipv6/mcast.c:589:21: sparse: sparse: context imbalance in 'ip6_mc_msfget' - unexpected unlock
   net/ipv6/mcast.c:2700:25: sparse: sparse: context imbalance in 'igmp6_mc_get_next' - unexpected unlock
   net/ipv6/mcast.c:2722:9: sparse: sparse: context imbalance in 'igmp6_mc_get_idx' - wrong count at exit
   net/ipv6/mcast.c:2749:9: sparse: sparse: context imbalance in 'igmp6_mc_seq_stop' - unexpected unlock
   net/ipv6/mcast.c:2821:31: sparse: sparse: context imbalance in 'igmp6_mcf_get_next' - unexpected unlock
   net/ipv6/mcast.c:2853:9: sparse: sparse: context imbalance in 'igmp6_mcf_get_idx' - wrong count at exit
   net/ipv6/mcast.c:2870:9: sparse: sparse: context imbalance in 'igmp6_mcf_seq_next' - wrong count at exit
   net/ipv6/mcast.c:2883:17: sparse: sparse: context imbalance in 'igmp6_mcf_seq_stop' - unexpected unlock

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=931ca7ab7fe804d77bc6952f1512950c0d870f26
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 931ca7ab7fe804d77bc6952f1512950c0d870f26
vim +606 net/ipv6/mcast.c

^1da177e4c3f41 Linus Torvalds    2005-04-16  548  
^1da177e4c3f41 Linus Torvalds    2005-04-16  549  int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
931ca7ab7fe804 Al Viro           2020-03-29  550  	struct sockaddr_storage *p)
^1da177e4c3f41 Linus Torvalds    2005-04-16  551  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  552  	int err, i, count, copycount;
b71d1d426d263b Eric Dumazet      2011-04-22  553  	const struct in6_addr *group;
^1da177e4c3f41 Linus Torvalds    2005-04-16  554  	struct ipv6_mc_socklist *pmc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  555  	struct inet6_dev *idev;
^1da177e4c3f41 Linus Torvalds    2005-04-16  556  	struct ipv6_pinfo *inet6 = inet6_sk(sk);
^1da177e4c3f41 Linus Torvalds    2005-04-16  557  	struct ip6_sf_socklist *psl;
3b1e0a655f8eba YOSHIFUJI Hideaki 2008-03-26  558  	struct net *net = sock_net(sk);
^1da177e4c3f41 Linus Torvalds    2005-04-16  559  
^1da177e4c3f41 Linus Torvalds    2005-04-16  560  	group = &((struct sockaddr_in6 *)&gsf->gf_group)->sin6_addr;
^1da177e4c3f41 Linus Torvalds    2005-04-16  561  
^1da177e4c3f41 Linus Torvalds    2005-04-16  562  	if (!ipv6_addr_is_multicast(group))
^1da177e4c3f41 Linus Torvalds    2005-04-16  563  		return -EINVAL;
^1da177e4c3f41 Linus Torvalds    2005-04-16  564  
96b52e61be1ad4 Eric Dumazet      2010-06-07  565  	rcu_read_lock();
96b52e61be1ad4 Eric Dumazet      2010-06-07  566  	idev = ip6_mc_find_dev_rcu(net, group, gsf->gf_interface);
^1da177e4c3f41 Linus Torvalds    2005-04-16  567  
96b52e61be1ad4 Eric Dumazet      2010-06-07  568  	if (!idev) {
96b52e61be1ad4 Eric Dumazet      2010-06-07  569  		rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  570  		return -ENODEV;
96b52e61be1ad4 Eric Dumazet      2010-06-07  571  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  572  
^1da177e4c3f41 Linus Torvalds    2005-04-16  573  	err = -EADDRNOTAVAIL;
f7ed925c1b4d62 WANG Cong         2014-09-11  574  	/* changes to the ipv6_mc_list require the socket lock and
f7ed925c1b4d62 WANG Cong         2014-09-11  575  	 * rtnl lock. We have the socket lock and rcu read lock,
5ab4a6c81eb3db David L Stevens   2005-12-27  576  	 * so reading the list is safe.
5ab4a6c81eb3db David L Stevens   2005-12-27  577  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  578  
456b61bca8ee32 Eric Dumazet      2010-11-23  579  	for_each_pmc_rcu(inet6, pmc) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  580  		if (pmc->ifindex != gsf->gf_interface)
^1da177e4c3f41 Linus Torvalds    2005-04-16  581  			continue;
^1da177e4c3f41 Linus Torvalds    2005-04-16  582  		if (ipv6_addr_equal(group, &pmc->addr))
^1da177e4c3f41 Linus Torvalds    2005-04-16  583  			break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  584  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  585  	if (!pmc)		/* must have a prior join */
^1da177e4c3f41 Linus Torvalds    2005-04-16  586  		goto done;
^1da177e4c3f41 Linus Torvalds    2005-04-16  587  	gsf->gf_fmode = pmc->sfmode;
^1da177e4c3f41 Linus Torvalds    2005-04-16  588  	psl = pmc->sflist;
^1da177e4c3f41 Linus Torvalds    2005-04-16  589  	count = psl ? psl->sl_count : 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  590  	read_unlock_bh(&idev->lock);
96b52e61be1ad4 Eric Dumazet      2010-06-07  591  	rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  592  
^1da177e4c3f41 Linus Torvalds    2005-04-16  593  	copycount = count < gsf->gf_numsrc ? count : gsf->gf_numsrc;
^1da177e4c3f41 Linus Torvalds    2005-04-16  594  	gsf->gf_numsrc = count;
f7ed925c1b4d62 WANG Cong         2014-09-11  595  	/* changes to psl require the socket lock, and a write lock
f7ed925c1b4d62 WANG Cong         2014-09-11  596  	 * on pmc->sflock. We have the socket lock so reading here is safe.
5ab4a6c81eb3db David L Stevens   2005-12-27  597  	 */
931ca7ab7fe804 Al Viro           2020-03-29  598  	for (i = 0; i < copycount; i++, p++) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  599  		struct sockaddr_in6 *psin6;
^1da177e4c3f41 Linus Torvalds    2005-04-16  600  		struct sockaddr_storage ss;
^1da177e4c3f41 Linus Torvalds    2005-04-16  601  
^1da177e4c3f41 Linus Torvalds    2005-04-16  602  		psin6 = (struct sockaddr_in6 *)&ss;
^1da177e4c3f41 Linus Torvalds    2005-04-16  603  		memset(&ss, 0, sizeof(ss));
^1da177e4c3f41 Linus Torvalds    2005-04-16  604  		psin6->sin6_family = AF_INET6;
^1da177e4c3f41 Linus Torvalds    2005-04-16  605  		psin6->sin6_addr = psl->sl_addr[i];
931ca7ab7fe804 Al Viro           2020-03-29 @606  		if (copy_to_user(p, &ss, sizeof(ss)))
^1da177e4c3f41 Linus Torvalds    2005-04-16  607  			return -EFAULT;
^1da177e4c3f41 Linus Torvalds    2005-04-16  608  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  609  	return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  610  done:
^1da177e4c3f41 Linus Torvalds    2005-04-16  611  	read_unlock_bh(&idev->lock);
96b52e61be1ad4 Eric Dumazet      2010-06-07  612  	rcu_read_unlock();
^1da177e4c3f41 Linus Torvalds    2005-04-16  613  	return err;
^1da177e4c3f41 Linus Torvalds    2005-04-16  614  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  615  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25346 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-06-09 15:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01 12:29 [linux-next:master 10504/14131] net/ipv6/mcast.c:606:34: sparse: expected void [noderef] <asn:1> *to kbuild test robot
2020-06-09 15:08 kbuild test robot

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.