From: Aya Levin Date: Wed, 10 Jul 2019 11:03:19 +0000 (+0300) Subject: devlink: Change devlink health dump show command to dumpit X-Git-Tag: v5.3.0~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b4d97ef57fd4b7669971ed209065a72d115dffc2;p=thirdparty%2Fiproute2.git devlink: Change devlink health dump show command to dumpit Although devlink health dump show command is given per reporter, it returns large amounts of data. Trying to use the doit cb results in OUT-OF-BUFFER error. This complementary patch raises the DUMP flag in order to invoke the dumpit cb. We're safe as no existing drivers implement the dump health reporter option yet. Fixes: 041e6e651a8e ("devlink: Add devlink health dump show command") Signed-off-by: Aya Levin Signed-off-by: Tariq Toukan Acked-by: Jiri Pirko Signed-off-by: Stephen Hemminger --- diff --git a/devlink/devlink.c b/devlink/devlink.c index d8197ea3a..637cb5fc4 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -6105,13 +6105,13 @@ static int cmd_fmsg_object_cb(const struct nlmsghdr *nlh, void *data) return MNL_CB_OK; } -static int cmd_health_object_common(struct dl *dl, uint8_t cmd) +static int cmd_health_object_common(struct dl *dl, uint8_t cmd, uint16_t flags) { struct fmsg_cb_data data; struct nlmsghdr *nlh; int err; - nlh = mnlg_msg_prepare(dl->nlg, cmd, NLM_F_REQUEST | NLM_F_ACK); + nlh = mnlg_msg_prepare(dl->nlg, cmd, flags | NLM_F_REQUEST | NLM_F_ACK); err = dl_argv_parse_put(nlh, dl, DL_OPT_HANDLE | DL_OPT_HEALTH_REPORTER_NAME, 0); @@ -6126,12 +6126,16 @@ static int cmd_health_object_common(struct dl *dl, uint8_t cmd) static int cmd_health_dump_show(struct dl *dl) { - return cmd_health_object_common(dl, DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET); + return cmd_health_object_common(dl, + DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET, + NLM_F_DUMP); } static int cmd_health_diagnose(struct dl *dl) { - return cmd_health_object_common(dl, DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE); + return cmd_health_object_common(dl, + DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, + 0); } static int cmd_health_recover(struct dl *dl)