netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null
@ 2023-01-11 23:56 Sudheer Mogilappagari
  2023-01-12  8:06 ` Michal Kubecek
  2023-01-13 19:40 ` Jakub Kicinski
  0 siblings, 2 replies; 3+ messages in thread
From: Sudheer Mogilappagari @ 2023-01-11 23:56 UTC (permalink / raw)
  To: netdev; +Cc: kuba, mkubecek, sridhar.samudrala, anthony.l.nguyen

Current code for RSS_GET ethtool command includes netlink attributes
in reply message to user space even if they are null. Added checks
to include netlink attribute in reply message only if a value is
received from driver. Drivers might return null for RSS indirection
table or hash key. Instead of including attributes with empty value
in the reply message, add netlink attribute only if there is content.

Fixes: 7112a04664bf ("ethtool: add netlink based get rss support")
Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
---
 net/ethtool/rss.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/net/ethtool/rss.c b/net/ethtool/rss.c
index ebe6145aed3f..be260ab34e58 100644
--- a/net/ethtool/rss.c
+++ b/net/ethtool/rss.c
@@ -122,10 +122,13 @@ rss_fill_reply(struct sk_buff *skb, const struct ethnl_req_info *req_base,
 {
 	const struct rss_reply_data *data = RSS_REPDATA(reply_base);
 
-	if (nla_put_u32(skb, ETHTOOL_A_RSS_HFUNC, data->hfunc) ||
-	    nla_put(skb, ETHTOOL_A_RSS_INDIR,
-		    sizeof(u32) * data->indir_size, data->indir_table) ||
-	    nla_put(skb, ETHTOOL_A_RSS_HKEY, data->hkey_size, data->hkey))
+	if ((data->hfunc &&
+	     nla_put_u32(skb, ETHTOOL_A_RSS_HFUNC, data->hfunc)) ||
+	    (data->indir_size &&
+	     nla_put(skb, ETHTOOL_A_RSS_INDIR,
+		     sizeof(u32) * data->indir_size, data->indir_table)) ||
+	    (data->hkey_size &&
+	     nla_put(skb, ETHTOOL_A_RSS_HKEY, data->hkey_size, data->hkey)))
 		return -EMSGSIZE;
 
 	return 0;
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null
  2023-01-11 23:56 [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null Sudheer Mogilappagari
@ 2023-01-12  8:06 ` Michal Kubecek
  2023-01-13 19:40 ` Jakub Kicinski
  1 sibling, 0 replies; 3+ messages in thread
From: Michal Kubecek @ 2023-01-12  8:06 UTC (permalink / raw)
  To: Sudheer Mogilappagari; +Cc: netdev, kuba, sridhar.samudrala, anthony.l.nguyen

[-- Attachment #1: Type: text/plain, Size: 1936 bytes --]

On Wed, Jan 11, 2023 at 03:56:07PM -0800, Sudheer Mogilappagari wrote:
> Current code for RSS_GET ethtool command includes netlink attributes
> in reply message to user space even if they are null. Added checks
> to include netlink attribute in reply message only if a value is
> received from driver. Drivers might return null for RSS indirection
> table or hash key. Instead of including attributes with empty value
> in the reply message, add netlink attribute only if there is content.
> 
> Fixes: 7112a04664bf ("ethtool: add netlink based get rss support")
> Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>

Reviewed-by: Michal Kubecek <mkubecek@suse.cz>

Note: the code was added in 6.2-rc1 merge window so that it is still
safe to change the output before 6.2 final without risk of "breaking the
userspace".

Michal

> ---
>  net/ethtool/rss.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/net/ethtool/rss.c b/net/ethtool/rss.c
> index ebe6145aed3f..be260ab34e58 100644
> --- a/net/ethtool/rss.c
> +++ b/net/ethtool/rss.c
> @@ -122,10 +122,13 @@ rss_fill_reply(struct sk_buff *skb, const struct ethnl_req_info *req_base,
>  {
>  	const struct rss_reply_data *data = RSS_REPDATA(reply_base);
>  
> -	if (nla_put_u32(skb, ETHTOOL_A_RSS_HFUNC, data->hfunc) ||
> -	    nla_put(skb, ETHTOOL_A_RSS_INDIR,
> -		    sizeof(u32) * data->indir_size, data->indir_table) ||
> -	    nla_put(skb, ETHTOOL_A_RSS_HKEY, data->hkey_size, data->hkey))
> +	if ((data->hfunc &&
> +	     nla_put_u32(skb, ETHTOOL_A_RSS_HFUNC, data->hfunc)) ||
> +	    (data->indir_size &&
> +	     nla_put(skb, ETHTOOL_A_RSS_INDIR,
> +		     sizeof(u32) * data->indir_size, data->indir_table)) ||
> +	    (data->hkey_size &&
> +	     nla_put(skb, ETHTOOL_A_RSS_HKEY, data->hkey_size, data->hkey)))
>  		return -EMSGSIZE;
>  
>  	return 0;
> -- 
> 2.31.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null
  2023-01-11 23:56 [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null Sudheer Mogilappagari
  2023-01-12  8:06 ` Michal Kubecek
@ 2023-01-13 19:40 ` Jakub Kicinski
  1 sibling, 0 replies; 3+ messages in thread
From: Jakub Kicinski @ 2023-01-13 19:40 UTC (permalink / raw)
  To: Sudheer Mogilappagari
  Cc: netdev, mkubecek, sridhar.samudrala, anthony.l.nguyen

On Wed, 11 Jan 2023 15:56:07 -0800 Sudheer Mogilappagari wrote:
> Current code for RSS_GET ethtool command includes netlink attributes
> in reply message to user space even if they are null. Added checks
> to include netlink attribute in reply message only if a value is
> received from driver. Drivers might return null for RSS indirection
> table or hash key. Instead of including attributes with empty value
> in the reply message, add netlink attribute only if there is content.
> 
> Fixes: 7112a04664bf ("ethtool: add netlink based get rss support")
> Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>

Applied, thanks!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-01-13 19:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-11 23:56 [PATCH net] ethtool:add netlink attr in rss get reply only if value is not null Sudheer Mogilappagari
2023-01-12  8:06 ` Michal Kubecek
2023-01-13 19:40 ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).