diff mbox series

[iproute2-next] devlink: fix requiring either handle

Message ID 20191120175606.13641-1-jakub.kicinski@netronome.com
State Accepted
Delegated to: David Ahern
Headers show
Series [iproute2-next] devlink: fix requiring either handle | expand

Commit Message

Jakub Kicinski Nov. 20, 2019, 5:56 p.m. UTC
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 <shalomt@mellanox.com>
Fixes: 1896b100af46 ("devlink: catch missing strings in dl_args_required")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Tested-by: Shalom Toledo <shalomt@mellanox.com>
---
 devlink/devlink.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jiri Pirko Nov. 21, 2019, 8:56 a.m. UTC | #1
Wed, Nov 20, 2019 at 06:56:06PM CET, jakub.kicinski@netronome.com wrote:
>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 <shalomt@mellanox.com>
>Fixes: 1896b100af46 ("devlink: catch missing strings in dl_args_required")
>Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
>Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
>Tested-by: Shalom Toledo <shalomt@mellanox.com>

Acked-by: Jiri Pirko <jiri@mellanox.com>

Thanks!
David Ahern Nov. 21, 2019, 9:39 p.m. UTC | #2
On 11/20/19 10:56 AM, Jakub Kicinski wrote:
> 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 <shalomt@mellanox.com>
> Fixes: 1896b100af46 ("devlink: catch missing strings in dl_args_required")
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
> Tested-by: Shalom Toledo <shalomt@mellanox.com>
> ---
>  devlink/devlink.c | 1 +
>  1 file changed, 1 insertion(+)

applied to iproute2-next. Thanks
diff mbox series

Patch

diff --git a/devlink/devlink.c b/devlink/devlink.c
index ea3f992ee0d7..0b8985f32636 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);