If any of the param or info_get op returns error, dumpit cb is skipping to dump remaining params or info_get ops for all the drivers.
Instead skip only for the param/info_get op which returned error and continue to dump remaining information, except if the return code is EMSGSIZE. Cc: Jiri Pirko <j...@mellanox.com> Cc: Michael Chan <michael.c...@broadcom.com> Signed-off-by: Vasundhara Volam <vasundhara-v.vo...@broadcom.com> --- net/core/devlink.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/core/devlink.c b/net/core/devlink.c index e48680e..a1dd1b8 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -3172,7 +3172,7 @@ static int devlink_nl_cmd_param_get_dumpit(struct sk_buff *msg, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, NLM_F_MULTI); - if (err) { + if (err == -EMSGSIZE) { mutex_unlock(&devlink->lock); goto out; } @@ -3432,7 +3432,7 @@ static int devlink_nl_cmd_port_param_get_dumpit(struct sk_buff *msg, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, NLM_F_MULTI); - if (err) { + if (err == -EMSGSIZE) { mutex_unlock(&devlink->lock); goto out; } @@ -4088,7 +4088,7 @@ static int devlink_nl_cmd_info_get_dumpit(struct sk_buff *msg, cb->nlh->nlmsg_seq, NLM_F_MULTI, cb->extack); mutex_unlock(&devlink->lock); - if (err) + if (err == -EMSGSIZE) break; idx++; } -- 1.8.3.1