CC: kbuild-...@lists.01.org
TO: "Al, Viro," <v...@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 <l...@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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to