compat: backport ethtool_rxfh_indir_default()
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>
Sat, 1 Dec 2012 01:10:35 +0000 (17:10 -0800)
committerLuis R. Rodriguez <mcgrof@do-not-panic.com>
Sat, 1 Dec 2012 01:10:35 +0000 (17:10 -0800)
This was added via commit 278bc429:

mcgrof@frijol ~/linux-next (git::master)$ git describe --contains 278bc429
v3.3-rc1~182^2~191

commit 278bc4296bd64ffd1d3913b487dc8a520e423a7a
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Thu Dec 15 13:56:49 2011 +0000

    ethtool: Define and apply a default policy for RX flow hash indirection

    All drivers that support modification of the RX flow hash indirection
    table initialise it in the same way: RX rings are assigned to table
    entries in rotation.  Make that default policy explicit by having them
    call a ethtool_rxfh_indir_default() function.

    In the ethtool core, add support for a zero size value for
    ETHTOOL_SRXFHINDIR, which resets the table to this default.

Partly-suggested-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: Shreyas N Bhatewara <sbhatewara@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
include/linux/compat-3.3.h

index 3cbbaceb14211937d4590c8200f89a583d3f748f..9bf97decb612da28a6d9f9c3b13f4ce9170732f2 100644 (file)
 #include <linux/skbuff.h>
 #include <net/sch_generic.h>
 
+/**
+ * ethtool_rxfh_indir_default - get default value for RX flow hash indirection
+ * @index: Index in RX flow hash indirection table
+ * @n_rx_rings: Number of RX rings to use
+ *
+ * This function provides the default policy for RX flow hash indirection.
+ */
+static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings)
+{
+       return index % n_rx_rings;
+}
+
 #if !((LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,9) && LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) || (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,23) && LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)))
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37))
 /* mask qdisc_cb_private_validate as RHEL6 backports this */