提交 35ec56bb 编写于 作者: J Jesse Brandeburg 提交者: Jeff Garzik

[PATCH] e1000: Added disable packet split capability

Adds the ability to disability packet split at compile time and use the legacy receive path on PCI express hardware.  Made this a CONFIG option and modified the Kconfig, to reflect the new option.
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: NJohn Ronciak <john.ronciak@intel.com>
Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
上级 7eb9b2f5
...@@ -522,6 +522,7 @@ CONFIG_E100=y ...@@ -522,6 +522,7 @@ CONFIG_E100=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -493,6 +493,7 @@ CONFIG_NETDEVICES=y ...@@ -493,6 +493,7 @@ CONFIG_NETDEVICES=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -415,6 +415,7 @@ CONFIG_NETDEVICES=y ...@@ -415,6 +415,7 @@ CONFIG_NETDEVICES=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -496,6 +496,7 @@ CONFIG_NETDEVICES=y ...@@ -496,6 +496,7 @@ CONFIG_NETDEVICES=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -496,6 +496,7 @@ CONFIG_NETDEVICES=y ...@@ -496,6 +496,7 @@ CONFIG_NETDEVICES=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -644,6 +644,8 @@ CONFIG_8139TOO_PIO=y ...@@ -644,6 +644,8 @@ CONFIG_8139TOO_PIO=y
# CONFIG_ACENIC is not set # CONFIG_ACENIC is not set
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
# CONFIG_E1000 is not set # CONFIG_E1000 is not set
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -557,6 +557,7 @@ CONFIG_E100=m ...@@ -557,6 +557,7 @@ CONFIG_E100=m
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -565,6 +565,7 @@ CONFIG_E100=m ...@@ -565,6 +565,7 @@ CONFIG_E100=m
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -548,6 +548,7 @@ CONFIG_E100=y ...@@ -548,6 +548,7 @@ CONFIG_E100=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -565,6 +565,7 @@ CONFIG_E100=m ...@@ -565,6 +565,7 @@ CONFIG_E100=m
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -602,6 +602,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y ...@@ -602,6 +602,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=m CONFIG_E1000=m
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -626,6 +626,7 @@ CONFIG_ACENIC=m ...@@ -626,6 +626,7 @@ CONFIG_ACENIC=m
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=m CONFIG_E1000=m
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -533,6 +533,7 @@ CONFIG_MII=y ...@@ -533,6 +533,7 @@ CONFIG_MII=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=m CONFIG_E1000=m
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -675,6 +675,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y ...@@ -675,6 +675,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -567,6 +567,7 @@ CONFIG_ACENIC=m ...@@ -567,6 +567,7 @@ CONFIG_ACENIC=m
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=m CONFIG_E1000=m
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -454,6 +454,7 @@ CONFIG_AMD8111_ETH=y ...@@ -454,6 +454,7 @@ CONFIG_AMD8111_ETH=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -724,6 +724,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y ...@@ -724,6 +724,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -671,6 +671,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y ...@@ -671,6 +671,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -499,6 +499,7 @@ CONFIG_NATSEMI=y ...@@ -499,6 +499,7 @@ CONFIG_NATSEMI=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -488,6 +488,7 @@ CONFIG_E100=y ...@@ -488,6 +488,7 @@ CONFIG_E100=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -402,6 +402,7 @@ CONFIG_E100=y ...@@ -402,6 +402,7 @@ CONFIG_E100=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -442,6 +442,7 @@ CONFIG_E100=y ...@@ -442,6 +442,7 @@ CONFIG_E100=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -529,6 +529,7 @@ CONFIG_NET_PCI=y ...@@ -529,6 +529,7 @@ CONFIG_NET_PCI=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=m CONFIG_E1000=m
CONFIG_E1000_NAPI=y CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_MYRI_SBUS is not set # CONFIG_MYRI_SBUS is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
......
...@@ -646,6 +646,7 @@ CONFIG_8139TOO=y ...@@ -646,6 +646,7 @@ CONFIG_8139TOO=y
# CONFIG_DL2K is not set # CONFIG_DL2K is not set
CONFIG_E1000=y CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set # CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_NS83820 is not set # CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
......
...@@ -1914,6 +1914,15 @@ config E1000_NAPI ...@@ -1914,6 +1914,15 @@ config E1000_NAPI
If in doubt, say N. If in doubt, say N.
config E1000_DISABLE_PACKET_SPLIT
bool "Disable Packet Split for PCI express adapters"
depends on E1000
help
Say Y here if you want to use the legacy receive path for PCI express
hadware.
If in doubt, say N.
source "drivers/net/ixp2000/Kconfig" source "drivers/net/ixp2000/Kconfig"
config MYRI_SBUS config MYRI_SBUS
......
...@@ -1621,7 +1621,7 @@ e1000_setup_rctl(struct e1000_adapter *adapter) ...@@ -1621,7 +1621,7 @@ e1000_setup_rctl(struct e1000_adapter *adapter)
{ {
uint32_t rctl, rfctl; uint32_t rctl, rfctl;
uint32_t psrctl = 0; uint32_t psrctl = 0;
#ifdef CONFIG_E1000_PACKET_SPLIT #ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT
uint32_t pages = 0; uint32_t pages = 0;
#endif #endif
...@@ -1672,7 +1672,7 @@ e1000_setup_rctl(struct e1000_adapter *adapter) ...@@ -1672,7 +1672,7 @@ e1000_setup_rctl(struct e1000_adapter *adapter)
} }
} }
#ifdef CONFIG_E1000_PACKET_SPLIT #ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT
/* 82571 and greater support packet-split where the protocol /* 82571 and greater support packet-split where the protocol
* header is placed in skb->data and the packet data is * header is placed in skb->data and the packet data is
* placed in pages hanging off of skb_shinfo(skb)->nr_frags. * placed in pages hanging off of skb_shinfo(skb)->nr_frags.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册