Hi Vladimir, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Vladimir-Oltean/Better-support-for-sandwiched-LAGs-with-bridge-and-DSA/20210319-072218 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 31222162557ca85808b9985de7e519041561f455 config: microblaze-randconfig-r031-20210318 (attached as .config) compiler: microblaze-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/a25b1e23ecf26f2dc45247ebcf4ff5bde213ac42 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Vladimir-Oltean/Better-support-for-sandwiched-LAGs-with-bridge-and-DSA/20210319-072218 git checkout a25b1e23ecf26f2dc45247ebcf4ff5bde213ac42 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): In file included from drivers/net/ethernet/ti/cpsw_switchdev.c:10: >> include/linux/if_bridge.h:204:5: warning: no previous prototype for 'switchdev_bridge_port_offload' [-Wmissing-prototypes] 204 | int switchdev_bridge_port_offload(struct net_device *dev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> include/linux/if_bridge.h:210:5: warning: no previous prototype for 'switchdev_bridge_port_unoffload' [-Wmissing-prototypes] 210 | int switchdev_bridge_port_unoffload(struct net_device *dev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/net/ethernet/ti/cpsw_switchdev.c:10: include/linux/if_bridge.h: In function 'switchdev_bridge_port_unoffload': include/linux/if_bridge.h:212:1: error: control reaches end of non-void function [-Werror=return-type] 212 | } | ^ cc1: some warnings being treated as errors -- drivers/net/ethernet/ti/cpsw_new.c: In function 'cpsw_netdevice_port_link': >> drivers/net/ethernet/ti/cpsw_new.c:1527:8: error: implicit declaration of function 'switchdev_bridge_port_offload'; did you mean 'switchdev_handle_port_obj_add'? [-Werror=implicit-function-declaration] 1527 | err = switchdev_bridge_port_offload(ndev, NULL); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | switchdev_handle_port_obj_add drivers/net/ethernet/ti/cpsw_new.c: In function 'cpsw_netdevice_port_unlink': >> drivers/net/ethernet/ti/cpsw_new.c:1536:2: error: implicit declaration of function 'switchdev_bridge_port_unoffload'; did you mean 'switchdev_handle_port_obj_add'? [-Werror=implicit-function-declaration] 1536 | switchdev_bridge_port_unoffload(ndev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | switchdev_handle_port_obj_add cc1: some warnings being treated as errors -- In file included from net/dsa/port.c:9: >> include/linux/if_bridge.h:204:5: warning: no previous prototype for 'switchdev_bridge_port_offload' [-Wmissing-prototypes] 204 | int switchdev_bridge_port_offload(struct net_device *dev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> include/linux/if_bridge.h:210:5: warning: no previous prototype for 'switchdev_bridge_port_unoffload' [-Wmissing-prototypes] 210 | int switchdev_bridge_port_unoffload(struct net_device *dev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/dsa/port.c: In function 'dsa_port_inherit_brport_flags': net/dsa/port.c:152:34: error: implicit declaration of function 'dsa_port_to_bridge_port'; did you mean 'dsa_port_bridge_join'? [-Werror=implicit-function-declaration] 152 | struct net_device *brport_dev = dsa_port_to_bridge_port(dp); | ^~~~~~~~~~~~~~~~~~~~~~~ | dsa_port_bridge_join net/dsa/port.c:152:34: warning: initialization of 'struct net_device *' from 'int' makes pointer from integer without a cast [-Wint-conversion] net/dsa/port.c: In function 'dsa_port_switchdev_sync': net/dsa/port.c:174:34: warning: initialization of 'struct net_device *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 174 | struct net_device *brport_dev = dsa_port_to_bridge_port(dp); | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from net/dsa/port.c:9: include/linux/if_bridge.h: In function 'switchdev_bridge_port_unoffload': include/linux/if_bridge.h:212:1: error: control reaches end of non-void function [-Werror=return-type] 212 | } | ^ cc1: some warnings being treated as errors vim +1527 drivers/net/ethernet/ti/cpsw_new.c 1505 1506 static int cpsw_netdevice_port_link(struct net_device *ndev, 1507 struct net_device *br_ndev) 1508 { 1509 struct cpsw_priv *priv = netdev_priv(ndev); 1510 struct cpsw_common *cpsw = priv->cpsw; 1511 int err; 1512 1513 if (!cpsw->br_members) { 1514 cpsw->hw_bridge_dev = br_ndev; 1515 } else { 1516 /* This is adding the port to a second bridge, this is 1517 * unsupported 1518 */ 1519 if (cpsw->hw_bridge_dev != br_ndev) 1520 return -EOPNOTSUPP; 1521 } 1522 1523 cpsw->br_members |= BIT(priv->emac_port); 1524 1525 cpsw_port_offload_fwd_mark_update(cpsw); 1526 > 1527 err = switchdev_bridge_port_offload(ndev, NULL); 1528 return notifier_to_errno(err); 1529 } 1530 1531 static void cpsw_netdevice_port_unlink(struct net_device *ndev) 1532 { 1533 struct cpsw_priv *priv = netdev_priv(ndev); 1534 struct cpsw_common *cpsw = priv->cpsw; 1535 > 1536 switchdev_bridge_port_unoffload(ndev); 1537 1538 cpsw->br_members &= ~BIT(priv->emac_port); 1539 1540 cpsw_port_offload_fwd_mark_update(cpsw); 1541 1542 if (!cpsw->br_members) 1543 cpsw->hw_bridge_dev = NULL; 1544 } 1545 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org