tree:
https://github.com/jpirko/linux_mlxsw petrm_8021qaz
head: 9695d59b85070316a2336212a26addeff39f3c56
commit: 9695d59b85070316a2336212a26addeff39f3c56 [18/18] more wip
config: powerpc64-allyesconfig (attached as .config)
compiler: powerpc64-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
git checkout 9695d59b85070316a2336212a26addeff39f3c56
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/srcu.h:21,
from include/linux/notifier.h:16,
from arch/powerpc/include/asm/uprobes.h:12,
from include/linux/uprobes.h:49,
from include/linux/mm_types.h:14,
from include/linux/mmzone.h:21,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:9,
from include/linux/module.h:16,
from drivers/net/ethernet/mellanox/mlxsw/spectrum.c:5:
drivers/net/ethernet/mellanox/mlxsw/spectrum.c: In function
'mlxsw_sp_port_create':
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/workqueue.h:233:16: note: in definition of macro '__INIT_WORK'
233 | __init_work((_work), _onstack); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/workqueue.h:234:4: note: in definition of macro '__INIT_WORK'
234 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/workqueue.h:235:22: note: in definition of macro '__INIT_WORK'
235 | lockdep_init_map(&(_work)->lockdep_map,
"(work_completion)"#_work, &__key, 0); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/workqueue.h:236:20: note: in definition of macro '__INIT_WORK'
236 | INIT_LIST_HEAD(&(_work)->entry); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/workqueue.h:237:4: note: in definition of macro '__INIT_WORK'
237 | (_work)->func = (_func); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1568:6: error:
'mlxsw_sp_pb_speed_update_work' undeclared (first use in this function); did you
mean 'mlxsw_sp_span_speed_update_work'?
1568 |
mlxsw_sp_pb_speed_update_work);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/workqueue.h:237:20: note: in definition of macro '__INIT_WORK'
237 | (_work)->func = (_func); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1568:6: note: each undeclared identifier
is reported only once for each function it appears in
1568 | mlxsw_sp_pb_speed_update_work);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/workqueue.h:237:20: note: in definition of macro '__INIT_WORK'
237 | (_work)->func = (_func); \
| ^~~~~
include/linux/workqueue.h:257:3: note: in expansion of macro 'INIT_WORK'
257 | INIT_WORK(&(_work)->work, (_func)); \
| ^~~~~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/workqueue.h:9,
from include/linux/srcu.h:21,
from include/linux/notifier.h:16,
from arch/powerpc/include/asm/uprobes.h:12,
from include/linux/uprobes.h:49,
from include/linux/mm_types.h:14,
from include/linux/mmzone.h:21,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:9,
from include/linux/module.h:16,
from drivers/net/ethernet/mellanox/mlxsw/spectrum.c:5:
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:34: error:
'struct mlxsw_sp_port' has no member named 'span'
1567 |
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~
include/linux/timer.h:114:19: note: in definition of macro '__init_timer'
114 | init_timer_key((_timer), (_fn), (_flags), #_timer, &__key);\
| ^~~~~~
include/linux/workqueue.h:272:2: note: in expansion of macro
'__INIT_DELAYED_WORK'
272 | __INIT_DELAYED_WORK(_work, _func, 0)
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1567:2: note: in expansion of macro
'INIT_DELAYED_WORK'
1567 | INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
| ^~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c: In function
'mlxsw_sp_port_remove':
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1624:41: error: 'struct
mlxsw_sp_port' has no member named 'span'
1624 | cancel_delayed_work_sync(&mlxsw_sp_port->span.speed_update_dw);
| ^~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c: In function
'mlxsw_sp_pude_event_func':
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:2029:40: error: 'struct
mlxsw_sp_port' has no member named 'span'
2029 | mlxsw_core_schedule_dw(&mlxsw_sp_port->span.speed_update_dw, 0);
| ^~
--
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:564:6:
warning: no previous prototype for 'mlxsw_sp_pb_speed_update_work'
[-Wmissing-prototypes]
564 | void mlxsw_sp_pb_speed_update_work(struct
work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c: In function
'mlxsw_sp_pb_speed_update_work':
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:575:2:
error: 'err' undeclared (first use in this function)
575 | err =
mlxsw_sp_port_speed_get(mlxsw_sp_port, &speed);
| ^~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:575:2: note: each undeclared
identifier is reported only once for each function it appears in
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:577:10:
warning: 'return' with a value, in function returning void [-Wreturn-type]
577 | return err;
| ^~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:564:6: note: declared here
564 | void mlxsw_sp_pb_speed_update_work(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/seqlock.h:19,
from include/linux/mmzone.h:16,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/bvec.h:13,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:19,
from drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:7:
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:595:28:
error: dereferencing pointer to incomplete type 'struct mlxsw_sp_span'
595 | mutex_lock(&mlxsw_sp->span->analyzed_ports_lock);
| ^~
include/linux/mutex.h:167:44: note: in definition of macro 'mutex_lock'
167 | #define mutex_lock(lock) mutex_lock_nested(lock, 0)
| ^~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:597:6:
error: implicit declaration of function 'mlxsw_sp_span_analyzed_port_find'
[-Werror=implicit-function-declaration]
597 | if
(mlxsw_sp_span_analyzed_port_find(mlxsw_sp->span,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c:599:3:
error: implicit declaration of function 'mlxsw_sp_span_port_buffer_update'; did
you mean 'mlxsw_sp_port_buffers_init'? [-Werror=implicit-function-declaration]
599 | mlxsw_sp_span_port_buffer_update(mlxsw_sp_port,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| mlxsw_sp_port_buffers_init
cc1: some warnings being treated as errors
--
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c: In function
'mlxsw_sp_span_port_buffer_update':
> drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c:988:13:
error: implicit declaration of function 'mlxsw_sp_span_buffsize_get'; did you mean
'mlxsw_reg_sbib_buff_size_get'? [-Werror=implicit-function-declaration]
988 | buffsize = mlxsw_sp_span_buffsize_get(mlxsw_sp, speed, mtu);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| mlxsw_reg_sbib_buff_size_get
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c: At top level:
> drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c:1743:3:
error: 'const struct mlxsw_sp_span_ops' has no member named 'buffsize_get'
1743 | .buffsize_get = mlxsw_sp3_span_buffsize_get,
| ^~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c:1743:18:
error: 'mlxsw_sp3_span_buffsize_get' undeclared here (not in a function); did you
mean 'mlxsw_reg_sbib_buff_size_get'?
1743 | .buffsize_get =
mlxsw_sp3_span_buffsize_get,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| mlxsw_reg_sbib_buff_size_get
> drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c:1743:18:
error: positional initialization of field in 'struct' declared with
'designated_init' attribute [-Werror=designated-init]
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c:1743:18: note: (near initialization
for 'mlxsw_sp3_span_ops')
cc1: some warnings being treated as errors
--
> drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1238:3:
error: 'const struct mlxsw_sp_port_type_speed_ops' has no member named
'ptys_max_speed'
1238 | .ptys_max_speed = mlxsw_sp1_ptys_max_speed,
| ^~~~~~~~~~~~~~
> drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1238:22:
error: positional initialization of field in 'struct' declared with
'designated_init' attribute [-Werror=designated-init]
1238 |
.ptys_max_speed = mlxsw_sp1_ptys_max_speed,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1238:22: note: (near
initialization for 'mlxsw_sp1_port_type_speed_ops')
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1238:22: error: initialization
of 'u32 (*)(struct mlxsw_sp *, u8, const struct ethtool_link_ksettings *)' {aka
'unsigned int (*)(struct mlxsw_sp *, unsigned char, const struct
ethtool_link_ksettings *)'} from incompatible pointer type 'u32 (*)(struct
mlxsw_sp *, u8)' {aka 'unsigned int (*)(struct mlxsw_sp *, unsigned char)'}
[-Werror=incompatible-pointer-types]
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1238:22: note: (near
initialization for 'mlxsw_sp1_port_type_speed_ops.to_ptys_advert_link')
> drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1239:26:
warning: initialized field overwritten [-Woverride-init]
1239 |
.to_ptys_advert_link = mlxsw_sp1_to_ptys_advert_link,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1239:26: note: (near
initialization for 'mlxsw_sp1_port_type_speed_ops.to_ptys_advert_link')
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1660:3: error: 'const struct
mlxsw_sp_port_type_speed_ops' has no member named 'ptys_max_speed'
1660 | .ptys_max_speed = mlxsw_sp2_ptys_max_speed,
| ^~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1660:22: error: positional
initialization of field in 'struct' declared with 'designated_init'
attribute [-Werror=designated-init]
1660 | .ptys_max_speed = mlxsw_sp2_ptys_max_speed,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1660:22: note: (near
initialization for 'mlxsw_sp2_port_type_speed_ops')
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1660:22: error: initialization
of 'u32 (*)(struct mlxsw_sp *, u8, const struct ethtool_link_ksettings *)' {aka
'unsigned int (*)(struct mlxsw_sp *, unsigned char, const struct
ethtool_link_ksettings *)'} from incompatible pointer type 'u32 (*)(struct
mlxsw_sp *, u8)' {aka 'unsigned int (*)(struct mlxsw_sp *, unsigned char)'}
[-Werror=incompatible-pointer-types]
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1660:22: note: (near
initialization for 'mlxsw_sp2_port_type_speed_ops.to_ptys_advert_link')
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1661:26: warning: initialized
field overwritten [-Woverride-init]
1661 | .to_ptys_advert_link = mlxsw_sp2_to_ptys_advert_link,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c:1661:26: note: (near
initialization for 'mlxsw_sp2_port_type_speed_ops.to_ptys_advert_link')
cc1: some warnings being treated as errors
#
https://github.com/jpirko/linux_mlxsw/commit/9695d59b85070316a2336212a26a...
git remote add jpirko-mlxsw
https://github.com/jpirko/linux_mlxsw
git fetch --no-tags jpirko-mlxsw petrm_8021qaz
git checkout 9695d59b85070316a2336212a26addeff39f3c56
vim +1567 drivers/net/ethernet/mellanox/mlxsw/spectrum.c
7b819530669458 Petr Machata 2018-08-05 1370
5b15385964fab6 Ido Schimmel 2017-06-08 1371 static int mlxsw_sp_port_create(struct
mlxsw_sp *mlxsw_sp, u8 local_port,
49185277cc451e Jiri Pirko 2019-10-31 1372 u8 split_base_local_port,
35896d9641db1a Jiri Pirko 2019-10-31 1373 struct mlxsw_sp_port_mapping
*port_mapping)
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1374 {
c57529e1d5d882 Ido Schimmel 2017-05-26 1375 struct mlxsw_sp_port_vlan
*mlxsw_sp_port_vlan;
49185277cc451e Jiri Pirko 2019-10-31 1376 bool split = !!split_base_local_port;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1377 struct mlxsw_sp_port *mlxsw_sp_port;
622d3e9201072a Danielle Ratson 2020-07-09 1378 u32 lanes = port_mapping->width;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1379 struct net_device *dev;
1b604efb6c2890 Danielle Ratson 2020-07-09 1380 bool splittable;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1381 int err;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1382
1b604efb6c2890 Danielle Ratson 2020-07-09 1383 splittable = lanes > 1 &&
!split;
e519418f8992b0 Jiri Pirko 2019-03-24 1384 err =
mlxsw_core_port_init(mlxsw_sp->core, local_port,
35896d9641db1a Jiri Pirko 2019-10-31 1385 port_mapping->module + 1,
split,
622d3e9201072a Danielle Ratson 2020-07-09 1386 port_mapping->lane / lanes,
1b604efb6c2890 Danielle Ratson 2020-07-09 1387 splittable, lanes,
cdf29f4a262527 Jiri Pirko 2019-04-03 1388 mlxsw_sp->base_mac,
cdf29f4a262527 Jiri Pirko 2019-04-03 1389 sizeof(mlxsw_sp->base_mac));
5b15385964fab6 Ido Schimmel 2017-06-08 1390 if (err) {
5b15385964fab6 Ido Schimmel 2017-06-08 1391 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to init core port\n",
5b15385964fab6 Ido Schimmel 2017-06-08 1392 local_port);
5b15385964fab6 Ido Schimmel 2017-06-08 1393 return err;
5b15385964fab6 Ido Schimmel 2017-06-08 1394 }
5b15385964fab6 Ido Schimmel 2017-06-08 1395
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1396 dev = alloc_etherdev(sizeof(struct
mlxsw_sp_port));
5b15385964fab6 Ido Schimmel 2017-06-08 1397 if (!dev) {
5b15385964fab6 Ido Schimmel 2017-06-08 1398 err = -ENOMEM;
5b15385964fab6 Ido Schimmel 2017-06-08 1399 goto err_alloc_etherdev;
5b15385964fab6 Ido Schimmel 2017-06-08 1400 }
f20a91f1cc7010 Jiri Pirko 2016-10-27 1401 SET_NETDEV_DEV(dev,
mlxsw_sp->bus_info->dev);
6b2a880f9dd1c8 Jiri Pirko 2019-10-03 1402 dev_net_set(dev,
mlxsw_sp_net(mlxsw_sp));
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1403 mlxsw_sp_port = netdev_priv(dev);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1404 mlxsw_sp_port->dev = dev;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1405 mlxsw_sp_port->mlxsw_sp = mlxsw_sp;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1406 mlxsw_sp_port->local_port =
local_port;
a2d2a20553f0b7 Ido Schimmel 2018-12-20 1407 mlxsw_sp_port->pvid =
MLXSW_SP_DEFAULT_VID;
18f1e70c413713 Ido Schimmel 2016-02-26 1408 mlxsw_sp_port->split = split;
49185277cc451e Jiri Pirko 2019-10-31 1409 mlxsw_sp_port->split_base_local_port
= split_base_local_port;
35896d9641db1a Jiri Pirko 2019-10-31 1410 mlxsw_sp_port->mapping =
*port_mapping;
0c83f88c02085a Ido Schimmel 2016-09-12 1411 mlxsw_sp_port->link.autoneg = 1;
31a08a523ae453 Ido Schimmel 2017-05-26 1412
INIT_LIST_HEAD(&mlxsw_sp_port->vlans_list);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1413
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1414 mlxsw_sp_port->pcpu_stats =
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1415 netdev_alloc_pcpu_stats(struct
mlxsw_sp_port_pcpu_stats);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1416 if (!mlxsw_sp_port->pcpu_stats) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1417 err = -ENOMEM;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1418 goto err_alloc_stats;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1419 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1420
9deef43ddfb1df Nogah Frankel 2017-10-26 1421
INIT_DELAYED_WORK(&mlxsw_sp_port->periodic_hw_stats.update_dw,
fc1bbb0f1831cc Nogah Frankel 2016-09-16 1422 &update_stats_cache);
fc1bbb0f1831cc Nogah Frankel 2016-09-16 1423
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1424 dev->netdev_ops =
&mlxsw_sp_port_netdev_ops;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1425 dev->ethtool_ops =
&mlxsw_sp_port_ethtool_ops;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1426
35896d9641db1a Jiri Pirko 2019-10-31 1427 err =
mlxsw_sp_port_module_map(mlxsw_sp_port);
5b15385964fab6 Ido Schimmel 2017-06-08 1428 if (err) {
5b15385964fab6 Ido Schimmel 2017-06-08 1429 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to map module\n",
5b15385964fab6 Ido Schimmel 2017-06-08 1430 mlxsw_sp_port->local_port);
5b15385964fab6 Ido Schimmel 2017-06-08 1431 goto err_port_module_map;
5b15385964fab6 Ido Schimmel 2017-06-08 1432 }
5b15385964fab6 Ido Schimmel 2017-06-08 1433
3247ff2b318f3e Ido Schimmel 2016-09-08 1434 err =
mlxsw_sp_port_swid_set(mlxsw_sp_port, 0);
3247ff2b318f3e Ido Schimmel 2016-09-08 1435 if (err) {
3247ff2b318f3e Ido Schimmel 2016-09-08 1436 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to set SWID\n",
3247ff2b318f3e Ido Schimmel 2016-09-08 1437 mlxsw_sp_port->local_port);
3247ff2b318f3e Ido Schimmel 2016-09-08 1438 goto err_port_swid_set;
3247ff2b318f3e Ido Schimmel 2016-09-08 1439 }
3247ff2b318f3e Ido Schimmel 2016-09-08 1440
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1441 err =
mlxsw_sp_port_dev_addr_init(mlxsw_sp_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1442 if (err) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1443 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Unable to init port mac address\n",
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1444 mlxsw_sp_port->local_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1445 goto err_dev_addr_init;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1446 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1447
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1448 netif_carrier_off(dev);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1449
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1450 dev->features |= NETIF_F_NETNS_LOCAL
| NETIF_F_LLTX | NETIF_F_SG |
763b4b70afcd32 Yotam Gigi 2016-07-21 1451 NETIF_F_HW_VLAN_CTAG_FILTER |
NETIF_F_HW_TC;
8e44c0ce599191 Jiri Pirko 2019-05-05 1452 dev->hw_features |= NETIF_F_HW_TC |
NETIF_F_LOOPBACK;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1453
d894be57ca92c8 Jarod Wilson 2016-10-20 1454 dev->min_mtu = 0;
d894be57ca92c8 Jarod Wilson 2016-10-20 1455 dev->max_mtu = ETH_MAX_MTU;
d894be57ca92c8 Jarod Wilson 2016-10-20 1456
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1457 /* Each packet needs to have a Tx header
(metadata) on top all other
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1458 * headers.
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1459 */
feb7d387a6cf6c Yotam Gigi 2016-10-04 1460 dev->needed_headroom =
MLXSW_TXHDR_LEN;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1461
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1462 err =
mlxsw_sp_port_system_port_mapping_set(mlxsw_sp_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1463 if (err) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1464 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to set system port mapping\n",
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1465 mlxsw_sp_port->local_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1466 goto err_port_system_port_mapping_set;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1467 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1468
35896d9641db1a Jiri Pirko 2019-10-31 1469 err =
mlxsw_sp_port_speed_by_width_set(mlxsw_sp_port);
18f1e70c413713 Ido Schimmel 2016-02-26 1470 if (err) {
18f1e70c413713 Ido Schimmel 2016-02-26 1471 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to enable speeds\n",
18f1e70c413713 Ido Schimmel 2016-02-26 1472 mlxsw_sp_port->local_port);
18f1e70c413713 Ido Schimmel 2016-02-26 1473 goto err_port_speed_by_width_set;
18f1e70c413713 Ido Schimmel 2016-02-26 1474 }
18f1e70c413713 Ido Schimmel 2016-02-26 1475
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1476 err =
mlxsw_sp_port_mtu_set(mlxsw_sp_port, ETH_DATA_LEN);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1477 if (err) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1478 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to set MTU\n",
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1479 mlxsw_sp_port->local_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1480 goto err_port_mtu_set;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1481 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1482
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1483 err =
mlxsw_sp_port_admin_status_set(mlxsw_sp_port, false);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1484 if (err)
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1485 goto err_port_admin_status_set;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1486
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1487 err =
mlxsw_sp_port_buffers_init(mlxsw_sp_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1488 if (err) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1489 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize buffers\n",
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1490 mlxsw_sp_port->local_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1491 goto err_port_buffers_init;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1492 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1493
90183b980d0af7 Ido Schimmel 2016-04-06 1494 err =
mlxsw_sp_port_ets_init(mlxsw_sp_port);
90183b980d0af7 Ido Schimmel 2016-04-06 1495 if (err) {
90183b980d0af7 Ido Schimmel 2016-04-06 1496 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize ETS\n",
90183b980d0af7 Ido Schimmel 2016-04-06 1497 mlxsw_sp_port->local_port);
90183b980d0af7 Ido Schimmel 2016-04-06 1498 goto err_port_ets_init;
90183b980d0af7 Ido Schimmel 2016-04-06 1499 }
90183b980d0af7 Ido Schimmel 2016-04-06 1500
7b819530669458 Petr Machata 2018-08-05 1501 err =
mlxsw_sp_port_tc_mc_mode_set(mlxsw_sp_port, true);
7b819530669458 Petr Machata 2018-08-05 1502 if (err) {
7b819530669458 Petr Machata 2018-08-05 1503 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize TC MC mode\n",
7b819530669458 Petr Machata 2018-08-05 1504 mlxsw_sp_port->local_port);
7b819530669458 Petr Machata 2018-08-05 1505 goto err_port_tc_mc_mode;
7b819530669458 Petr Machata 2018-08-05 1506 }
7b819530669458 Petr Machata 2018-08-05 1507
f00817df2b428e Ido Schimmel 2016-04-06 1508 /* ETS and buffers must be initialized
before DCB. */
f00817df2b428e Ido Schimmel 2016-04-06 1509 err =
mlxsw_sp_port_dcb_init(mlxsw_sp_port);
f00817df2b428e Ido Schimmel 2016-04-06 1510 if (err) {
f00817df2b428e Ido Schimmel 2016-04-06 1511 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize DCB\n",
f00817df2b428e Ido Schimmel 2016-04-06 1512 mlxsw_sp_port->local_port);
f00817df2b428e Ido Schimmel 2016-04-06 1513 goto err_port_dcb_init;
f00817df2b428e Ido Schimmel 2016-04-06 1514 }
f00817df2b428e Ido Schimmel 2016-04-06 1515
a110748725450a Ido Schimmel 2017-05-26 1516 err =
mlxsw_sp_port_fids_init(mlxsw_sp_port);
45a4a16cdb0332 Ido Schimmel 2017-05-16 1517 if (err) {
a110748725450a Ido Schimmel 2017-05-26 1518 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize FIDs\n",
45a4a16cdb0332 Ido Schimmel 2017-05-16 1519 mlxsw_sp_port->local_port);
a110748725450a Ido Schimmel 2017-05-26 1520 goto err_port_fids_init;
45a4a16cdb0332 Ido Schimmel 2017-05-16 1521 }
45a4a16cdb0332 Ido Schimmel 2017-05-16 1522
371b437a325172 Nogah Frankel 2018-01-10 1523 err =
mlxsw_sp_tc_qdisc_init(mlxsw_sp_port);
371b437a325172 Nogah Frankel 2018-01-10 1524 if (err) {
371b437a325172 Nogah Frankel 2018-01-10 1525 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize TC qdiscs\n",
371b437a325172 Nogah Frankel 2018-01-10 1526 mlxsw_sp_port->local_port);
371b437a325172 Nogah Frankel 2018-01-10 1527 goto err_port_qdiscs_init;
371b437a325172 Nogah Frankel 2018-01-10 1528 }
371b437a325172 Nogah Frankel 2018-01-10 1529
ff285d6847ce66 Petr Machata 2020-08-10 1530 if
(mlxsw_sp->span_ops->fix_momte)
ff285d6847ce66 Petr Machata 2020-08-10 1531
mlxsw_sp->span_ops->fix_momte(mlxsw_sp_port);
ff285d6847ce66 Petr Machata 2020-08-10 1532
979b9b251ae06e Ido Schimmel 2019-09-26 1533 err =
mlxsw_sp_port_vlan_set(mlxsw_sp_port, 0, VLAN_N_VID - 1, false,
979b9b251ae06e Ido Schimmel 2019-09-26 1534 false);
979b9b251ae06e Ido Schimmel 2019-09-26 1535 if (err) {
979b9b251ae06e Ido Schimmel 2019-09-26 1536 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to clear VLAN filter\n",
979b9b251ae06e Ido Schimmel 2019-09-26 1537 mlxsw_sp_port->local_port);
979b9b251ae06e Ido Schimmel 2019-09-26 1538 goto err_port_vlan_clear;
979b9b251ae06e Ido Schimmel 2019-09-26 1539 }
979b9b251ae06e Ido Schimmel 2019-09-26 1540
6e6030bd541218 Ido Schimmel 2018-10-17 1541 err =
mlxsw_sp_port_nve_init(mlxsw_sp_port);
6e6030bd541218 Ido Schimmel 2018-10-17 1542 if (err) {
6e6030bd541218 Ido Schimmel 2018-10-17 1543 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to initialize NVE\n",
6e6030bd541218 Ido Schimmel 2018-10-17 1544 mlxsw_sp_port->local_port);
6e6030bd541218 Ido Schimmel 2018-10-17 1545 goto err_port_nve_init;
6e6030bd541218 Ido Schimmel 2018-10-17 1546 }
6e6030bd541218 Ido Schimmel 2018-10-17 1547
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1548 err =
mlxsw_sp_port_pvid_set(mlxsw_sp_port, MLXSW_SP_DEFAULT_VID);
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1549 if (err) {
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1550 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to set PVID\n",
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1551 mlxsw_sp_port->local_port);
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1552 goto err_port_pvid_set;
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1553 }
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1554
a2d2a20553f0b7 Ido Schimmel 2018-12-20 1555 mlxsw_sp_port_vlan =
mlxsw_sp_port_vlan_create(mlxsw_sp_port,
a2d2a20553f0b7 Ido Schimmel 2018-12-20 1556 MLXSW_SP_DEFAULT_VID);
c57529e1d5d882 Ido Schimmel 2017-05-26 1557 if (IS_ERR(mlxsw_sp_port_vlan)) {
c57529e1d5d882 Ido Schimmel 2017-05-26 1558 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to create VID 1\n",
05978481e77e47 Ido Schimmel 2016-08-17 1559 mlxsw_sp_port->local_port);
d86fd113ebbb37 Wei Yongjun 2017-11-06 1560 err = PTR_ERR(mlxsw_sp_port_vlan);
635c8c8bba670d Ido Schimmel 2018-12-19 1561 goto err_port_vlan_create;
05978481e77e47 Ido Schimmel 2016-08-17 1562 }
346fca3b58cbe0 Ido Schimmel 2018-12-20 1563 mlxsw_sp_port->default_vlan =
mlxsw_sp_port_vlan;
05978481e77e47 Ido Schimmel 2016-08-17 1564
5fc1733897bff1 Shalom Toledo 2019-07-04 1565
INIT_DELAYED_WORK(&mlxsw_sp_port->ptp.shaper_dw,
5fc1733897bff1 Shalom Toledo 2019-07-04 1566
mlxsw_sp->ptp_ops->shaper_work);
3a3e627ce0ac0f Jiri Pirko 2020-01-20 @1567
INIT_DELAYED_WORK(&mlxsw_sp_port->span.speed_update_dw,
9695d59b850703 Petr Machata 2020-08-19 @1568 mlxsw_sp_pb_speed_update_work);
5fc1733897bff1 Shalom Toledo 2019-07-04 1569
2f25844c233650 Ido Schimmel 2016-08-17 1570 mlxsw_sp->ports[local_port] =
mlxsw_sp_port;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1571 err = register_netdev(dev);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1572 if (err) {
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1573 dev_err(mlxsw_sp->bus_info->dev,
"Port %d: Failed to register netdev\n",
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1574 mlxsw_sp_port->local_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1575 goto err_register_netdev;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1576 }
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1577
d808c7e490350c Elad Raz 2016-10-28 1578
mlxsw_core_port_eth_set(mlxsw_sp->core, mlxsw_sp_port->local_port,
e519418f8992b0 Jiri Pirko 2019-03-24 1579 mlxsw_sp_port, dev);
9deef43ddfb1df Nogah Frankel 2017-10-26 1580
mlxsw_core_schedule_dw(&mlxsw_sp_port->periodic_hw_stats.update_dw, 0);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1581 return 0;
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1582
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1583 err_register_netdev:
2f25844c233650 Ido Schimmel 2016-08-17 1584 mlxsw_sp->ports[local_port] = NULL;
635c8c8bba670d Ido Schimmel 2018-12-19 1585
mlxsw_sp_port_vlan_destroy(mlxsw_sp_port_vlan);
635c8c8bba670d Ido Schimmel 2018-12-19 1586 err_port_vlan_create:
262e1ff91c3bc9 Ido Schimmel 2018-12-20 1587 err_port_pvid_set:
6e6030bd541218 Ido Schimmel 2018-10-17 1588 mlxsw_sp_port_nve_fini(mlxsw_sp_port);
6e6030bd541218 Ido Schimmel 2018-10-17 1589 err_port_nve_init:
979b9b251ae06e Ido Schimmel 2019-09-26 1590 err_port_vlan_clear:
371b437a325172 Nogah Frankel 2018-01-10 1591 mlxsw_sp_tc_qdisc_fini(mlxsw_sp_port);
371b437a325172 Nogah Frankel 2018-01-10 1592 err_port_qdiscs_init:
a110748725450a Ido Schimmel 2017-05-26 1593 mlxsw_sp_port_fids_fini(mlxsw_sp_port);
a110748725450a Ido Schimmel 2017-05-26 1594 err_port_fids_init:
4de34eb5743f72 Ido Schimmel 2016-08-04 1595 mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
f00817df2b428e Ido Schimmel 2016-04-06 1596 err_port_dcb_init:
7b819530669458 Petr Machata 2018-08-05 1597
mlxsw_sp_port_tc_mc_mode_set(mlxsw_sp_port, false);
7b819530669458 Petr Machata 2018-08-05 1598 err_port_tc_mc_mode:
90183b980d0af7 Ido Schimmel 2016-04-06 1599 err_port_ets_init:
4f02d302f11226 Petr Machata 2020-08-14 1600
mlxsw_sp_port_buffers_fini(mlxsw_sp_port);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1601 err_port_buffers_init:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1602 err_port_admin_status_set:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1603 err_port_mtu_set:
18f1e70c413713 Ido Schimmel 2016-02-26 1604 err_port_speed_by_width_set:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1605 err_port_system_port_mapping_set:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1606 err_dev_addr_init:
3247ff2b318f3e Ido Schimmel 2016-09-08 1607 mlxsw_sp_port_swid_set(mlxsw_sp_port,
MLXSW_PORT_SWID_DISABLED_PORT);
3247ff2b318f3e Ido Schimmel 2016-09-08 1608 err_port_swid_set:
2e915e0b68c921 Ido Schimmel 2017-06-08 1609
mlxsw_sp_port_module_unmap(mlxsw_sp_port);
5b15385964fab6 Ido Schimmel 2017-06-08 1610 err_port_module_map:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1611
free_percpu(mlxsw_sp_port->pcpu_stats);
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1612 err_alloc_stats:
56ade8fe3fe1e1 Jiri Pirko 2015-10-16 1613 free_netdev(dev);
5b15385964fab6 Ido Schimmel 2017-06-08 1614 err_alloc_etherdev:
67963a33b4fde8 Jiri Pirko 2016-10-28 1615 mlxsw_core_port_fini(mlxsw_sp->core,
local_port);
67963a33b4fde8 Jiri Pirko 2016-10-28 1616 return err;
67963a33b4fde8 Jiri Pirko 2016-10-28 1617 }
67963a33b4fde8 Jiri Pirko 2016-10-28 1618
:::::: The code at line 1567 was first introduced by commit
:::::: 3a3e627ce0ac0fe15e0a011540a1f7c96bf8a07b spectrum: Add a delayed work to update
SPAN buffsize according to speed
:::::: TO: Jiri Pirko <jiri(a)mellanox.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org