summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/556-ath9k_desc_alignment.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/556-ath9k_desc_alignment.patch')
-rw-r--r--package/mac80211/patches/556-ath9k_desc_alignment.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/package/mac80211/patches/556-ath9k_desc_alignment.patch b/package/mac80211/patches/556-ath9k_desc_alignment.patch
new file mode 100644
index 000000000..6295f5eed
--- /dev/null
+++ b/package/mac80211/patches/556-ath9k_desc_alignment.patch
@@ -0,0 +1,49 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.h
+@@ -65,7 +65,7 @@ struct ar9003_rxs {
+ u32 status9;
+ u32 status10;
+ u32 status11;
+-} __packed;
++} __packed __aligned(4);
+
+ /* Transmit Control Descriptor */
+ struct ar9003_txc {
+@@ -93,7 +93,7 @@ struct ar9003_txc {
+ u32 ctl21; /* DMA control 21 */
+ u32 ctl22; /* DMA control 22 */
+ u32 pad[9]; /* pad to cache line (128 bytes/32 dwords) */
+-} __packed;
++} __packed __aligned(4);
+
+ struct ar9003_txs {
+ u32 ds_info;
+@@ -105,7 +105,7 @@ struct ar9003_txs {
+ u32 status6;
+ u32 status7;
+ u32 status8;
+-} __packed;
++} __packed __aligned(4);
+
+ void ar9003_hw_attach_mac_ops(struct ath_hw *hw);
+ void ath9k_hw_set_rx_bufsize(struct ath_hw *ah, u16 buf_size);
+--- a/drivers/net/wireless/ath/ath9k/mac.h
++++ b/drivers/net/wireless/ath/ath9k/mac.h
+@@ -237,7 +237,7 @@ struct ath_desc {
+ u32 ds_ctl1;
+ u32 ds_hw[20];
+ void *ds_vdata;
+-} __packed;
++} __packed __aligned(4);
+
+ #define ATH9K_TXDESC_CLRDMASK 0x0001
+ #define ATH9K_TXDESC_NOACK 0x0002
+@@ -307,7 +307,7 @@ struct ar5416_desc {
+ u32 status8;
+ } rx;
+ } u;
+-} __packed;
++} __packed __aligned(4);
+
+ #define AR5416DESC(_ds) ((struct ar5416_desc *)(_ds))
+ #define AR5416DESC_CONST(_ds) ((const struct ar5416_desc *)(_ds))