Re: [PATCH net] devlink: Remove extra assertion from flash notification logic

From: Jakub Kicinski
Date: Wed Nov 17 2021 - 09:02:34 EST


On Wed, 17 Nov 2021 15:23:18 +0200 Leon Romanovsky wrote:
> > I'd drop these notifications, the user didn't ask to flash the device,
> > it's just code reuse in the driver, right?
>
> Sorry, I missed your reply.
>
> I'm not sure about code reuse, from the code, it looks like attempt to
> burn FW during mlxsw register.
>
> __mlxsw_core_bus_device_register
> -> mlxsw_core_fw_rev_validate
> -> mlxsw_core_fw_flash
> -> mlxfw_firmware_flash
> -> mlxfw_status_notify
> -> devlink_flash_update_status_notify
> -> __devlink_flash_update_notify
> -> WARN_ON(...)
>
> The mlxfw_firmware_flash() routine is called by mlx5 too, so I can't
> remove mlxfw_status_notify() calls without too much changes.
>
> Easiest solution was to remove WARN_ON(), because no one really
> interested in these events anyway. I searched in github and didn't
> find any user who listened to them.

Drop in the core. Like this?


WARN_ON(cmd != DEVLINK_CMD_FLASH_UPDATE &&
cmd != DEVLINK_CMD_FLASH_UPDATE_END &&
cmd != DEVLINK_CMD_FLASH_UPDATE_STATUS);
- WARN_ON(!xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED));
+
+ if (!xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED))
+ return;

msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
if (!msg)