netif_set_real_num_rx_queues() was added to kernel version 2.6.37 and
not to kernel 2.6.35 therefore it should also be added to the
corresponding compat-*.c file.

This also adds a missing EXPORT_SYMBOL, documentation and a check.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
 backport/compat/compat-2.6.35.c |   15 ---------------
 backport/compat/compat-2.6.37.c |   27 +++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/backport/compat/compat-2.6.35.c b/backport/compat/compat-2.6.35.c
index 86ea557..e59cdc1 100644
--- a/backport/compat/compat-2.6.35.c
+++ b/backport/compat/compat-2.6.35.c
@@ -17,21 +17,6 @@
 #include <linux/uaccess.h>
 #include <net/sch_generic.h>
 
-#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,4))
-#ifdef CONFIG_RPS
-int netif_set_real_num_rx_queues(struct net_device *dev, unsigned int rxq)
-{
-       int rc;
-
-       /* we can't update the sysfs object for older kernels */
-       if (dev->reg_state == NETREG_REGISTERED)
-               return -EINVAL;
-       dev->num_rx_queues = rxq;
-       return 0;
-}
-#endif
-#endif
-
 /*
  * Routine to help set real_num_tx_queues. To avoid skbs mapped to queues
  * greater then real_num_tx_queues stale skbs on the qdisc must be flushed.
diff --git a/backport/compat/compat-2.6.37.c b/backport/compat/compat-2.6.37.c
index 5c6cc7b..cc85b15 100644
--- a/backport/compat/compat-2.6.37.c
+++ b/backport/compat/compat-2.6.37.c
@@ -357,3 +357,30 @@ void *vzalloc(unsigned long size)
        return buf;
 }
 EXPORT_SYMBOL_GPL(vzalloc);
+
+#if (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6,4))
+#ifdef CONFIG_RPS
+/**
+ *     netif_set_real_num_rx_queues - set actual number of RX queues used
+ *     @dev: Network device
+ *     @rxq: Actual number of RX queues
+ *
+ *     This must be called either with the rtnl_lock held or before
+ *     registration of the net device.  Returns 0 on success, or a
+ *     negative error code.  If called before registration, it always
+ *     succeeds.
+ */
+int netif_set_real_num_rx_queues(struct net_device *dev, unsigned int rxq)
+{
+       if (rxq < 1 || rxq > dev->num_rx_queues)
+               return -EINVAL;
+
+       /* we can't update the sysfs object for older kernels */
+       if (dev->reg_state == NETREG_REGISTERED)
+               return -EINVAL;
+       dev->num_rx_queues = rxq;
+       return 0;
+}
+EXPORT_SYMBOL(netif_set_real_num_rx_queues);
+#endif
+#endif
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe backports" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to