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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201710031336.V9anp0hj%fengguang.wu@intel.com>
Date:   Tue, 3 Oct 2017 13:53:10 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Roopa Prabhu <roopa@...ulusnetworks.com>
Cc:     kbuild-all@...org, davem@...emloft.net, netdev@...r.kernel.org,
        nikolay@...ulusnetworks.com, stephen@...workplumber.org,
        bridge@...ts.linux-foundation.org
Subject: Re: [PATCH net-next 3/3] bridge: suppress nd pkts on
 BR_NEIGH_SUPPRESS ports

Hi Roopa,

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Roopa-Prabhu/bridge-neigh-msg-proxy-and-flood-suppression-support/20171003-124610
config: tile-allyesconfig (attached as .config)
compiler: tilegx-linux-gcc (GCC) 4.6.2
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=tile 

All errors (new ones prefixed by >>):

   net/bridge/br_arp_nd_proxy.c: In function 'br_nd_send':
>> net/bridge/br_arp_nd_proxy.c:310:2: error: implicit declaration of function 'csum_ipv6_magic'
   cc1: some warnings being treated as errors

vim +/csum_ipv6_magic +310 net/bridge/br_arp_nd_proxy.c

   232	
   233	static void br_nd_send(struct net_bridge_port *p, struct sk_buff *request,
   234			       struct neighbour *n, __be16 vlan_proto, u16 vlan_tci,
   235			       struct nd_msg *ns)
   236	{
   237		struct net_device *dev = request->dev;
   238		struct sk_buff *reply;
   239		struct nd_msg *na;
   240		struct ipv6hdr *pip6;
   241		u8 *daddr;
   242		int na_olen = 8; /* opt hdr + ETH_ALEN for target */
   243		int ns_olen;
   244		int i, len;
   245	
   246		if (!dev)
   247			return;
   248	
   249		len = LL_RESERVED_SPACE(dev) + sizeof(struct ipv6hdr) +
   250			sizeof(*na) + na_olen + dev->needed_tailroom;
   251	
   252		reply = alloc_skb(len, GFP_ATOMIC);
   253		if (!reply)
   254			return;
   255	
   256		reply->protocol = htons(ETH_P_IPV6);
   257		reply->dev = dev;
   258		skb_reserve(reply, LL_RESERVED_SPACE(dev));
   259		skb_push(reply, sizeof(struct ethhdr));
   260		skb_set_mac_header(reply, 0);
   261	
   262		daddr = eth_hdr(request)->h_source;
   263	
   264		/* Do we need option processing ? */
   265		ns_olen = request->len - (skb_network_offset(request) +
   266					  sizeof(struct ipv6hdr)) - sizeof(*ns);
   267		for (i = 0; i < ns_olen - 1; i += (ns->opt[i + 1] << 3)) {
   268			if (ns->opt[i] == ND_OPT_SOURCE_LL_ADDR) {
   269				daddr = ns->opt + i + sizeof(struct nd_opt_hdr);
   270				break;
   271			}
   272		}
   273	
   274		/* Ethernet header */
   275		ether_addr_copy(eth_hdr(reply)->h_dest, daddr);
   276		ether_addr_copy(eth_hdr(reply)->h_source, n->ha);
   277		eth_hdr(reply)->h_proto = htons(ETH_P_IPV6);
   278		reply->protocol = htons(ETH_P_IPV6);
   279	
   280		skb_pull(reply, sizeof(struct ethhdr));
   281		skb_set_network_header(reply, 0);
   282		skb_put(reply, sizeof(struct ipv6hdr));
   283	
   284		/* IPv6 header */
   285		pip6 = ipv6_hdr(reply);
   286		memset(pip6, 0, sizeof(struct ipv6hdr));
   287		pip6->version = 6;
   288		pip6->priority = ipv6_hdr(request)->priority;
   289		pip6->nexthdr = IPPROTO_ICMPV6;
   290		pip6->hop_limit = 255;
   291		pip6->daddr = ipv6_hdr(request)->saddr;
   292		pip6->saddr = *(struct in6_addr *)n->primary_key;
   293	
   294		skb_pull(reply, sizeof(struct ipv6hdr));
   295		skb_set_transport_header(reply, 0);
   296	
   297		na = (struct nd_msg *)skb_put(reply, sizeof(*na) + na_olen);
   298	
   299		/* Neighbor Advertisement */
   300		memset(na, 0, sizeof(*na) + na_olen);
   301		na->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT;
   302		na->icmph.icmp6_router = 0; /* XXX: should be 1 ? */
   303		na->icmph.icmp6_override = 1;
   304		na->icmph.icmp6_solicited = 1;
   305		na->target = ns->target;
   306		ether_addr_copy(&na->opt[2], n->ha);
   307		na->opt[0] = ND_OPT_TARGET_LL_ADDR;
   308		na->opt[1] = na_olen >> 3;
   309	
 > 310		na->icmph.icmp6_cksum = csum_ipv6_magic(&pip6->saddr,
   311							&pip6->daddr,
   312							sizeof(*na) + na_olen,
   313							IPPROTO_ICMPV6,
   314							csum_partial(na, sizeof(*na) + na_olen, 0));
   315	
   316		pip6->payload_len = htons(sizeof(*na) + na_olen);
   317	
   318		skb_push(reply, sizeof(struct ipv6hdr));
   319		skb_push(reply, sizeof(struct ethhdr));
   320	
   321		reply->ip_summed = CHECKSUM_UNNECESSARY;
   322	
   323		if (p) {
   324			struct net_bridge_vlan_group *vg;
   325			u16 pvid;
   326	
   327			vg = nbp_vlan_group_rcu(p);
   328			pvid = br_get_pvid(vg);
   329			if (pvid && pvid == vlan_tci)
   330				vlan_tci = 0;
   331		}
   332	
   333		if (vlan_tci != 0) {
   334			reply = vlan_insert_tag_set_proto(reply, vlan_proto, vlan_tci);
   335			if (!reply) {
   336				net_err_ratelimited("evpn: failed to insert VLAN tag\n");
   337				return;
   338			}
   339		}
   340	
   341		netdev_dbg(dev, "nd send dev %s dst %pI6 dst_hw %pM src %pI6 src_hw %pM\n",
   342			   dev->name, &pip6->daddr, daddr, &pip6->saddr, n->ha);
   343	
   344		dev_queue_xmit(reply);
   345	}
   346	

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

Download attachment ".config.gz" of type "application/gzip" (50505 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ