net:add one common config ARCH_WANT_RELAX_ORDER to support relax ordering
authorMao Wenan <maowenan@huawei.com>
Wed, 18 Jan 2017 00:50:05 +0000 (08:50 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Jan 2017 21:33:00 +0000 (16:33 -0500)
Relax ordering(RO) is one feature of 82599 NIC, to enable this feature can
enhance the performance for some cpu architecure, such as SPARC and so on.
Currently it only supports one special cpu architecture(SPARC) in 82599
driver to enable RO feature, this is not very common for other cpu architecture
which really needs RO feature.
This patch add one common config CONFIG_ARCH_WANT_RELAX_ORDER to set RO feature,
and should define CONFIG_ARCH_WANT_RELAX_ORDER in sparc Kconfig firstly.

Signed-off-by: Mao Wenan <maowenan@huawei.com>
Reviewed-by: Alexander Duyck <alexander.duyck@gmail.com>
Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/Kconfig
arch/sparc/Kconfig
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c

index 99839c23d453fa8ded2061968aead8a6ee4b2317..bd04eace455c643eb7c7480c865b10baba6545b1 100644 (file)
@@ -781,4 +781,7 @@ config VMAP_STACK
          the stack to map directly to the KASAN shadow map using a formula
          that is incorrect if the stack is in vmalloc space.
 
+config ARCH_WANT_RELAX_ORDER
+       bool
+
 source "kernel/gcov/Kconfig"
index cf4034c66362f3016c532bccc0efbebe2f747a25..68ac5c7cd982619581dfa65b75ac89aa8e359554 100644 (file)
@@ -44,6 +44,7 @@ config SPARC
        select CPU_NO_EFFICIENT_FFS
        select HAVE_ARCH_HARDENED_USERCOPY
        select PROVE_LOCKING_SMALL if PROVE_LOCKING
+       select ARCH_WANT_RELAX_ORDER
 
 config SPARC32
        def_bool !64BIT
index 094e1d63309a7a252eae31db2875185d9f3cb0e1..c38d50c1fcf783fdd83782c3380c14cdb0c4dd9d 100644 (file)
@@ -350,7 +350,7 @@ s32 ixgbe_start_hw_gen2(struct ixgbe_hw *hw)
        }
        IXGBE_WRITE_FLUSH(hw);
 
-#ifndef CONFIG_SPARC
+#ifndef CONFIG_ARCH_WANT_RELAX_ORDER
        /* Disable relaxed ordering */
        for (i = 0; i < hw->mac.max_tx_queues; i++) {
                u32 regval;