Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3698452ybv; Mon, 10 Feb 2020 04:56:17 -0800 (PST) X-Google-Smtp-Source: APXvYqyuZ693Bpye+5eSXdOB5LYZpUIoe/xAjsILQiwLzz4DN0w6vTmXeHyrYaJEa9DzHV/MDKFT X-Received: by 2002:a05:6830:1185:: with SMTP id u5mr872097otq.147.1581339377320; Mon, 10 Feb 2020 04:56:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581339377; cv=none; d=google.com; s=arc-20160816; b=y2p3/2iOQkFEQoclmKkkLjmDsf4tBJZZpwC++Zc0c4SoES0eO+wesTxx/5bOWT0Rto j8kZIiOluoQqNc7ewcCg+WOlQ2OvlKwa8d800058/x+BKPUP+fD9OReRm+uhUnxoI1CD vyWfQPmp0ELdRvW9VBqhc3kDT9Fi/p3BVR3uyQTMZR61cD8N4BR4c2++i9mqzAJrlPup Z9gNLEOYoJqQEEtxR/mfDpAHd9XSfU7bhl3oTE3MCcJ5VAx0WGZEVVDPOJanHdBaQmwf ExkmJvmi5ohwbpwmFMPEA9TCe7pJk9pG9SvRjywYpQ+9jJerTYuMACDIjxtfSeg8knKD Xh+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=QfZezZOs5fPPI7ef0OAeqj28JCjkgSPUXSnnfj9VzBQ=; b=DgKM10feiWkX+3ZFk7YWcVQ/e2XWQMbfxko5T4ih6OBPMMhknZKHfgwUcOaAQJfYsJ 1p6BBinCU7fX6t+AQxHKCWFmZVlaod+PaKaGa/BzbGBZMruIsf5TCBSzso98LUbFmspE j8Nf1DoJjQQ4uvM0ocf9qm3dCCy9CtMEU82nGXMBuKAY2XZLxkMEl2cVEpZjFDlOj42j WqnZH77Gjqq6CpGcaK6cHOl2BYtFPTrVICkVDKqQdxm44qkHGeXrl8zwicqDkBM67CAQ yC2dqX7J7iUNeaUyRjKzx4pBwdYhjOYUNOvJDvZv4SiZfRyv2EIoByzlb4d7tGxjUR10 fLuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=c1o8uz+8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w5si141467otq.238.2020.02.10.04.56.05; Mon, 10 Feb 2020 04:56:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=c1o8uz+8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728782AbgBJMzF (ORCPT + 99 others); Mon, 10 Feb 2020 07:55:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:44986 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728712AbgBJMlw (ORCPT ); Mon, 10 Feb 2020 07:41:52 -0500 Received: from localhost (unknown [209.37.97.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C1C2520842; Mon, 10 Feb 2020 12:41:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581338511; bh=/kmyYt9ZI3NOmd4VftzPhAPuJR8J8CHxBHA/slhwnJo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c1o8uz+8OYRuvHlOPG7ur95B73AtDTJSnFbMJ1O+EN+LWsHcSPUBqHjH7amldy9mv E2MckRIwX7rUiSyS6bkRJBwBS8hW4eqwGD5J+TjwG5RTRDvDMxfnOh9jj63v5KlGOK EjRVTMK02ixke4lNxweevSh0pXXg4ABAhoVLw39w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jacob Keller , Jiri Pirko , "David S. Miller" Subject: [PATCH 5.5 317/367] devlink: report 0 after hitting end in region read Date: Mon, 10 Feb 2020 04:33:50 -0800 Message-Id: <20200210122452.405722316@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210122423.695146547@linuxfoundation.org> References: <20200210122423.695146547@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jacob Keller [ Upstream commit d5b90e99e1d51b7b5d2b74fbc4c2db236a510913 ] commit fdd41ec21e15 ("devlink: Return right error code in case of errors for region read") modified the region read code to report errors properly in unexpected cases. In the case where the start_offset and ret_offset match, it unilaterally converted this into an error. This causes an issue for the "dump" version of the command. In this case, the devlink region dump will always report an invalid argument: 000000000000ffd0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 000000000000ffe0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff devlink answers: Invalid argument 000000000000fff0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff This occurs because the expected flow for the dump is to return 0 after there is no further data. The simplest fix would be to stop converting the error code to -EINVAL if start_offset == ret_offset. However, avoid unnecessary work by checking for when start_offset is larger than the region size and returning 0 upfront. Fixes: fdd41ec21e15 ("devlink: Return right error code in case of errors for region read") Signed-off-by: Jacob Keller Acked-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/core/devlink.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -3986,6 +3986,12 @@ static int devlink_nl_cmd_region_read_du goto out_unlock; } + /* return 0 if there is no further data to read */ + if (start_offset >= region->size) { + err = 0; + goto out_unlock; + } + hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, &devlink_nl_family, NLM_F_ACK | NLM_F_MULTI, DEVLINK_CMD_REGION_READ);