From: Jiri Pirko Date: Thu, 25 Aug 2022 08:04:20 +0000 (+0200) Subject: devlink: fix parallel flash notifications processing X-Git-Tag: v6.1.0~33^2~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b392dac5be31c33b5ba16b3dbcf95899c9463fe;p=thirdparty%2Fiproute2.git devlink: fix parallel flash notifications processing Now that it is possible to flash multiple devlink instances in parallel, the notification processing callback needs to count in the fact that it receives message that belongs to different devlink instance. So handle the it gracefully and don't error out. Reported-by: Vikas Gupta Signed-off-by: Jiri Pirko Signed-off-by: David Ahern --- diff --git a/devlink/devlink.c b/devlink/devlink.c index b2439aef4..4f77e42f2 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -3812,12 +3812,12 @@ static int cmd_dev_flash_status_cb(const struct nlmsghdr *nlh, void *data) mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); if (!tb[DEVLINK_ATTR_BUS_NAME] || !tb[DEVLINK_ATTR_DEV_NAME]) - return MNL_CB_ERROR; + return MNL_CB_STOP; bus_name = mnl_attr_get_str(tb[DEVLINK_ATTR_BUS_NAME]); dev_name = mnl_attr_get_str(tb[DEVLINK_ATTR_DEV_NAME]); if (strcmp(bus_name, opts->bus_name) || strcmp(dev_name, opts->dev_name)) - return MNL_CB_ERROR; + return MNL_CB_STOP; if (genl->cmd == DEVLINK_CMD_FLASH_UPDATE_END) { pr_out("\n");