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

Attachment: .config.gz
Description: application/gzip

Reply via email to