net: mscc: ocelot: be able to reuse a devlink_port after teardown
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Thu, 19 Aug 2021 16:49:57 +0000 (19:49 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Aug 2021 13:36:42 +0000 (14:36 +0100)
commitb5e33a1571580430ff4c7bd5b176d0450e9918db
treef62ed4b4d93048b7c605434196e509cba9e6dc9b
parent42edc1fca4b5a000e8e2c1e38f4e08a6b9f7bcb7
net: mscc: ocelot: be able to reuse a devlink_port after teardown

There are cases where we would like to continue probing the switch even
if one port has failed to probe. When that happens, we need to
unregister a devlink_port of type DEVLINK_PORT_FLAVOUR_PHYSICAL and
re-register it of type DEVLINK_PORT_FLAVOUR_UNUSED.

This is fine, except when calling devlink_port_attrs_set on a structure
on which devlink_port_register has been previously called, there is a
WARN_ON in devlink_port_attrs_set that devlink_port->devlink must be
NULL.

So don't assume that the memory behind dlp is clean when calling
ocelot_port_devlink_init, just zero-initialize it.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/ocelot_net.c