All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Jiale Yao <yaojiale02@163.com>, Jiri Pirko <jiri@resnulli.us>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, netdev@vger.kernel.org,
	Jiale Yao <yaojiale02@163.com>
Subject: Re: [PATCH v2] team: reject CAN and IEEE 802.15.4 devices in team_port_add
Date: Wed, 5 Aug 2026 13:00:24 +0800	[thread overview]
Message-ID: <202608051230.16XSe01k-lkp@intel.com> (raw)
In-Reply-To: <20260728151240.89434-1-yaojiale02@163.com>

Hi Jiale,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v7.2-rc6 next-20260804]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jiale-Yao/team-reject-CAN-and-IEEE-802-15-4-devices-in-team_port_add/20260805-104604
base:   linus/master
patch link:    https://lore.kernel.org/r/20260728151240.89434-1-yaojiale02%40163.com
patch subject: [PATCH v2] team: reject CAN and IEEE 802.15.4 devices in team_port_add
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20260805/202608051230.16XSe01k-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260805/202608051230.16XSe01k-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608051230.16XSe01k-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/net/team/team_core.c: In function 'team_port_add':
>> drivers/net/team/team_core.c:1218:13: warning: unused variable 'err' [-Wunused-variable]
    1218 |         int err;
         |             ^~~
>> drivers/net/team/team_core.c:1216:27: warning: unused variable 'port' [-Wunused-variable]
    1216 |         struct team_port *port;
         |                           ^~~~
   drivers/net/team/team_core.c: At top level:
>> drivers/net/team/team_core.c:1238:9: error: expected identifier or '(' before 'if'
    1238 |         if (netif_is_team_port(port_dev)) {
         |         ^~
   drivers/net/team/team_core.c:1245:9: error: expected identifier or '(' before 'if'
    1245 |         if (dev == port_dev) {
         |         ^~
   drivers/net/team/team_core.c:1251:9: error: expected identifier or '(' before 'if'
    1251 |         if (netdev_has_upper_dev(dev, port_dev)) {
         |         ^~
   drivers/net/team/team_core.c:1258:9: error: expected identifier or '(' before 'if'
    1258 |         if (netdev_has_upper_dev(port_dev, dev)) {
         |         ^~
   drivers/net/team/team_core.c:1265:9: error: expected identifier or '(' before 'if'
    1265 |         if (port_dev->features & NETIF_F_VLAN_CHALLENGED &&
         |         ^~
   drivers/net/team/team_core.c:1273:9: error: expected identifier or '(' before 'if'
    1273 |         if (port_dev->flags & IFF_UP) {
         |         ^~
>> drivers/net/team/team_core.c:1280:9: warning: data definition has no type or storage class
    1280 |         port = kzalloc(sizeof(struct team_port) + team->mode->port_priv_size,
         |         ^~~~
>> drivers/net/team/team_core.c:1280:9: error: type defaults to 'int' in declaration of 'port' [-Wimplicit-int]
   In file included from include/linux/rhashtable-types.h:12,
                    from include/linux/ipc.h:7,
                    from include/uapi/linux/sem.h:5,
                    from include/linux/sem.h:5,
                    from include/linux/compat.h:14,
                    from include/linux/ethtool.h:17,
                    from drivers/net/team/team_core.c:7:
>> include/linux/alloc_tag.h:268:1: error: braced-group within expression allowed only inside a function
     268 | ({                                                                      \
         | ^
   include/linux/slab.h:1320:49: note: in expansion of macro 'alloc_hooks'
    1320 | #define kzalloc(size, flags)                    alloc_hooks(kzalloc_noprof(size, flags))
         |                                                 ^~~~~~~~~~~
   drivers/net/team/team_core.c:1280:16: note: in expansion of macro 'kzalloc'
    1280 |         port = kzalloc(sizeof(struct team_port) + team->mode->port_priv_size,
         |                ^~~~~~~
   drivers/net/team/team_core.c:1282:9: error: expected identifier or '(' before 'if'
    1282 |         if (!port)
         |         ^~
>> drivers/net/team/team_core.c:1285:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1285 |         port->dev = port_dev;
         |             ^~
   drivers/net/team/team_core.c:1286:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1286 |         port->team = team;
         |             ^~
>> drivers/net/team/team_core.c:1287:24: error: expected declaration specifiers or '...' before '&' token
    1287 |         INIT_LIST_HEAD(&port->qom_list);
         |                        ^
   drivers/net/team/team_core.c:1289:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1289 |         port->orig.mtu = port_dev->mtu;
         |             ^~
   drivers/net/team/team_core.c:1294:9: error: expected identifier or '(' before 'if'
    1294 |         if (dev->type == port_dev->type) {
         |         ^~
   In file included from include/linux/string.h:383,
                    from include/linux/bitmap.h:13,
                    from include/linux/ethtool.h:16:
>> include/linux/fortify-string.h:576:63: error: expected identifier or '(' before '{' token
     576 |                              p_size_field, q_size_field, op) ({         \
         |                                                               ^
   include/linux/fortify-string.h:640:26: note: in expansion of macro '__fortify_memcpy_chk'
     640 | #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
         |                          ^~~~~~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1302:9: note: in expansion of macro 'memcpy'
    1302 |         memcpy(port->orig.dev_addr, port_dev->dev_addr, port_dev->addr_len);
         |         ^~~~~~
   drivers/net/team/team_core.c:1304:9: warning: data definition has no type or storage class
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1304:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
>> drivers/net/team/team_core.c:1304:31: error: 'team' undeclared here (not in a function)
    1304 |         err = team_port_enter(team, port);
         |                               ^~~~
>> drivers/net/team/team_core.c:1304:37: error: passing argument 2 of 'team_port_enter' makes pointer from integer without a cast [-Wint-conversion]
    1304 |         err = team_port_enter(team, port);
         |                                     ^~~~
         |                                     |
         |                                     int
   drivers/net/team/team_core.c:1109:65: note: expected 'struct team_port *' but argument is of type 'int'
    1109 | static int team_port_enter(struct team *team, struct team_port *port)
         |                                               ~~~~~~~~~~~~~~~~~~^~~~
   drivers/net/team/team_core.c:1305:9: error: expected identifier or '(' before 'if'
    1305 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1311:9: warning: data definition has no type or storage class
    1311 |         err = dev_open(port_dev, extack);
         |         ^~~
   drivers/net/team/team_core.c:1311:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
>> drivers/net/team/team_core.c:1311:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1311:24: error: 'port_dev' undeclared here (not in a function)
    1311 |         err = dev_open(port_dev, extack);
         |                        ^~~~~~~~
>> drivers/net/team/team_core.c:1311:34: error: 'extack' undeclared here (not in a function)
    1311 |         err = dev_open(port_dev, extack);
         |                                  ^~~~~~
   drivers/net/team/team_core.c:1312:9: error: expected identifier or '(' before 'if'
    1312 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1318:9: warning: data definition has no type or storage class
    1318 |         err = vlan_vids_add_by_dev(port_dev, dev);
         |         ^~~
   drivers/net/team/team_core.c:1318:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1318:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1318:46: error: 'dev' undeclared here (not in a function); did you mean 'cdev'?
    1318 |         err = vlan_vids_add_by_dev(port_dev, dev);
         |                                              ^~~
         |                                              cdev
   drivers/net/team/team_core.c:1319:9: error: expected identifier or '(' before 'if'
    1319 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1325:9: warning: data definition has no type or storage class
    1325 |         err = team_port_enable_netpoll(port);
         |         ^~~
   drivers/net/team/team_core.c:1325:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1325:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1325:40: error: passing argument 1 of 'team_port_enable_netpoll' makes pointer from integer without a cast [-Wint-conversion]
    1325 |         err = team_port_enable_netpoll(port);
         |                                        ^~~~
         |                                        |
         |                                        int
   drivers/net/team/team_core.c:1158:55: note: expected 'struct team_port *' but argument is of type 'int'
    1158 | static int team_port_enable_netpoll(struct team_port *port)
         |                                     ~~~~~~~~~~~~~~~~~~^~~~
>> drivers/net/team/team_core.c:1325:15: error: initializer element is not constant
    1325 |         err = team_port_enable_netpoll(port);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1326:9: error: expected identifier or '(' before 'if'
    1326 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1332:9: error: expected identifier or '(' before 'if'
    1332 |         if (!(dev->features & NETIF_F_LRO))
         |         ^~
   drivers/net/team/team_core.c:1335:9: warning: data definition has no type or storage class
    1335 |         err = netdev_rx_handler_register(port_dev, team_handle_frame,
         |         ^~~
   drivers/net/team/team_core.c:1335:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1335:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1336:42: error: passing argument 3 of 'netdev_rx_handler_register' makes pointer from integer without a cast [-Wint-conversion]
    1336 |                                          port);
         |                                          ^~~~
         |                                          |
         |                                          int
   In file included from drivers/net/team/team_core.c:17:
   include/linux/netdevice.h:4332:38: note: expected 'void *' but argument is of type 'int'
    4332 |                                void *rx_handler_data);
         |                                ~~~~~~^~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1337:9: error: expected identifier or '(' before 'if'
    1337 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1343:9: warning: data definition has no type or storage class
    1343 |         err = team_upper_dev_link(team, port, extack);
         |         ^~~
   drivers/net/team/team_core.c:1343:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1343:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
>> drivers/net/team/team_core.c:1343:41: error: passing argument 2 of 'team_upper_dev_link' makes pointer from integer without a cast [-Wint-conversion]
    1343 |         err = team_upper_dev_link(team, port, extack);
         |                                         ^~~~
         |                                         |
         |                                         int
   drivers/net/team/team_core.c:1186:69: note: expected 'struct team_port *' but argument is of type 'int'
    1186 | static int team_upper_dev_link(struct team *team, struct team_port *port,
         |                                                   ~~~~~~~~~~~~~~~~~~^~~~
   drivers/net/team/team_core.c:1344:9: error: expected identifier or '(' before 'if'
    1344 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1350:9: warning: data definition has no type or storage class
    1350 |         err = __team_option_inst_add_port(team, port);
         |         ^~~
   drivers/net/team/team_core.c:1350:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1350:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   drivers/net/team/team_core.c:1350:49: error: passing argument 2 of '__team_option_inst_add_port' makes pointer from integer without a cast [-Wint-conversion]
    1350 |         err = __team_option_inst_add_port(team, port);
         |                                                 ^~~~
         |                                                 |
         |                                                 int
   drivers/net/team/team_core.c:219:58: note: expected 'struct team_port *' but argument is of type 'int'
     219 |                                        struct team_port *port)
         |                                        ~~~~~~~~~~~~~~~~~~^~~~
   drivers/net/team/team_core.c:1351:9: error: expected identifier or '(' before 'if'
    1351 |         if (err) {
         |         ^~
   drivers/net/team/team_core.c:1358:9: error: expected identifier or '(' before 'if'
    1358 |         if (dev->flags & IFF_PROMISC) {
         |         ^~
   drivers/net/team/team_core.c:1365:9: error: expected identifier or '(' before 'if'
    1365 |         if (dev->flags & IFF_ALLMULTI) {
         |         ^~
   drivers/net/team/team_core.c:1374:9: warning: data definition has no type or storage class
    1374 |         err = team_dev_type_check_change(dev, port_dev);
         |         ^~~
   drivers/net/team/team_core.c:1374:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   drivers/net/team/team_core.c:1374:9: error: redefinition of 'err'
   drivers/net/team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   drivers/net/team/team_core.c:1375:9: error: expected identifier or '(' before 'if'
    1375 |         if (err)
         |         ^~
   drivers/net/team/team_core.c:1378:9: error: expected identifier or '(' before 'if'
    1378 |         if (dev->flags & IFF_UP) {
         |         ^~
   In file included from ./arch/powerpc/include/generated/asm/rwonce.h:1,
                    from include/linux/compiler.h:369,
                    from include/linux/build_bug.h:5,
                    from include/linux/bits.h:30,
                    from include/linux/bitops.h:6,
                    from include/linux/bitmap.h:8:
   include/asm-generic/rwonce.h:59:1: error: expected identifier or '(' before 'do'
      59 | do {                                                                    \
         | ^~
   drivers/net/team/team_core.c:1385:9: note: in expansion of macro 'WRITE_ONCE'
    1385 |         WRITE_ONCE(port->tx_index, -1);
         |         ^~~~~~~~~~
   include/asm-generic/rwonce.h:62:3: error: expected identifier or '(' before 'while'
      62 | } while (0)
         |   ^~~~~
   drivers/net/team/team_core.c:1385:9: note: in expansion of macro 'WRITE_ONCE'
    1385 |         WRITE_ONCE(port->tx_index, -1);
         |         ^~~~~~~~~~
   drivers/net/team/team_core.c:1386:27: error: expected declaration specifiers or '...' before '&' token
    1386 |         list_add_tail_rcu(&port->list, &team->port_list);
         |                           ^
   drivers/net/team/team_core.c:1386:40: error: expected declaration specifiers or '...' before '&' token
    1386 |         list_add_tail_rcu(&port->list, &team->port_list);
         |                                        ^
   drivers/net/team/team_core.c:1387:9: warning: data definition has no type or storage class
    1387 |         team_port_enable(team, port);
         |         ^~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1387:9: error: type defaults to 'int' in declaration of 'team_port_enable' [-Wimplicit-int]
   drivers/net/team/team_core.c:1387:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   drivers/net/team/team_core.c:1387:9: error: conflicting types for 'team_port_enable'; have 'int()'
   drivers/net/team/team_core.c:1060:13: note: previous definition of 'team_port_enable' with type 'void(struct team *, struct team_port *)'
    1060 | static void team_port_enable(struct team *team,
         |             ^~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1388:9: warning: data definition has no type or storage class
    1388 |         netdev_compute_master_upper_features(dev, true);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1388:9: error: type defaults to 'int' in declaration of 'netdev_compute_master_upper_features' [-Wimplicit-int]
   drivers/net/team/team_core.c:1388:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   drivers/net/team/team_core.c:1388:9: error: conflicting types for 'netdev_compute_master_upper_features'; have 'int()'
   include/linux/netdevice.h:5460:6: note: previous declaration of 'netdev_compute_master_upper_features' with type 'void(struct net_device *, bool)' {aka 'void(struct net_device *, _Bool)'}
    5460 | void netdev_compute_master_upper_features(struct net_device *dev, bool update_header);
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1389:9: warning: data definition has no type or storage class
    1389 |         netdev_lock_ops(port_dev);
         |         ^~~~~~~~~~~~~~~
   drivers/net/team/team_core.c:1389:9: error: type defaults to 'int' in declaration of 'netdev_lock_ops' [-Wimplicit-int]
   drivers/net/team/team_core.c:1389:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   drivers/net/team/team_core.c:1389:9: error: conflicting types for 'netdev_lock_ops'; have 'int()'
   In file included from drivers/net/team/team_core.c:26:
   include/net/netdev_lock.h:39:20: note: previous definition of 'netdev_lock_ops' with type 'void(struct net_device *)'
      39 | static inline void netdev_lock_ops(struct net_device *dev)
--
   team/team_core.c: In function 'team_port_add':
   team/team_core.c:1218:13: warning: unused variable 'err' [-Wunused-variable]
    1218 |         int err;
         |             ^~~
   team/team_core.c:1216:27: warning: unused variable 'port' [-Wunused-variable]
    1216 |         struct team_port *port;
         |                           ^~~~
   team/team_core.c: At top level:
   team/team_core.c:1238:9: error: expected identifier or '(' before 'if'
    1238 |         if (netif_is_team_port(port_dev)) {
         |         ^~
   team/team_core.c:1245:9: error: expected identifier or '(' before 'if'
    1245 |         if (dev == port_dev) {
         |         ^~
   team/team_core.c:1251:9: error: expected identifier or '(' before 'if'
    1251 |         if (netdev_has_upper_dev(dev, port_dev)) {
         |         ^~
   team/team_core.c:1258:9: error: expected identifier or '(' before 'if'
    1258 |         if (netdev_has_upper_dev(port_dev, dev)) {
         |         ^~
   team/team_core.c:1265:9: error: expected identifier or '(' before 'if'
    1265 |         if (port_dev->features & NETIF_F_VLAN_CHALLENGED &&
         |         ^~
   team/team_core.c:1273:9: error: expected identifier or '(' before 'if'
    1273 |         if (port_dev->flags & IFF_UP) {
         |         ^~
   team/team_core.c:1280:9: warning: data definition has no type or storage class
    1280 |         port = kzalloc(sizeof(struct team_port) + team->mode->port_priv_size,
         |         ^~~~
   team/team_core.c:1280:9: error: type defaults to 'int' in declaration of 'port' [-Wimplicit-int]
   In file included from include/linux/rhashtable-types.h:12,
                    from include/linux/ipc.h:7,
                    from include/uapi/linux/sem.h:5,
                    from include/linux/sem.h:5,
                    from include/linux/compat.h:14,
                    from include/linux/ethtool.h:17,
                    from team/team_core.c:7:
>> include/linux/alloc_tag.h:268:1: error: braced-group within expression allowed only inside a function
     268 | ({                                                                      \
         | ^
   include/linux/slab.h:1320:49: note: in expansion of macro 'alloc_hooks'
    1320 | #define kzalloc(size, flags)                    alloc_hooks(kzalloc_noprof(size, flags))
         |                                                 ^~~~~~~~~~~
   team/team_core.c:1280:16: note: in expansion of macro 'kzalloc'
    1280 |         port = kzalloc(sizeof(struct team_port) + team->mode->port_priv_size,
         |                ^~~~~~~
   team/team_core.c:1282:9: error: expected identifier or '(' before 'if'
    1282 |         if (!port)
         |         ^~
   team/team_core.c:1285:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1285 |         port->dev = port_dev;
         |             ^~
   team/team_core.c:1286:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1286 |         port->team = team;
         |             ^~
   team/team_core.c:1287:24: error: expected declaration specifiers or '...' before '&' token
    1287 |         INIT_LIST_HEAD(&port->qom_list);
         |                        ^
   team/team_core.c:1289:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
    1289 |         port->orig.mtu = port_dev->mtu;
         |             ^~
   team/team_core.c:1294:9: error: expected identifier or '(' before 'if'
    1294 |         if (dev->type == port_dev->type) {
         |         ^~
   In file included from include/linux/string.h:383,
                    from include/linux/bitmap.h:13,
                    from include/linux/ethtool.h:16:
>> include/linux/fortify-string.h:576:63: error: expected identifier or '(' before '{' token
     576 |                              p_size_field, q_size_field, op) ({         \
         |                                                               ^
   include/linux/fortify-string.h:640:26: note: in expansion of macro '__fortify_memcpy_chk'
     640 | #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
         |                          ^~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1302:9: note: in expansion of macro 'memcpy'
    1302 |         memcpy(port->orig.dev_addr, port_dev->dev_addr, port_dev->addr_len);
         |         ^~~~~~
   team/team_core.c:1304:9: warning: data definition has no type or storage class
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1304:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1304:31: error: 'team' undeclared here (not in a function)
    1304 |         err = team_port_enter(team, port);
         |                               ^~~~
   team/team_core.c:1304:37: error: passing argument 2 of 'team_port_enter' makes pointer from integer without a cast [-Wint-conversion]
    1304 |         err = team_port_enter(team, port);
         |                                     ^~~~
         |                                     |
         |                                     int
   team/team_core.c:1109:65: note: expected 'struct team_port *' but argument is of type 'int'
    1109 | static int team_port_enter(struct team *team, struct team_port *port)
         |                                               ~~~~~~~~~~~~~~~~~~^~~~
   team/team_core.c:1305:9: error: expected identifier or '(' before 'if'
    1305 |         if (err) {
         |         ^~
   team/team_core.c:1311:9: warning: data definition has no type or storage class
    1311 |         err = dev_open(port_dev, extack);
         |         ^~~
   team/team_core.c:1311:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1311:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1311:24: error: 'port_dev' undeclared here (not in a function)
    1311 |         err = dev_open(port_dev, extack);
         |                        ^~~~~~~~
   team/team_core.c:1311:34: error: 'extack' undeclared here (not in a function)
    1311 |         err = dev_open(port_dev, extack);
         |                                  ^~~~~~
   team/team_core.c:1312:9: error: expected identifier or '(' before 'if'
    1312 |         if (err) {
         |         ^~
   team/team_core.c:1318:9: warning: data definition has no type or storage class
    1318 |         err = vlan_vids_add_by_dev(port_dev, dev);
         |         ^~~
   team/team_core.c:1318:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1318:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1318:46: error: 'dev' undeclared here (not in a function); did you mean 'cdev'?
    1318 |         err = vlan_vids_add_by_dev(port_dev, dev);
         |                                              ^~~
         |                                              cdev
   team/team_core.c:1319:9: error: expected identifier or '(' before 'if'
    1319 |         if (err) {
         |         ^~
   team/team_core.c:1325:9: warning: data definition has no type or storage class
    1325 |         err = team_port_enable_netpoll(port);
         |         ^~~
   team/team_core.c:1325:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1325:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1325:40: error: passing argument 1 of 'team_port_enable_netpoll' makes pointer from integer without a cast [-Wint-conversion]
    1325 |         err = team_port_enable_netpoll(port);
         |                                        ^~~~
         |                                        |
         |                                        int
   team/team_core.c:1158:55: note: expected 'struct team_port *' but argument is of type 'int'
    1158 | static int team_port_enable_netpoll(struct team_port *port)
         |                                     ~~~~~~~~~~~~~~~~~~^~~~
   team/team_core.c:1325:15: error: initializer element is not constant
    1325 |         err = team_port_enable_netpoll(port);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1326:9: error: expected identifier or '(' before 'if'
    1326 |         if (err) {
         |         ^~
   team/team_core.c:1332:9: error: expected identifier or '(' before 'if'
    1332 |         if (!(dev->features & NETIF_F_LRO))
         |         ^~
   team/team_core.c:1335:9: warning: data definition has no type or storage class
    1335 |         err = netdev_rx_handler_register(port_dev, team_handle_frame,
         |         ^~~
   team/team_core.c:1335:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1335:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1336:42: error: passing argument 3 of 'netdev_rx_handler_register' makes pointer from integer without a cast [-Wint-conversion]
    1336 |                                          port);
         |                                          ^~~~
         |                                          |
         |                                          int
   In file included from team/team_core.c:17:
   include/linux/netdevice.h:4332:38: note: expected 'void *' but argument is of type 'int'
    4332 |                                void *rx_handler_data);
         |                                ~~~~~~^~~~~~~~~~~~~~~
   team/team_core.c:1337:9: error: expected identifier or '(' before 'if'
    1337 |         if (err) {
         |         ^~
   team/team_core.c:1343:9: warning: data definition has no type or storage class
    1343 |         err = team_upper_dev_link(team, port, extack);
         |         ^~~
   team/team_core.c:1343:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1343:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1343:41: error: passing argument 2 of 'team_upper_dev_link' makes pointer from integer without a cast [-Wint-conversion]
    1343 |         err = team_upper_dev_link(team, port, extack);
         |                                         ^~~~
         |                                         |
         |                                         int
   team/team_core.c:1186:69: note: expected 'struct team_port *' but argument is of type 'int'
    1186 | static int team_upper_dev_link(struct team *team, struct team_port *port,
         |                                                   ~~~~~~~~~~~~~~~~~~^~~~
   team/team_core.c:1344:9: error: expected identifier or '(' before 'if'
    1344 |         if (err) {
         |         ^~
   team/team_core.c:1350:9: warning: data definition has no type or storage class
    1350 |         err = __team_option_inst_add_port(team, port);
         |         ^~~
   team/team_core.c:1350:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1350:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1350:49: error: passing argument 2 of '__team_option_inst_add_port' makes pointer from integer without a cast [-Wint-conversion]
    1350 |         err = __team_option_inst_add_port(team, port);
         |                                                 ^~~~
         |                                                 |
         |                                                 int
   team/team_core.c:219:58: note: expected 'struct team_port *' but argument is of type 'int'
     219 |                                        struct team_port *port)
         |                                        ~~~~~~~~~~~~~~~~~~^~~~
   team/team_core.c:1351:9: error: expected identifier or '(' before 'if'
    1351 |         if (err) {
         |         ^~
   team/team_core.c:1358:9: error: expected identifier or '(' before 'if'
    1358 |         if (dev->flags & IFF_PROMISC) {
         |         ^~
   team/team_core.c:1365:9: error: expected identifier or '(' before 'if'
    1365 |         if (dev->flags & IFF_ALLMULTI) {
         |         ^~
   team/team_core.c:1374:9: warning: data definition has no type or storage class
    1374 |         err = team_dev_type_check_change(dev, port_dev);
         |         ^~~
   team/team_core.c:1374:9: error: type defaults to 'int' in declaration of 'err' [-Wimplicit-int]
   team/team_core.c:1374:9: error: redefinition of 'err'
   team/team_core.c:1304:9: note: previous definition of 'err' with type 'int'
    1304 |         err = team_port_enter(team, port);
         |         ^~~
   team/team_core.c:1375:9: error: expected identifier or '(' before 'if'
    1375 |         if (err)
         |         ^~
   team/team_core.c:1378:9: error: expected identifier or '(' before 'if'
    1378 |         if (dev->flags & IFF_UP) {
         |         ^~
   In file included from arch/powerpc/include/generated/asm/rwonce.h:1,
                    from include/linux/compiler.h:369,
                    from include/linux/build_bug.h:5,
                    from include/linux/bits.h:30,
                    from include/linux/bitops.h:6,
                    from include/linux/bitmap.h:8:
>> include/asm-generic/rwonce.h:59:1: error: expected identifier or '(' before 'do'
      59 | do {                                                                    \
         | ^~
   team/team_core.c:1385:9: note: in expansion of macro 'WRITE_ONCE'
    1385 |         WRITE_ONCE(port->tx_index, -1);
         |         ^~~~~~~~~~
>> include/asm-generic/rwonce.h:62:3: error: expected identifier or '(' before 'while'
      62 | } while (0)
         |   ^~~~~
   team/team_core.c:1385:9: note: in expansion of macro 'WRITE_ONCE'
    1385 |         WRITE_ONCE(port->tx_index, -1);
         |         ^~~~~~~~~~
   team/team_core.c:1386:27: error: expected declaration specifiers or '...' before '&' token
    1386 |         list_add_tail_rcu(&port->list, &team->port_list);
         |                           ^
   team/team_core.c:1386:40: error: expected declaration specifiers or '...' before '&' token
    1386 |         list_add_tail_rcu(&port->list, &team->port_list);
         |                                        ^
   team/team_core.c:1387:9: warning: data definition has no type or storage class
    1387 |         team_port_enable(team, port);
         |         ^~~~~~~~~~~~~~~~
   team/team_core.c:1387:9: error: type defaults to 'int' in declaration of 'team_port_enable' [-Wimplicit-int]
   team/team_core.c:1387:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1387:9: error: conflicting types for 'team_port_enable'; have 'int()'
   team/team_core.c:1060:13: note: previous definition of 'team_port_enable' with type 'void(struct team *, struct team_port *)'
    1060 | static void team_port_enable(struct team *team,
         |             ^~~~~~~~~~~~~~~~
   team/team_core.c:1388:9: warning: data definition has no type or storage class
    1388 |         netdev_compute_master_upper_features(dev, true);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1388:9: error: type defaults to 'int' in declaration of 'netdev_compute_master_upper_features' [-Wimplicit-int]
   team/team_core.c:1388:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1388:9: error: conflicting types for 'netdev_compute_master_upper_features'; have 'int()'
   include/linux/netdevice.h:5460:6: note: previous declaration of 'netdev_compute_master_upper_features' with type 'void(struct net_device *, bool)' {aka 'void(struct net_device *, _Bool)'}
    5460 | void netdev_compute_master_upper_features(struct net_device *dev, bool update_header);
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1389:9: warning: data definition has no type or storage class
    1389 |         netdev_lock_ops(port_dev);
         |         ^~~~~~~~~~~~~~~
   team/team_core.c:1389:9: error: type defaults to 'int' in declaration of 'netdev_lock_ops' [-Wimplicit-int]
   team/team_core.c:1389:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1389:9: error: conflicting types for 'netdev_lock_ops'; have 'int()'
   In file included from team/team_core.c:26:
   include/net/netdev_lock.h:39:20: note: previous definition of 'netdev_lock_ops' with type 'void(struct net_device *)'
      39 | static inline void netdev_lock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~
   team/team_core.c:1390:44: error: expected ')' before '!' token
    1390 |         __team_port_change_port_added(port, !!netif_oper_up(port_dev));
         |                                            ^~
         |                                            )
   team/team_core.c:1391:9: warning: data definition has no type or storage class
    1391 |         netdev_unlock_ops(port_dev);
         |         ^~~~~~~~~~~~~~~~~
   team/team_core.c:1391:9: error: type defaults to 'int' in declaration of 'netdev_unlock_ops' [-Wimplicit-int]
   team/team_core.c:1391:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1391:9: error: conflicting types for 'netdev_unlock_ops'; have 'int()'
   include/net/netdev_lock.h:45:20: note: previous definition of 'netdev_unlock_ops' with type 'void(struct net_device *)'
      45 | static inline void netdev_unlock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~
   team/team_core.c:1392:9: warning: data definition has no type or storage class
    1392 |         __team_options_change_check(team);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1392:9: error: type defaults to 'int' in declaration of '__team_options_change_check' [-Wimplicit-int]
   team/team_core.c:1392:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1392:9: error: conflicting types for '__team_options_change_check'; have 'int()'
   team/team_core.c:332:13: note: previous declaration of '__team_options_change_check' with type 'void(struct team *)'
     332 | static void __team_options_change_check(struct team *team);
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1394:25: error: expected ')' before string constant
    1394 |         netdev_info(dev, "Port device %s added\n", portname);
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
         |                         )
   team/team_core.c:1396:9: error: expected identifier or '(' before 'return'
    1396 |         return 0;
         |         ^~~~~~
   team/team_core.c:1398:17: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1398 | err_set_dev_type:
         |                 ^
   team/team_core.c:1403:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1403 | err_option_port_add:
         |                    ^
   team/team_core.c:1406:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1406 | err_set_upper_link:
         |                   ^
   team/team_core.c:1409:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1409 | err_handler_register:
         |                     ^
   team/team_core.c:1412:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1412 | err_enable_netpoll:
         |                   ^
   team/team_core.c:1415:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1415 | err_vids_add:
         |             ^
   team/team_core.c:1418:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1418 | err_dev_open:
         |             ^
   team/team_core.c:1420:9: warning: data definition has no type or storage class
    1420 |         team_port_set_orig_dev_addr(port);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   team/team_core.c:1420:9: error: type defaults to 'int' in declaration of 'team_port_set_orig_dev_addr' [-Wimplicit-int]
   team/team_core.c:1420:9: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
   team/team_core.c:1422:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1422 | err_port_enter:
         |               ^
   team/team_core.c:1425:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
    1425 | err_set_mtu:
         |            ^


vim +1238 drivers/net/team/team_core.c

bb9215a9817950 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1056  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1057  /*
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1058   * Enable TX AND RX on the port.
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1059   */
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09 @1060  static void team_port_enable(struct team *team,
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1061  			     struct team_port *port)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1062  {
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1063  	bool rx_was_enabled;
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1064  	bool tx_was_enabled;
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1065  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1066  	if (team_port_enabled(port))
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1067  		return;
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1068  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1069  	rx_was_enabled = team_port_rx_enabled(port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1070  	tx_was_enabled = team_port_tx_enabled(port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1071  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1072  	if (!rx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1073  		__team_port_enable_rx(team, port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1074  	if (!tx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1075  		__team_port_enable_tx(team, port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1076  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1077  	team_adjust_ops(team);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1078  	if (!tx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1079  		team_queue_override_port_add(team, port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1080  	team_notify_peers(team);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1081  	if (!rx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1082  		team_mcast_rejoin(team);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1083  	if (!tx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1084  		team_lower_state_changed(port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1085  }
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1086  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1087  static void team_port_disable(struct team *team,
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1088  			      struct team_port *port)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1089  {
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1090  	bool rx_was_enabled = team_port_rx_enabled(port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1091  	bool tx_was_enabled = team_port_tx_enabled(port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1092  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1093  	if (!tx_was_enabled && !rx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1094  		return;
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1095  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1096  	if (tx_was_enabled) {
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1097  		__team_port_disable_tx(team, port);
735d381fa57c57 drivers/net/team/team.c      Jiri Pirko         2013-06-10  1098  		team_queue_override_port_del(team, port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1099  	}
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1100  	if (rx_was_enabled)
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1101  		__team_port_disable_rx(team, port);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1102  
735d381fa57c57 drivers/net/team/team.c      Jiri Pirko         2013-06-10  1103  	team_adjust_ops(team);
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1104  
68f0833f279ac2 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1105  	if (tx_was_enabled)
3a0d6c5af5e526 drivers/net/team/team.c      Jiri Pirko         2015-12-03  1106  		team_lower_state_changed(port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1107  }
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1108  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1109  static int team_port_enter(struct team *team, struct team_port *port)
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1110  {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1111  	int err = 0;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1112  
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1113  	dev_hold(netdev_from_priv(team));
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1114  	if (team->ops.port_enter) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1115  		err = team->ops.port_enter(team, port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1116  		if (err) {
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1117  			netdev_err(netdev_from_priv(team),
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1118  				   "Device %s failed to enter team mode\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1119  				   port->dev->name);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1120  			goto err_port_enter;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1121  		}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1122  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1123  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1124  	return 0;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1125  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1126  err_port_enter:
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1127  	dev_put(netdev_from_priv(team));
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1128  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1129  	return err;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1130  }
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1131  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1132  static void team_port_leave(struct team *team, struct team_port *port)
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1133  {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1134  	if (team->ops.port_leave)
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1135  		team->ops.port_leave(team, port);
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1136  	dev_put(netdev_from_priv(team));
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1137  }
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1138  
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1139  #ifdef CONFIG_NET_POLL_CONTROLLER
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1140  static int __team_port_enable_netpoll(struct team_port *port)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1141  {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1142  	struct netpoll *np;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1143  	int err;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1144  
bf4afc53b77aea drivers/net/team/team_core.c Linus Torvalds     2026-02-21  1145  	np = kzalloc_obj(*np);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1146  	if (!np)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1147  		return -ENOMEM;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1148  
a8779ec1c5e605 drivers/net/team/team.c      Eric W. Biederman  2014-03-27  1149  	err = __netpoll_setup(np, port->dev);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1150  	if (err) {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1151  		kfree(np);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1152  		return err;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1153  	}
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1154  	port->np = np;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1155  	return err;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1156  }
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1157  
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1158  static int team_port_enable_netpoll(struct team_port *port)
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1159  {
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1160  	if (!netdev_from_priv(port->team)->npinfo)
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1161  		return 0;
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1162  
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1163  	return __team_port_enable_netpoll(port);
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1164  }
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1165  
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1166  static void team_port_disable_netpoll(struct team_port *port)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1167  {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1168  	struct netpoll *np = port->np;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1169  
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1170  	if (!np)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1171  		return;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1172  	port->np = NULL;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1173  
c9fbd71f730943 drivers/net/team/team.c      Debabrata Banerjee 2018-10-18  1174  	__netpoll_free(np);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1175  }
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1176  #else
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24  1177  static int team_port_enable_netpoll(struct team_port *port)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1178  {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1179  	return 0;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1180  }
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1181  static void team_port_disable_netpoll(struct team_port *port)
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1182  {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1183  }
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1184  #endif
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1185  
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1186  static int team_upper_dev_link(struct team *team, struct team_port *port,
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1187  			       struct netlink_ext_ack *extack)
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1188  {
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1189  	struct netdev_lag_upper_info lag_upper_info;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1190  	int err;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1191  
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1192  	lag_upper_info.tx_type = team->mode->lag_tx_type;
f44aa9ef7950a5 drivers/net/team/team.c      John Hurley        2018-05-23  1193  	lag_upper_info.hash_type = NETDEV_LAG_HASH_UNKNOWN;
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1194  	err = netdev_master_upper_dev_link(port->dev, netdev_from_priv(team),
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1195  					   NULL, &lag_upper_info, extack);
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1196  	if (err)
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1197  		return err;
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1198  	port->dev->priv_flags |= IFF_TEAM_PORT;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1199  	return 0;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1200  }
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1201  
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1202  static void team_upper_dev_unlink(struct team *team, struct team_port *port)
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1203  {
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1204  	netdev_upper_dev_unlink(port->dev, netdev_from_priv(team));
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1205  	port->dev->priv_flags &= ~IFF_TEAM_PORT;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1206  }
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1207  
10f3f51d56648f drivers/net/team/team.c      Jiri Pirko         2012-09-21  1208  static void __team_port_change_port_added(struct team_port *port, bool linkup);
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17  1209  static int team_dev_type_check_change(struct net_device *dev,
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17  1210  				      struct net_device *port_dev);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1211  
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1212  static int team_port_add(struct team *team, struct net_device *port_dev,
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1213  			 struct netlink_ext_ack *extack)
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1214  {
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20  1215  	struct net_device *dev = netdev_from_priv(team);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1216  	struct team_port *port;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1217  	char *portname = port_dev->name;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1218  	int err;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1219  
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17  1220  	if (port_dev->flags & IFF_LOOPBACK) {
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1221  		NL_SET_ERR_MSG(extack, "Loopback device can't be added as a team port");
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17  1222  		netdev_err(dev, "Device %s is loopback device. Loopback devices can't be added as a team port\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1223  			   portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1224  		return -EINVAL;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1225  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1226  
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1227  		if (port_dev->type == ARPHRD_CAN ||
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1228  		    port_dev->type == ARPHRD_IEEE802154 ||
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1229  		    port_dev->type == ARPHRD_IEEE802154_MONITOR) {
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1230  			NL_SET_ERR_MSG(extack,
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1231  				       "CAN and IEEE 802.15.4 devices can't be added as a team port");
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1232  			netdev_err(dev, "Device %s is CAN or IEEE 802.15.4. These device types can't be added as a team port\n",
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1233  				   portname);
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1234  			return -EINVAL;
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1235  		}
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28 @1236  	}
a97c4fcfc42bce drivers/net/team/team_core.c Jiale Yao          2026-07-28  1237  
acb10eac5100ba drivers/net/team/team.c      Julian Wiedmann    2019-03-29 @1238  	if (netif_is_team_port(port_dev)) {
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1239  		NL_SET_ERR_MSG(extack, "Device is already a port of a team device");
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1240  		netdev_err(dev, "Device %s is already a port "
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1241  				"of a team device\n", portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1242  		return -EBUSY;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1243  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1244  
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1245  	if (dev == port_dev) {
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1246  		NL_SET_ERR_MSG(extack, "Cannot enslave team device to itself");
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1247  		netdev_err(dev, "Cannot enslave team device to itself\n");
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1248  		return -EINVAL;
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1249  	}
471b83bd8bbe4e drivers/net/team/team.c      Ido Schimmel       2018-10-01  1250  
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1251  	if (netdev_has_upper_dev(dev, port_dev)) {
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1252  		NL_SET_ERR_MSG(extack, "Device is already an upper device of the team interface");
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1253  		netdev_err(dev, "Device %s is already an upper device of the team interface\n",
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1254  			   portname);
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1255  		return -EBUSY;
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1256  	}
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1257  
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1258  	if (netdev_has_upper_dev(port_dev, dev)) {
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1259  		NL_SET_ERR_MSG(extack, "Device is already a lower device of the team interface");
3fff5da4ca2164 drivers/net/team/team_core.c Octavian Purdila   2024-12-30  1260  		netdev_err(dev, "Device %s is already a lower device of the team interface\n",
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1261  			   portname);
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1262  		return -EBUSY;
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1263  	}
925b0c841e066b drivers/net/team/team.c      Hangbin Liu        2019-04-19  1264  
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1265  	if (port_dev->features & NETIF_F_VLAN_CHALLENGED &&
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1266  	    vlan_uses_dev(dev)) {
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1267  		NL_SET_ERR_MSG(extack, "Device is VLAN challenged and team device has VLAN set up");
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1268  		netdev_err(dev, "Device %s is VLAN challenged and team device has VLAN set up\n",
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1269  			   portname);
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1270  		return -EPERM;
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1271  	}
2c33bb37cb69dc drivers/net/team/team.c      Jiri Pirko         2012-08-23  1272  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1273  	if (port_dev->flags & IFF_UP) {
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27  1274  		NL_SET_ERR_MSG(extack, "Device is up. Set it down before adding it as a team port");
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1275  		netdev_err(dev, "Device %s is up. Set it down before adding it as a team port\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1276  			   portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1277  		return -EBUSY;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1278  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1279  
5149ee58385bdf drivers/net/team/team.c      Jiri Pirko         2012-06-19 @1280  	port = kzalloc(sizeof(struct team_port) + team->mode->port_priv_size,
5149ee58385bdf drivers/net/team/team.c      Jiri Pirko         2012-06-19  1281  		       GFP_KERNEL);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1282  	if (!port)
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1283  		return -ENOMEM;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1284  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1285  	port->dev = port_dev;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1286  	port->team = team;
8ff5105a2b9dd0 drivers/net/team/team.c      Jiri Pirko         2012-07-27 @1287  	INIT_LIST_HEAD(&port->qom_list);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1288  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1289  	port->orig.mtu = port_dev->mtu;
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1290  	/*
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1291  	 * MTU assignment will be handled in team_dev_type_check_change
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1292  	 * if dev and port_dev are of different types
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1293  	 */
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1294  	if (dev->type == port_dev->type) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1295  		err = dev_set_mtu(port_dev, dev->mtu);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1296  		if (err) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1297  			netdev_dbg(dev, "Error %d calling dev_set_mtu\n", err);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1298  			goto err_set_mtu;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1299  		}
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1300  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1301  
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17  1302  	memcpy(port->orig.dev_addr, port_dev->dev_addr, port_dev->addr_len);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1303  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1304  	err = team_port_enter(team, port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1305  	if (err) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1306  		netdev_err(dev, "Device %s failed to enter team mode\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1307  			   portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1308  		goto err_port_enter;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1309  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1310  
00f54e68924eaf drivers/net/team/team.c      Petr Machata       2018-12-06 @1311  	err = dev_open(port_dev, extack);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1312  	if (err) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1313  		netdev_dbg(dev, "Device %s opening failed\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1314  			   portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1315  		goto err_dev_open;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1316  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1317  
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08 @1318  	err = vlan_vids_add_by_dev(port_dev, dev);
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1319  	if (err) {
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1320  		netdev_err(dev, "Failed to add vlan ids to device %s\n",
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1321  				portname);
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1322  		goto err_vids_add;
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1323  	}
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1324  
9cf2f437ca5b39 drivers/net/team/team.c      Xin Long           2018-04-24 @1325  	err = team_port_enable_netpoll(port);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1326  	if (err) {
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1327  		netdev_err(dev, "Failed to enable netpoll on device %s\n",
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1328  			   portname);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1329  		goto err_enable_netpoll;
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1330  	}
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1331  
fbe168ba91f7c3 drivers/net/team/team.c      Michal Kubeček     2014-11-13  1332  	if (!(dev->features & NETIF_F_LRO))
fbe168ba91f7c3 drivers/net/team/team.c      Michal Kubeček     2014-11-13  1333  		dev_disable_lro(port_dev);
fbe168ba91f7c3 drivers/net/team/team.c      Michal Kubeček     2014-11-13  1334  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1335  	err = netdev_rx_handler_register(port_dev, team_handle_frame,
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1336  					 port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1337  	if (err) {
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1338  		netdev_err(dev, "Device %s failed to register rx_handler\n",
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1339  			   portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1340  		goto err_handler_register;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1341  	}
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1342  
44d15d930bb846 drivers/net/team/team.c      Ido Schimmel       2018-02-27 @1343  	err = team_upper_dev_link(team, port, extack);
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1344  	if (err) {
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1345  		netdev_err(dev, "Device %s failed to set upper link\n",
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1346  			   portname);
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1347  		goto err_set_upper_link;
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1348  	}
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1349  
35b384bd14f91c drivers/net/team/team.c      Jiri Pirko         2012-06-19 @1350  	err = __team_option_inst_add_port(team, port);
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1351  	if (err) {
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1352  		netdev_err(dev, "Device %s failed to add per-port options\n",
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1353  			   portname);
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1354  		goto err_option_port_add;
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1355  	}
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1356  
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1357  	/* set promiscuity level to new slave */
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1358  	if (dev->flags & IFF_PROMISC) {
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1359  		err = dev_set_promiscuity(port_dev, 1);
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1360  		if (err)
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1361  			goto err_set_slave_promisc;
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1362  	}
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1363  
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1364  	/* set allmulti level to new slave */
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1365  	if (dev->flags & IFF_ALLMULTI) {
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1366  		err = dev_set_allmulti(port_dev, 1);
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1367  		if (err) {
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1368  			if (dev->flags & IFF_PROMISC)
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1369  				dev_set_promiscuity(port_dev, -1);
aee0f01b4f1188 drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-28  1370  			goto err_set_slave_allmulti;
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1371  		}
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1372  	}
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1373  
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1374  	err = team_dev_type_check_change(dev, port_dev);
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1375  	if (err)
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1376  		goto err_set_dev_type;
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22  1377  
bd60234222b2fd drivers/net/team/team.c      Benjamin Poirier   2022-09-07  1378  	if (dev->flags & IFF_UP) {
982cf3b3999d39 drivers/net/team/team.c      Xin Long           2018-03-26  1379  		netif_addr_lock_bh(dev);
982cf3b3999d39 drivers/net/team/team.c      Xin Long           2018-03-26  1380  		dev_uc_sync_multiple(port_dev, dev);
982cf3b3999d39 drivers/net/team/team.c      Xin Long           2018-03-26  1381  		dev_mc_sync_multiple(port_dev, dev);
982cf3b3999d39 drivers/net/team/team.c      Xin Long           2018-03-26  1382  		netif_addr_unlock_bh(dev);
bd60234222b2fd drivers/net/team/team.c      Benjamin Poirier   2022-09-07  1383  	}
982cf3b3999d39 drivers/net/team/team.c      Xin Long           2018-03-26  1384  
fa6ed31dd913b0 drivers/net/team/team_core.c Marc Harvey        2026-04-09  1385  	WRITE_ONCE(port->tx_index, -1);
19a0b58e506b06 drivers/net/team/team.c      Jiri Pirko         2012-04-20  1386  	list_add_tail_rcu(&port->list, &team->port_list);
72df935d985c15 drivers/net/team/team.c      Jiri Pirko         2013-06-08 @1387  	team_port_enable(team, port);
9027497a25e3c9 drivers/net/team/team_core.c Qingfang Deng      2026-03-20 @1388  	netdev_compute_master_upper_features(dev, true);
a6882c1583262d drivers/net/team/team_core.c Jakub Kicinski     2026-06-02 @1389  	netdev_lock_ops(port_dev);
8c7a77267eec81 drivers/net/team/team.c      George Wilkie      2019-02-20 @1390  	__team_port_change_port_added(port, !!netif_oper_up(port_dev));
a6882c1583262d drivers/net/team/team_core.c Jakub Kicinski     2026-06-02 @1391  	netdev_unlock_ops(port_dev);
35b384bd14f91c drivers/net/team/team.c      Jiri Pirko         2012-06-19 @1392  	__team_options_change_check(team);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1393  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1394  	netdev_info(dev, "Port device %s added\n", portname);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1395  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1396  	return 0;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1397  
0ae9cfc454ea5e drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-22 @1398  err_set_dev_type:
aee0f01b4f1188 drivers/net/team/team_core.c Nikola Z. Ivanov   2025-11-28  1399  err_set_slave_allmulti:
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1400  err_set_slave_promisc:
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1401  	__team_option_inst_del_port(team, port);
43c2adb9df7ddd drivers/net/team/team.c      Hangbin Liu        2019-04-08  1402  
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1403  err_option_port_add:
8fd728566a354f drivers/net/team/team.c      Jiri Pirko         2015-12-03  1404  	team_upper_dev_unlink(team, port);
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1405  
d7d3c05135f37d drivers/net/team/team.c      Jiri Pirko         2014-08-25  1406  err_set_upper_link:
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1407  	netdev_rx_handler_unregister(port_dev);
80f7c6683fe0e8 drivers/net/team/team.c      Jiri Pirko         2012-04-10  1408  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1409  err_handler_register:
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1410  	team_port_disable_netpoll(port);
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1411  
bd2d0837abc020 drivers/net/team/team.c      Jiri Pirko         2012-07-17  1412  err_enable_netpoll:
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1413  	vlan_vids_del_by_dev(port_dev, dev);
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1414  
57459185a19b02 drivers/net/team/team.c      Jiri Pirko         2011-12-08  1415  err_vids_add:
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1416  	dev_close(port_dev);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1417  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1418  err_dev_open:
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1419  	team_port_leave(team, port);
1d76efe1577b43 drivers/net/team/team.c      Jiri Pirko         2012-08-17 @1420  	team_port_set_orig_dev_addr(port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1421  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1422  err_port_enter:
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1423  	dev_set_mtu(port_dev, port->orig.mtu);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1424  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1425  err_set_mtu:
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1426  	kfree(port);
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1427  
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1428  	return err;
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11 @1429  }
3d249d4ca7d0ed drivers/net/team/team.c      Jiri Pirko         2011-11-11  1430  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2026-08-05  5:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-28 15:12 [PATCH v2] team: reject CAN and IEEE 802.15.4 devices in team_port_add Jiale Yao
2026-07-29  9:15 ` Jiri Pirko
2026-07-29 12:11   ` jiale yao
2026-08-05  5:00 ` kernel test robot [this message]
2026-08-05 15:42 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202608051230.16XSe01k-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pabeni@redhat.com \
    --cc=yaojiale02@163.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.