From 668bd8d35664d745656474ae623af8e2c9ebe99b Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Wed, 20 Nov 2019 09:56:06 -0800 Subject: [PATCH] devlink: fix requiring either handle devlink sb occupancy show requires device or port handle. It passes both device and port handle bits as required to dl_argv_parse() so since commit 1896b100af46 ("devlink: catch missing strings in dl_args_required") devlink will now complain that only one is present: $ devlink sb occupancy show pci/0000:06:00.0/0 BUG: unknown argument required but not found Drop the bit for the handle which was not found from required. Reported-by: Shalom Toledo Fixes: 1896b100af46 ("devlink: catch missing strings in dl_args_required") Signed-off-by: Jakub Kicinski Reviewed-by: Quentin Monnet Tested-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: David Ahern --- devlink/devlink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/devlink/devlink.c b/devlink/devlink.c index ea3f992e..0b8985f3 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -1179,6 +1179,7 @@ static int dl_argv_parse(struct dl *dl, uint64_t o_required, &opts->port_index, &handle_bit); if (err) return err; + o_required &= ~(DL_OPT_HANDLE | DL_OPT_HANDLEP) | handle_bit; o_found |= handle_bit; } else if (o_required & DL_OPT_HANDLE) { err = dl_argv_handle(dl, &opts->bus_name, &opts->dev_name); -- 2.39.2