The current code doesn't set errno in case of extended ack. Fixes: 049c58539f5d ("devlink: mnlg: Add support for extended ack") Signed-off-by: Arkadi Sharshevsky <arka...@mellanox.com> Acked-by: Jiri Pirko <j...@mellanox.com> --- devlink/mnlg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/devlink/mnlg.c b/devlink/mnlg.c index 37c5687..3d28453 100644 --- a/devlink/mnlg.c +++ b/devlink/mnlg.c @@ -71,15 +71,15 @@ static int mnlg_cb_error(const struct nlmsghdr *nlh, void *data) { const struct nlmsgerr *err = mnl_nlmsg_get_payload(nlh); - if (nl_dump_ext_ack(nlh, NULL)) - return MNL_CB_STOP; - /* Netlink subsystems returns the errno value with different signess */ if (err->error < 0) errno = -err->error; else errno = err->error; + if (nl_dump_ext_ack(nlh, NULL)) + return MNL_CB_ERROR; + return err->error == 0 ? MNL_CB_STOP : MNL_CB_ERROR; } -- 2.4.11