diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2014-01-08 04:50:49 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-01-09 10:56:39 -0500 |
commit | 1cbbcb08c786964a16773c39f2536f1923c73c58 (patch) | |
tree | 31dce2e250beea3fed5d17b139a48788f98cb0f9 | |
parent | df2d08eed2a38cee971b3f2ff132d8369471404e (diff) |
wil6210: prefetch head of packet
As soon as skb is ready to be reaped, prefetch 1-st cache line.
This accelerates data access that is performed later, during the
packet classification by the driver and IP stack.
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/wil6210/txrx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c index 18003c0d5141..9b88440ef05b 100644 --- a/drivers/net/wireless/ath/wil6210/txrx.c +++ b/drivers/net/wireless/ath/wil6210/txrx.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/ip.h> | 21 | #include <linux/ip.h> |
22 | #include <linux/ipv6.h> | 22 | #include <linux/ipv6.h> |
23 | #include <net/ipv6.h> | 23 | #include <net/ipv6.h> |
24 | #include <asm/processor.h> | ||
24 | 25 | ||
25 | #include "wil6210.h" | 26 | #include "wil6210.h" |
26 | #include "wmi.h" | 27 | #include "wmi.h" |
@@ -377,6 +378,8 @@ static struct sk_buff *wil_vring_reap_rx(struct wil6210_priv *wil, | |||
377 | } | 378 | } |
378 | skb_trim(skb, dmalen); | 379 | skb_trim(skb, dmalen); |
379 | 380 | ||
381 | prefetch(skb->data); | ||
382 | |||
380 | wil_hex_dump_txrx("Rx ", DUMP_PREFIX_OFFSET, 16, 1, | 383 | wil_hex_dump_txrx("Rx ", DUMP_PREFIX_OFFSET, 16, 1, |
381 | skb->data, skb_headlen(skb), false); | 384 | skb->data, skb_headlen(skb), false); |
382 | 385 | ||