All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ath9k: Remove MAC header pad before reporting TX status
@ 2008-12-15 14:02 Jouni Malinen
  0 siblings, 0 replies; only message in thread
From: Jouni Malinen @ 2008-12-15 14:02 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless

Remove the possible MAC header pad before reporting TX status to
mac80211. This pad is hardware specific operation and should not be
exposed outside the driver. This fixes the frame body in monitor
interfaces that could be used to check on TX status for transmitted
frames.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
---
 drivers/net/wireless/ath9k/xmit.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

(the context in the patch depends on the previous ath9k: Fix TX status
reporting for retries and MCS index patch, but other than that, this is
an independent change)

--- wireless-testing.orig/drivers/net/wireless/ath9k/xmit.c	2008-12-15 15:48:49.000000000 +0200
+++ wireless-testing/drivers/net/wireless/ath9k/xmit.c	2008-12-15 15:54:37.000000000 +0200
@@ -106,6 +106,7 @@ static void ath_tx_complete(struct ath_s
 	struct ieee80211_hw *hw = sc->hw;
 	struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
 	struct ath_tx_info_priv *tx_info_priv = ATH_TX_INFO_PRIV(tx_info);
+	int hdrlen, padsize;
 
 	DPRINTF(sc, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb);
 
@@ -135,6 +136,17 @@ static void ath_tx_complete(struct ath_s
 				rate_table->info[idx].ratecode & 0x7f;
 	}
 
+	hdrlen = ieee80211_get_hdrlen_from_skb(skb);
+	padsize = hdrlen & 3;
+	if (padsize && hdrlen >= 24) {
+		/*
+		 * Remove MAC header padding before giving the frame back to
+		 * mac80211.
+		 */
+		memmove(skb->data + padsize, skb->data, hdrlen);
+		skb_pull(skb, padsize);
+	}
+
 	ieee80211_tx_status(hw, skb);
 }
 

-- 
Jouni Malinen                                            PGP id EFC895FA

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-12-15 14:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-15 14:02 [PATCH] ath9k: Remove MAC header pad before reporting TX status Jouni Malinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.