From f85adc61ddd2d401af790781cc16b82dfe39b7de Mon Sep 17 00:00:00 2001 From: Arkadi Sharshevsky Date: Wed, 28 Feb 2018 11:24:22 +0200 Subject: [PATCH] devlink: Fix error reporting 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 Acked-by: Jiri Pirko Signed-off-by: Stephen Hemminger --- devlink/mnlg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devlink/mnlg.c b/devlink/mnlg.c index 37c568735..3d28453a3 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.47.2