[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <02874ECE860811409154E81DA85FBB58B6CF7A86@FMSMSX102.amr.corp.intel.com>
Date: Wed, 29 Apr 2020 15:11:03 +0000
From: "Keller, Jacob E" <jacob.e.keller@...el.com>
To: Jakub Kicinski <kuba@...nel.org>,
"davem@...emloft.net" <davem@...emloft.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"kernel-team@...com" <kernel-team@...com>,
"jiri@...nulli.us" <jiri@...nulli.us>,
"parav@...lanox.com" <parav@...lanox.com>
Subject: RE: [PATCH net] devlink: fix return value after hitting end in
region read
> -----Original Message-----
> From: Jakub Kicinski <kuba@...nel.org>
> Sent: Tuesday, April 28, 2020 7:02 PM
> To: davem@...emloft.net
> Cc: netdev@...r.kernel.org; kernel-team@...com; jiri@...nulli.us; Keller, Jacob
> E <jacob.e.keller@...el.com>; parav@...lanox.com; Jakub Kicinski
> <kuba@...nel.org>
> Subject: [PATCH net] devlink: fix return value after hitting end in region read
>
> Commit d5b90e99e1d5 ("devlink: report 0 after hitting end in region read")
> fixed region dump, but region read still returns a spurious error:
>
> $ devlink region read netdevsim/netdevsim1/dummy snapshot 0 addr 0 len 128
> 0000000000000000 a6 f4 c4 1c 21 35 95 a6 9d 34 c3 5b 87 5b 35 79
> 0000000000000010 f3 a0 d7 ee 4f 2f 82 7f c6 dd c4 f6 a5 c3 1b ae
> 0000000000000020 a4 fd c8 62 07 59 48 03 70 3b c7 09 86 88 7f 68
> 0000000000000030 6f 45 5d 6d 7d 0e 16 38 a9 d0 7a 4b 1e 1e 2e a6
> 0000000000000040 e6 1d ae 06 d6 18 00 85 ca 62 e8 7e 11 7e f6 0f
> 0000000000000050 79 7e f7 0f f3 94 68 bd e6 40 22 85 b6 be 6f b1
> 0000000000000060 af db ef 5e 34 f0 98 4b 62 9a e3 1b 8b 93 fc 17
> devlink answers: Invalid argument
> 0000000000000070 61 e8 11 11 66 10 a5 f7 b1 ea 8d 40 60 53 ed 12
>
> This is a minimal fix, I'll follow up with a restructuring
> so we don't have two checks for the same condition.
>
Makes sense.
Reviewed-by: Jacob Keller <jacob.e.keller@...el.com>
> Fixes: fdd41ec21e15 ("devlink: Return right error code in case of errors for region
> read")
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> ---
> net/core/devlink.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/net/core/devlink.c b/net/core/devlink.c
> index 80f97722f31f..1ec2e9fd8898 100644
> --- a/net/core/devlink.c
> +++ b/net/core/devlink.c
> @@ -4283,6 +4283,11 @@ static int devlink_nl_cmd_region_read_dumpit(struct
> sk_buff *skb,
> end_offset =
> nla_get_u64(attrs[DEVLINK_ATTR_REGION_CHUNK_ADDR]);
> end_offset +=
> nla_get_u64(attrs[DEVLINK_ATTR_REGION_CHUNK_LEN]);
> dump = false;
> +
> + if (start_offset == end_offset) {
> + err = 0;
> + goto nla_put_failure;
> + }
> }
>
> err = devlink_nl_region_read_snapshot_fill(skb, devlink,
> --
> 2.25.4
Powered by blists - more mailing lists