summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
diff options
context:
space:
mode:
authorJakub Kicinski <kubakici@wp.pl>2015-07-31 15:04:46 +0200
committerKalle Valo <kvalo@codeaurora.org>2015-08-10 22:19:31 +0300
commitbed429e1ae8b7ee207e01f3aa60dcc0d06a8ed4d (patch)
treeea5cc5c1f61fe0a3a0c87a8093527be6dc7c4c74 /drivers/net/wireless/mediatek/mt7601u/mt7601u.h
parent7845af35e0deeb7537de759ebc69d6395d4123bf (diff)
downloadlinux-bed429e1ae8b7ee207e01f3aa60dcc0d06a8ed4d.tar.gz
mt7601u: fix dma from stack address
DMA to variables located on the stack is a bad idea. For simplicity and to avoid frequent allocations create a buffer inside the device structure. Protect this buffer with vendor_req_mutex. Don't protect vendor requests which don't use this buffer. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt7601u/mt7601u.h')
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/mt7601u.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/mediatek/mt7601u/mt7601u.h b/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
index 9102be6b95cb..6bdfc1103fcc 100644
--- a/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
+++ b/drivers/net/wireless/mediatek/mt7601u/mt7601u.h
@@ -146,7 +146,7 @@ enum {
* @rx_lock: protects @rx_q.
* @con_mon_lock: protects @ap_bssid, @bcn_*, @avg_rssi.
* @mutex: ensures exclusive access from mac80211 callbacks.
- * @vendor_req_mutex: ensures atomicity of vendor requests.
+ * @vendor_req_mutex: protects @vend_buf, ensures atomicity of split writes.
* @reg_atomic_mutex: ensures atomicity of indirect register accesses
* (accesses to RF and BBP).
* @hw_atomic_mutex: ensures exclusive access to HW during critical
@@ -184,6 +184,8 @@ struct mt7601u_dev {
struct mt7601u_eeprom_params *ee;
struct mutex vendor_req_mutex;
+ void *vend_buf;
+
struct mutex reg_atomic_mutex;
struct mutex hw_atomic_mutex;