diff options
author | Ming Lei <tom.leiming@gmail.com> | 2010-04-12 12:29:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-14 14:52:43 -0400 |
commit | e6c6d33cb7d18721e56ce4bb5a0e22593956ef14 (patch) | |
tree | 1492732f91d4ae425c9f2e2c3de1db0229913be5 /drivers/net/wireless/ath/ath9k/wmi.c | |
parent | f28a7b30cdaa936bdbdc0a2018241936fb56cae6 (diff) |
ath9k-htc:respect usb buffer cacheline alignment in reg in path
In ath9k-htc register in path, ath9k-htc will pass skb->data into
usb hcd and usb hcd will do dma mapping and unmapping to the buffer
pointed by skb->data, so we should pass a cache-line aligned address.
This patch replace __dev_alloc_skb with alloc_skb to make skb->data
pointed to a cacheline aligned address simply since ath9k-htc does not
skb_push on the skb and pass it to mac80211, also use kfree_skb to free
the skb allocated by alloc_skb(we can use kfree_skb safely in hardirq
context since skb->destructor is NULL always in the path).
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/wmi.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/wmi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c index 818dea0164ec..acb66544a2aa 100644 --- a/drivers/net/wireless/ath/ath9k/wmi.c +++ b/drivers/net/wireless/ath/ath9k/wmi.c | |||
@@ -169,7 +169,7 @@ void ath9k_wmi_tasklet(unsigned long data) | |||
169 | break; | 169 | break; |
170 | } | 170 | } |
171 | 171 | ||
172 | dev_kfree_skb_any(skb); | 172 | kfree_skb(skb); |
173 | } | 173 | } |
174 | 174 | ||
175 | static void ath9k_wmi_rsp_callback(struct wmi *wmi, struct sk_buff *skb) | 175 | static void ath9k_wmi_rsp_callback(struct wmi *wmi, struct sk_buff *skb) |
@@ -207,7 +207,7 @@ static void ath9k_wmi_ctrl_rx(void *priv, struct sk_buff *skb, | |||
207 | ath9k_wmi_rsp_callback(wmi, skb); | 207 | ath9k_wmi_rsp_callback(wmi, skb); |
208 | 208 | ||
209 | free_skb: | 209 | free_skb: |
210 | dev_kfree_skb_any(skb); | 210 | kfree_skb(skb); |
211 | } | 211 | } |
212 | 212 | ||
213 | static void ath9k_wmi_ctrl_tx(void *priv, struct sk_buff *skb, | 213 | static void ath9k_wmi_ctrl_tx(void *priv, struct sk_buff *skb, |