[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201811300332.G1KDvLga%fengguang.wu@intel.com>
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