tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git pending-fixes head: 3c15bb8df3365826d67efc332ee490dacc8e901c commit: bd62e6f5e6a98f1657cf9c3b632bdb7a2e78d42c [1999/2286] net: dsa: xrs700x: add HSR offloading support config: x86_64-randconfig-r023-20210219 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=bd62e6f5e6a98f1657cf9c3b632bdb7a2e78d42c git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next pending-fixes git checkout bd62e6f5e6a98f1657cf9c3b632bdb7a2e78d42c # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): ld: warning: orphan section `.data..decrypted' from `arch/x86/kernel/cpu/vmware.o' being placed in section `.data..decrypted' ld: warning: orphan section `.data..decrypted' from `arch/x86/kernel/kvm.o' being placed in section `.data..decrypted' ld: drivers/net/dsa/xrs700x/xrs700x.o: in function `xrs700x_hsr_join': >> drivers/net/dsa/xrs700x/xrs700x.c:515: undefined reference to `hsr_get_version' ld: net/dsa/slave.o: in function `dsa_slave_changeupper': net/dsa/slave.c:1942: undefined reference to `is_hsr_master' vim +515 drivers/net/dsa/xrs700x/xrs700x.c 504 505 static int xrs700x_hsr_join(struct dsa_switch *ds, int port, 506 struct net_device *hsr) 507 { 508 unsigned int val = XRS_HSR_CFG_HSR_PRP; 509 struct dsa_port *partner = NULL, *dp; 510 struct xrs700x *priv = ds->priv; 511 struct net_device *slave; 512 int ret, i, hsr_pair[2]; 513 enum hsr_version ver; 514 > 515 ret = hsr_get_version(hsr, &ver); 516 if (ret) 517 return ret; 518 519 /* Only ports 1 and 2 can be HSR/PRP redundant ports. */ 520 if (port != 1 && port != 2) 521 return -EOPNOTSUPP; 522 523 if (ver == HSR_V1) 524 val |= XRS_HSR_CFG_HSR; 525 else if (ver == PRP_V1) 526 val |= XRS_HSR_CFG_PRP; 527 else 528 return -EOPNOTSUPP; 529 530 dsa_hsr_foreach_port(dp, ds, hsr) { 531 partner = dp; 532 } 533 534 /* We can't enable redundancy on the switch until both 535 * redundant ports have signed up. 536 */ 537 if (!partner) 538 return 0; 539 540 regmap_fields_write(priv->ps_forward, partner->index, 541 XRS_PORT_DISABLED); 542 regmap_fields_write(priv->ps_forward, port, XRS_PORT_DISABLED); 543 544 regmap_write(priv->regmap, XRS_HSR_CFG(partner->index), 545 val | XRS_HSR_CFG_LANID_A); 546 regmap_write(priv->regmap, XRS_HSR_CFG(port), 547 val | XRS_HSR_CFG_LANID_B); 548 549 /* Clear bits for both redundant ports (HSR only) and the CPU port to 550 * enable forwarding. 551 */ 552 val = GENMASK(ds->num_ports - 1, 0); 553 if (ver == HSR_V1) { 554 val &= ~BIT(partner->index); 555 val &= ~BIT(port); 556 } 557 val &= ~BIT(dsa_upstream_port(ds, port)); 558 regmap_write(priv->regmap, XRS_PORT_FWD_MASK(partner->index), val); 559 regmap_write(priv->regmap, XRS_PORT_FWD_MASK(port), val); 560 561 regmap_fields_write(priv->ps_forward, partner->index, 562 XRS_PORT_FORWARDING); 563 regmap_fields_write(priv->ps_forward, port, XRS_PORT_FORWARDING); 564 565 hsr_pair[0] = port; 566 hsr_pair[1] = partner->index; 567 for (i = 0; i < ARRAY_SIZE(hsr_pair); i++) { 568 slave = dsa_to_port(ds, hsr_pair[i])->slave; 569 slave->features |= XRS7000X_SUPPORTED_HSR_FEATURES; 570 } 571 572 return 0; 573 } 574 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip