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
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org