lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <201809110554.tAsapepb%fengguang.wu@intel.com>
Date:   Tue, 11 Sep 2018 05:47:56 +0800
From:   kbuild test robot <lkp@...el.com>
To:     David Ahern <dsahern@...il.com>
Cc:     kbuild-all@...org, netdev@...r.kernel.org
Subject: [net-next:master 89/93] drivers/scsi/cxgbi/libcxgbi.c:787:43:
 sparse: incorrect type in argument 1 (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master
head:   11957be20ff68d7670cb979a1c3ea5482a44b370
commit: 0153167aebd0808fb90031dba07d4e696557474c [89/93] net/ipv6: Remove rt6i_prefsrc
reproduce:
        # apt-get install sparse
        git checkout 0153167aebd0808fb90031dba07d4e696557474c
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/cxgbi/libcxgbi.c:787:43: sparse: incorrect type in argument 1 (different address spaces) @@    expected struct in6_addr const *a @@    got struct in6_struct in6_addr const *a @@
   drivers/scsi/cxgbi/libcxgbi.c:787:43:    expected struct in6_addr const *a
   drivers/scsi/cxgbi/libcxgbi.c:787:43:    got struct in6_addr [noderef] <asn:4>*<noident>
   drivers/scsi/cxgbi/libcxgbi.c:1040:21: sparse: restricted __wsum degrades to integer
   drivers/scsi/cxgbi/libcxgbi.c:1045:33: sparse: bad assignment (-=) to restricted __wsum
   drivers/scsi/cxgbi/libcxgbi.c:1049:33: sparse: invalid assignment: -=
   drivers/scsi/cxgbi/libcxgbi.c:1049:33:    left side has type unsigned int
   drivers/scsi/cxgbi/libcxgbi.c:1049:33:    right side has type restricted __wsum
   drivers/scsi/cxgbi/libcxgbi.h:396:19: sparse: invalid assignment: +=
   drivers/scsi/cxgbi/libcxgbi.h:396:19:    left side has type int
   drivers/scsi/cxgbi/libcxgbi.h:396:19:    right side has type restricted __wsum
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1426:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1502:19: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1663:17: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1856:24: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:1856:24: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:1902:29: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:1902:29: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1931:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast to restricted __be32
   drivers/scsi/cxgbi/libcxgbi.c:1964:9: sparse: cast from restricted itt_t
   drivers/scsi/cxgbi/libcxgbi.c:2202:28: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2202:28: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2204:15: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2204:15: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2206:42: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2206:42: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2228:42: sparse: expression using sizeof(void)
   drivers/scsi/cxgbi/libcxgbi.c:2228:42: sparse: expression using sizeof(void)
>> drivers/scsi/cxgbi/libcxgbi.c:798:32: sparse: dereference of noderef expression

vim +787 drivers/scsi/cxgbi/libcxgbi.c

   710	
   711	static struct cxgbi_sock *
   712	cxgbi_check_route6(struct sockaddr *dst_addr, int ifindex)
   713	{
   714		struct sockaddr_in6 *daddr6 = (struct sockaddr_in6 *)dst_addr;
   715		struct dst_entry *dst;
   716		struct net_device *ndev;
   717		struct cxgbi_device *cdev;
   718		struct rt6_info *rt = NULL;
   719		struct neighbour *n;
   720		struct in6_addr pref_saddr;
   721		struct cxgbi_sock *csk = NULL;
   722		unsigned int mtu = 0;
   723		int port = 0xFFFF;
   724		int err = 0;
   725	
   726		rt = find_route_ipv6(NULL, &daddr6->sin6_addr, ifindex);
   727	
   728		if (!rt) {
   729			pr_info("no route to ipv6 %pI6 port %u\n",
   730				daddr6->sin6_addr.s6_addr,
   731				be16_to_cpu(daddr6->sin6_port));
   732			err = -ENETUNREACH;
   733			goto err_out;
   734		}
   735	
   736		dst = &rt->dst;
   737	
   738		n = dst_neigh_lookup(dst, &daddr6->sin6_addr);
   739	
   740		if (!n) {
   741			pr_info("%pI6, port %u, dst no neighbour.\n",
   742				daddr6->sin6_addr.s6_addr,
   743				be16_to_cpu(daddr6->sin6_port));
   744			err = -ENETUNREACH;
   745			goto rel_rt;
   746		}
   747		ndev = n->dev;
   748	
   749		if (!(ndev->flags & IFF_UP) || !netif_carrier_ok(ndev)) {
   750			pr_info("%s interface not up.\n", ndev->name);
   751			err = -ENETDOWN;
   752			goto rel_rt;
   753		}
   754	
   755		if (ipv6_addr_is_multicast(&daddr6->sin6_addr)) {
   756			pr_info("multi-cast route %pI6 port %u, dev %s.\n",
   757				daddr6->sin6_addr.s6_addr,
   758				ntohs(daddr6->sin6_port), ndev->name);
   759			err = -ENETUNREACH;
   760			goto rel_rt;
   761		}
   762	
   763		cdev = cxgbi_device_find_by_netdev(ndev, &port);
   764		if (!cdev)
   765			cdev = cxgbi_device_find_by_mac(ndev, &port);
   766		if (!cdev) {
   767			pr_info("dst %pI6 %s, NOT cxgbi device.\n",
   768				daddr6->sin6_addr.s6_addr, ndev->name);
   769			err = -ENETUNREACH;
   770			goto rel_rt;
   771		}
   772		log_debug(1 << CXGBI_DBG_SOCK,
   773			  "route to %pI6 :%u, ndev p#%d,%s, cdev 0x%p.\n",
   774			  daddr6->sin6_addr.s6_addr, ntohs(daddr6->sin6_port), port,
   775			  ndev->name, cdev);
   776	
   777		csk = cxgbi_sock_create(cdev);
   778		if (!csk) {
   779			err = -ENOMEM;
   780			goto rel_rt;
   781		}
   782		csk->cdev = cdev;
   783		csk->port_id = port;
   784		csk->mtu = mtu;
   785		csk->dst = dst;
   786	
 > 787		if (!rt->from || ipv6_addr_any(&rt->from->fib6_prefsrc.addr)) {
   788			struct inet6_dev *idev = ip6_dst_idev((struct dst_entry *)rt);
   789	
   790			err = ipv6_dev_get_saddr(&init_net, idev ? idev->dev : NULL,
   791						 &daddr6->sin6_addr, 0, &pref_saddr);
   792			if (err) {
   793				pr_info("failed to get source address to reach %pI6\n",
   794					&daddr6->sin6_addr);
   795				goto rel_rt;
   796			}
   797		} else {
 > 798			pref_saddr = rt->from->fib6_prefsrc.addr;
   799		}
   800	
   801		csk->csk_family = AF_INET6;
   802		csk->daddr6.sin6_addr = daddr6->sin6_addr;
   803		csk->daddr6.sin6_port = daddr6->sin6_port;
   804		csk->daddr6.sin6_family = daddr6->sin6_family;
   805		csk->saddr6.sin6_family = daddr6->sin6_family;
   806		csk->saddr6.sin6_addr = pref_saddr;
   807	
   808		neigh_release(n);
   809		return csk;
   810	
   811	rel_rt:
   812		if (n)
   813			neigh_release(n);
   814	
   815		ip6_rt_put(rt);
   816		if (csk)
   817			cxgbi_sock_closed(csk);
   818	err_out:
   819		return ERR_PTR(err);
   820	}
   821	#endif /* IS_ENABLED(CONFIG_IPV6) */
   822	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ