diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2013-01-29 23:33:15 +0000 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-03-07 20:22:09 +0000 |
commit | b184f16b7feb9ede7d658ee6f2c77434d580d764 (patch) | |
tree | 1880814cb198d48664bfda545e7aa6df86fcd995 /drivers/net/ethernet/sfc/rx.c | |
parent | ff734ef4bca05fd5cd51b83d2e2a9f008b64f9a3 (diff) | |
download | linux-b184f16b7feb9ede7d658ee6f2c77434d580d764.tar.gz linux-b184f16b7feb9ede7d658ee6f2c77434d580d764.tar.bz2 linux-b184f16b7feb9ede7d658ee6f2c77434d580d764.zip |
sfc: Replace efx_rx_buf_eh() with simpler efx_rx_buf_va()
efx_rx_buf_va() returns the virtual address of the current start of
the buffer. The callers must add the hash prefix size themselves.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/rx.c')
-rw-r--r-- | drivers/net/ethernet/sfc/rx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c index 60f4eb7cebc6..23d67d1f136f 100644 --- a/drivers/net/ethernet/sfc/rx.c +++ b/drivers/net/ethernet/sfc/rx.c @@ -54,9 +54,9 @@ static inline unsigned int efx_rx_buf_offset(struct efx_nic *efx, return buf->page_offset + efx->type->rx_buffer_hash_size; } -static u8 *efx_rx_buf_eh(struct efx_nic *efx, struct efx_rx_buffer *buf) +static inline u8 *efx_rx_buf_va(struct efx_rx_buffer *buf) { - return page_address(buf->page) + efx_rx_buf_offset(efx, buf); + return page_address(buf->page) + buf->page_offset; } static inline u32 efx_rx_buf_hash(const u8 *eh) @@ -458,7 +458,7 @@ void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index, /* Prefetch nice and early so data will (hopefully) be in cache by * the time we look at it. */ - prefetch(efx_rx_buf_eh(efx, rx_buf)); + prefetch(efx_rx_buf_va(rx_buf) + efx->type->rx_buffer_hash_size); /* Pipeline receives so that we give time for packet headers to be * prefetched into cache. @@ -497,7 +497,7 @@ static void efx_rx_deliver(struct efx_channel *channel, u8 *eh, void __efx_rx_packet(struct efx_channel *channel, struct efx_rx_buffer *rx_buf) { struct efx_nic *efx = channel->efx; - u8 *eh = efx_rx_buf_eh(efx, rx_buf); + u8 *eh = efx_rx_buf_va(rx_buf) + efx->type->rx_buffer_hash_size; /* If we're in loopback test, then pass the packet directly to the * loopback layer, and free the rx_buf here |