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]
Date:   Fri, 30 Nov 2018 03:51:38 +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
Subject: Re: [PATCH net-next 2/3] vxlan: extack support for some changelink
 cases

Hi Roopa,

I love your patch! Yet something to improve:

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

url:    https://github.com/0day-ci/linux/commits/Roopa-Prabhu/vxlan-support-changelink-for-a-few-more-attributes/20181130-030315
config: x86_64-randconfig-x006-201847 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers//net/vxlan.c: In function 'vxlan_nl2conf':
>> drivers//net/vxlan.c:3527:3: error: expected '}' before 'else'
      else {
      ^~~~

vim +3527 drivers//net/vxlan.c

  3376	
  3377	static int vxlan_nl2conf(struct nlattr *tb[], struct nlattr *data[],
  3378				 struct net_device *dev, struct vxlan_config *conf,
  3379				 bool changelink, struct netlink_ext_ack *extack)
  3380	{
  3381		struct vxlan_dev *vxlan = netdev_priv(dev);
  3382	
  3383		memset(conf, 0, sizeof(*conf));
  3384	
  3385		/* if changelink operation, start with old existing cfg */
  3386		if (changelink)
  3387			memcpy(conf, &vxlan->cfg, sizeof(*conf));
  3388	
  3389		if (data[IFLA_VXLAN_ID]) {
  3390			__be32 vni = cpu_to_be32(nla_get_u32(data[IFLA_VXLAN_ID]));
  3391	
  3392			if (changelink && (vni != conf->vni)) {
  3393				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_ID],
  3394						    "Cannot change vni");
  3395				return -EOPNOTSUPP;
  3396			}
  3397			conf->vni = cpu_to_be32(nla_get_u32(data[IFLA_VXLAN_ID]));
  3398		}
  3399	
  3400		if (data[IFLA_VXLAN_GROUP]) {
  3401			if (changelink && (conf->remote_ip.sa.sa_family != AF_INET)) {
  3402				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP],
  3403						    "New group addr family does not match old group");
  3404				return -EOPNOTSUPP;
  3405			}
  3406			conf->remote_ip.sin.sin_addr.s_addr = nla_get_in_addr(data[IFLA_VXLAN_GROUP]);
  3407			conf->remote_ip.sa.sa_family = AF_INET;
  3408		} else if (data[IFLA_VXLAN_GROUP6]) {
  3409			if (!IS_ENABLED(CONFIG_IPV6)) {
  3410				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP6],
  3411						    "IPv6 support not enabled in the kernel");
  3412				return -EPFNOSUPPORT;
  3413			}
  3414	
  3415			if (changelink && (conf->remote_ip.sa.sa_family != AF_INET6)) {
  3416				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_GROUP6],
  3417						    "New group addr family does not match old group");
  3418				return -EOPNOTSUPP;
  3419			}
  3420	
  3421			conf->remote_ip.sin6.sin6_addr = nla_get_in6_addr(data[IFLA_VXLAN_GROUP6]);
  3422			conf->remote_ip.sa.sa_family = AF_INET6;
  3423		}
  3424	
  3425		if (data[IFLA_VXLAN_LOCAL]) {
  3426			if (changelink && (conf->saddr.sa.sa_family != AF_INET)) {
  3427				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL],
  3428						    "New local addr family does not match old");
  3429				return -EOPNOTSUPP;
  3430			}
  3431	
  3432			conf->saddr.sin.sin_addr.s_addr = nla_get_in_addr(data[IFLA_VXLAN_LOCAL]);
  3433			conf->saddr.sa.sa_family = AF_INET;
  3434		} else if (data[IFLA_VXLAN_LOCAL6]) {
  3435			if (!IS_ENABLED(CONFIG_IPV6)) {
  3436				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL6],
  3437						    "IPv6 support not enabled in the kernel");
  3438				return -EPFNOSUPPORT;
  3439			}
  3440	
  3441			if (changelink && (conf->saddr.sa.sa_family != AF_INET6)) {
  3442				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LOCAL6],
  3443						    "New local6 addr family does not match old");
  3444				return -EOPNOTSUPP;
  3445			}
  3446	
  3447			/* TODO: respect scope id */
  3448			conf->saddr.sin6.sin6_addr = nla_get_in6_addr(data[IFLA_VXLAN_LOCAL6]);
  3449			conf->saddr.sa.sa_family = AF_INET6;
  3450		}
  3451	
  3452		if (data[IFLA_VXLAN_LINK])
  3453			conf->remote_ifindex = nla_get_u32(data[IFLA_VXLAN_LINK]);
  3454	
  3455		if (data[IFLA_VXLAN_TOS])
  3456			conf->tos  = nla_get_u8(data[IFLA_VXLAN_TOS]);
  3457	
  3458		if (data[IFLA_VXLAN_TTL])
  3459			conf->ttl = nla_get_u8(data[IFLA_VXLAN_TTL]);
  3460	
  3461		if (data[IFLA_VXLAN_TTL_INHERIT])
  3462			conf->flags |= VXLAN_F_TTL_INHERIT;
  3463	
  3464		if (data[IFLA_VXLAN_LABEL])
  3465			conf->label = nla_get_be32(data[IFLA_VXLAN_LABEL]) &
  3466				     IPV6_FLOWLABEL_MASK;
  3467	
  3468		if (data[IFLA_VXLAN_LEARNING]) {
  3469			if (nla_get_u8(data[IFLA_VXLAN_LEARNING]))
  3470				conf->flags |= VXLAN_F_LEARN;
  3471			else
  3472				conf->flags &= ~VXLAN_F_LEARN;
  3473		} else if (!changelink) {
  3474			/* default to learn on a new device */
  3475			conf->flags |= VXLAN_F_LEARN;
  3476		}
  3477	
  3478		if (data[IFLA_VXLAN_AGEING])
  3479			conf->age_interval = nla_get_u32(data[IFLA_VXLAN_AGEING]);
  3480	
  3481		if (data[IFLA_VXLAN_PROXY]) {
  3482			if (nla_get_u8(data[IFLA_VXLAN_PROXY]))
  3483				conf->flags |= VXLAN_F_PROXY;
  3484		}
  3485	
  3486		if (data[IFLA_VXLAN_RSC]) {
  3487			if (nla_get_u8(data[IFLA_VXLAN_RSC]))
  3488				conf->flags |= VXLAN_F_RSC;
  3489		}
  3490	
  3491		if (data[IFLA_VXLAN_L2MISS]) {
  3492			if (nla_get_u8(data[IFLA_VXLAN_L2MISS]))
  3493				conf->flags |= VXLAN_F_L2MISS;
  3494		}
  3495	
  3496		if (data[IFLA_VXLAN_L3MISS]) {
  3497			if (nla_get_u8(data[IFLA_VXLAN_L3MISS]))
  3498				conf->flags |= VXLAN_F_L3MISS;
  3499		}
  3500	
  3501		if (data[IFLA_VXLAN_LIMIT]) {
  3502			if (changelink) {
  3503				NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_VXLAN_LIMIT],
  3504						    "Cannot change limit");
  3505				return -EOPNOTSUPP;
  3506			}
  3507			conf->addrmax = nla_get_u32(data[IFLA_VXLAN_LIMIT]);
  3508		}
  3509	
  3510		if (data[IFLA_VXLAN_COLLECT_METADATA]) {
  3511			if (changelink) {
  3512				NL_SET_ERR_MSG_ATTR(extack,
  3513						    tb[IFLA_VXLAN_COLLECT_METADATA],
  3514						    "Cannot change metadata flag");
  3515				return -EOPNOTSUPP;
  3516			}
  3517			if (nla_get_u8(data[IFLA_VXLAN_COLLECT_METADATA]))
  3518				conf->flags |= VXLAN_F_COLLECT_METADATA;
  3519		}
  3520	
  3521		if (data[IFLA_VXLAN_PORT_RANGE]) {
  3522			if (!changelink) {
  3523				const struct ifla_vxlan_port_range *p
  3524					= nla_data(data[IFLA_VXLAN_PORT_RANGE]);
  3525				conf->port_min = ntohs(p->low);
  3526				conf->port_max = ntohs(p->high);
> 3527			else {
  3528				NL_SET_ERR_MSG_ATTR(extack,
  3529						    tb[IFLA_VXLAN_PORT_RANGE],
  3530						    "Cannot change port range");
  3531				return -EOPNOTSUPP;
  3532			}
  3533		}
  3534	
  3535		if (data[IFLA_VXLAN_PORT]) {
  3536			if (changelink) {
  3537				NL_SET_ERR_MSG_ATTR(extack,
  3538						    tb[IFLA_VXLAN_PORT],
  3539						    "Cannot change port");
  3540				return -EOPNOTSUPP;
  3541			}
  3542			conf->dst_port = nla_get_be16(data[IFLA_VXLAN_PORT]);
  3543		}
  3544	
  3545		if (data[IFLA_VXLAN_UDP_CSUM]) {
  3546			if (changelink) {
  3547				NL_SET_ERR_MSG_ATTR(extack,
  3548						    tb[IFLA_VXLAN_UDP_CSUM],
  3549						    "Cannot change udp csum");
  3550				return -EOPNOTSUPP;
  3551			}
  3552			if (!nla_get_u8(data[IFLA_VXLAN_UDP_CSUM]))
  3553				conf->flags |= VXLAN_F_UDP_ZERO_CSUM_TX;
  3554		}
  3555	
  3556		if (data[IFLA_VXLAN_UDP_ZERO_CSUM6_TX]) {
  3557			if (nla_get_u8(data[IFLA_VXLAN_UDP_ZERO_CSUM6_TX]))
  3558				conf->flags |= VXLAN_F_UDP_ZERO_CSUM6_TX;
  3559		}
  3560	
  3561		if (data[IFLA_VXLAN_UDP_ZERO_CSUM6_RX]) {
  3562			if (nla_get_u8(data[IFLA_VXLAN_UDP_ZERO_CSUM6_RX]))
  3563				conf->flags |= VXLAN_F_UDP_ZERO_CSUM6_RX;
  3564		}
  3565	
  3566		if (data[IFLA_VXLAN_REMCSUM_TX]) {
  3567			if (nla_get_u8(data[IFLA_VXLAN_REMCSUM_TX]))
  3568				conf->flags |= VXLAN_F_REMCSUM_TX;
  3569		}
  3570	
  3571		if (data[IFLA_VXLAN_REMCSUM_RX]) {
  3572			if (nla_get_u8(data[IFLA_VXLAN_REMCSUM_RX]))
  3573				conf->flags |= VXLAN_F_REMCSUM_RX;
  3574		}
  3575	
  3576		if (data[IFLA_VXLAN_GBP])
  3577			conf->flags |= VXLAN_F_GBP;
  3578	
  3579		if (data[IFLA_VXLAN_GPE])
  3580			conf->flags |= VXLAN_F_GPE;
  3581	
  3582		if (data[IFLA_VXLAN_REMCSUM_NOPARTIAL])
  3583			conf->flags |= VXLAN_F_REMCSUM_NOPARTIAL;
  3584	
  3585		if (tb[IFLA_MTU]) {
  3586			if (changelink) {
  3587				NL_SET_ERR_MSG_ATTR(extack,
  3588						    tb[IFLA_MTU],
  3589						    "Cannot change mtu");
  3590				return -EOPNOTSUPP;
  3591			}
  3592			conf->mtu = nla_get_u32(tb[IFLA_MTU]);
  3593		}
  3594	
  3595		if (data[IFLA_VXLAN_DF])
  3596			conf->df = nla_get_u8(data[IFLA_VXLAN_DF]);
  3597	
  3598		return 0;
  3599	}
  3600	

---
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" (30285 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ