diff options
Diffstat (limited to 'net/ethtool/rss.c')
| -rw-r--r-- | net/ethtool/rss.c | 11 | 
1 files 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; |