Modify ethtool_copy_validate_indir() and callers to validate indirection
table entries against the number of RX rings as an integer instead of
accessing rx_rings->data.

This will be useful in the future, given that struct ethtool_rxnfc might
not exist for native GRXRINGS call.

Signed-off-by: Breno Leitao <lei...@debian.org>
---
 net/ethtool/ioctl.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index 0b2a4d0573b38..15627afa4424f 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -1246,8 +1246,8 @@ static noinline_for_stack int ethtool_get_rxnfc(struct 
net_device *dev,
 }
 
 static int ethtool_copy_validate_indir(u32 *indir, void __user *useraddr,
-                                       struct ethtool_rxnfc *rx_rings,
-                                       u32 size)
+                                      int num_rx_rings,
+                                      u32 size)
 {
        int i;
 
@@ -1256,7 +1256,7 @@ static int ethtool_copy_validate_indir(u32 *indir, void 
__user *useraddr,
 
        /* Validate ring indices */
        for (i = 0; i < size; i++)
-               if (indir[i] >= rx_rings->data)
+               if (indir[i] >= num_rx_rings)
                        return -EINVAL;
 
        return 0;
@@ -1366,7 +1366,7 @@ static noinline_for_stack int 
ethtool_set_rxfh_indir(struct net_device *dev,
        } else {
                ret = ethtool_copy_validate_indir(rxfh_dev.indir,
                                                  useraddr + ringidx_offset,
-                                                 &rx_rings,
+                                                 rx_rings.data,
                                                  rxfh_dev.indir_size);
                if (ret)
                        goto out;
@@ -1587,7 +1587,7 @@ static noinline_for_stack int ethtool_set_rxfh(struct 
net_device *dev,
                rxfh_dev.indir_size = dev_indir_size;
                ret = ethtool_copy_validate_indir(rxfh_dev.indir,
                                                  useraddr + rss_cfg_offset,
-                                                 &rx_rings,
+                                                 rx_rings.data,
                                                  rxfh.indir_size);
                if (ret)
                        goto out_free;

-- 
2.47.3


Reply via email to