mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/ppwaskie/net-next
Peter P Waskiewicz Jr says:
====================
This series contains multiple updates to the ixgbe driver.
The following are changes since commit 02644a1745:
sctp: fix bogus if statement in sctp_auth_recv_cid()
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ppwaskie/net-next master
Alexander Duyck (9):
ixgbe: Remove code that was initializing Rx page offset
ixgbe: combine ixgbe_add_rx_frag and ixgbe_can_reuse_page
ixgbe: Only use double buffering if page size is less than 8K
ixgbe: Have the CPU take ownership of the buffers sooner
ixgbe: Make pull tail function separate from rest of cleanup_headers
ixgbe: Copybreak sooner to avoid get_page/put_page and offset change
overhead
ixgbe: Make allocating skb and placing data in it a separate function
ixgbe: Roll RSC code into non-EOP code
ixgbe: Rewrite code related to configuring IFCS bit in Tx descriptor
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
4c6de2fedc
2 files changed
+284
-238
No files matched your search
@@ -78,6 +78,9 @@
|
||||
|
||||
/* Supported Rx Buffer Sizes */
|
||||
#define IXGBE_RXBUFFER_256 256 /* Used for skb receive header */
|
||||
#define IXGBE_RXBUFFER_2K 2048
|
||||
#define IXGBE_RXBUFFER_3K 3072
|
||||
#define IXGBE_RXBUFFER_4K 4096
|
||||
#define IXGBE_MAX_RXBUFFER 16384 /* largest size for a single descriptor */
|
||||
|
||||
/*
|
||||
@@ -104,6 +107,7 @@
|
||||
#define IXGBE_TX_FLAGS_FSO (u32)(1 << 6)
|
||||
#define IXGBE_TX_FLAGS_TXSW (u32)(1 << 7)
|
||||
#define IXGBE_TX_FLAGS_TSTAMP (u32)(1 << 8)
|
||||
#define IXGBE_TX_FLAGS_NO_IFCS (u32)(1 << 9)
|
||||
#define IXGBE_TX_FLAGS_VLAN_MASK 0xffff0000
|
||||
#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000
|
||||
#define IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT 29
|
||||
@@ -293,16 +297,25 @@ struct ixgbe_ring_feature {
|
||||
* this is twice the size of a half page we need to double the page order
|
||||
* for FCoE enabled Rx queues.
|
||||
*/
|
||||
#if defined(IXGBE_FCOE) && (PAGE_SIZE < 8192)
|
||||
static inline unsigned int ixgbe_rx_bufsz(struct ixgbe_ring *ring)
|
||||
{
|
||||
#ifdef IXGBE_FCOE
|
||||
if (test_bit(__IXGBE_RX_FCOE, &ring->state))
|
||||
return (PAGE_SIZE < 8192) ? IXGBE_RXBUFFER_4K :
|
||||
IXGBE_RXBUFFER_3K;
|
||||
#endif
|
||||
return IXGBE_RXBUFFER_2K;
|
||||
}
|
||||
|
||||
static inline unsigned int ixgbe_rx_pg_order(struct ixgbe_ring *ring)
|
||||
{
|
||||
return test_bit(__IXGBE_RX_FCOE, &ring->state) ? 1 : 0;
|
||||
}
|
||||
#else
|
||||
#define ixgbe_rx_pg_order(_ring) 0
|
||||
#ifdef IXGBE_FCOE
|
||||
if (test_bit(__IXGBE_RX_FCOE, &ring->state))
|
||||
return (PAGE_SIZE < 8192) ? 1 : 0;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#define ixgbe_rx_pg_size(_ring) (PAGE_SIZE << ixgbe_rx_pg_order(_ring))
|
||||
#define ixgbe_rx_bufsz(_ring) ((PAGE_SIZE / 2) << ixgbe_rx_pg_order(_ring))
|
||||
|
||||
struct ixgbe_ring_container {
|
||||
struct ixgbe_ring *ring; /* pointer to linked list of rings */
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user