From: Felix Fietkau Date: Sat, 10 Feb 2018 12:26:42 +0000 (+0100) Subject: mac80211: round up tx status headroom X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=526921f20e9d40967d38b09c67d3247f4c6ddb39;p=openwrt%2Fstaging%2Fnbd.git mac80211: round up tx status headroom Fixes unaligned access exceptions in mt76 when transmitting beacons Signed-off-by: Felix Fietkau --- diff --git a/package/kernel/mac80211/patches/325-mac80211-round-IEEE80211_TX_STATUS_HEADROOM-up-to-mu.patch b/package/kernel/mac80211/patches/325-mac80211-round-IEEE80211_TX_STATUS_HEADROOM-up-to-mu.patch new file mode 100644 index 0000000000..56c0acc099 --- /dev/null +++ b/package/kernel/mac80211/patches/325-mac80211-round-IEEE80211_TX_STATUS_HEADROOM-up-to-mu.patch @@ -0,0 +1,26 @@ +From: Felix Fietkau +Date: Fri, 9 Feb 2018 19:46:54 +0100 +Subject: [PATCH] mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple + of 4 + +This ensures that mac80211 allocated management frames are properly +aligned, which makes copying them more efficient. +For instance, mt76 uses iowrite32_copy to copy beacon frames to beacon +template memory on the chip. +Misaligned 32-bit accesses cause CPU exceptions on MIPS and should be +avoided. + +Signed-off-by: Felix Fietkau +--- + +--- a/include/net/mac80211.h ++++ b/include/net/mac80211.h +@@ -4149,7 +4149,7 @@ void ieee80211_sta_uapsd_trigger(struct + * The TX headroom reserved by mac80211 for its own tx_status functions. + * This is enough for the radiotap header. + */ +-#define IEEE80211_TX_STATUS_HEADROOM 14 ++#define IEEE80211_TX_STATUS_HEADROOM ALIGN(14, 4) + + /** + * ieee80211_sta_set_buffered - inform mac80211 about driver-buffered frames