diff options
Diffstat (limited to 'package/mac80211/patches/556-ath9k_desc_alignment.patch')
-rw-r--r-- | package/mac80211/patches/556-ath9k_desc_alignment.patch | 49 |
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 0000000000..6295f5eed2 --- /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)) |