Return-path: Received: from home.einfach.org ([80.86.92.145]:55525 "EHLO home.einfach.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751361Ab0CANP0 (ORCPT ); Mon, 1 Mar 2010 08:15:26 -0500 From: Bruno Randolf To: linville@tuxdriver.com Subject: Re: [PATCH 1/5] ath5k: fix injection in monitor mode Date: Mon, 1 Mar 2010 21:54:55 +0900 Cc: ath5k-devel@lists.ath5k.org, linux-wireless@vger.kernel.org References: <20100301115903.13996.95024.stgit@void> In-Reply-To: <20100301115903.13996.95024.stgit@void> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Message-Id: <201003012154.55633.bruno@einfach.org> Sender: linux-wireless-owner@vger.kernel.org List-ID: please ignore this one, sorry ;( bruno On Monday 01 March 2010 20:59:03 Bruno Randolf wrote: > injected frames have to use AR5K_PKT_TYPE_NORMAL, otherwise the hardware > thinks it can mess with the contents of the frame - e.g. update the TSF of > an injected beacon. injected frames should be sent as they are provided. > > Signed-off-by: Bruno Randolf > --- > > drivers/net/wireless/ath/ath5k/base.c | 11 ++++++++++- > 1 files changed, 10 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath5k/base.c > b/drivers/net/wireless/ath/ath5k/base.c index 2468c64..904d7f0 100644 > --- a/drivers/net/wireless/ath/ath5k/base.c > +++ b/drivers/net/wireless/ath/ath5k/base.c > @@ -1285,6 +1285,7 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct > ath5k_buf *bf, u16 cts_rate = 0; > u16 duration = 0; > u8 rc_flags; > + enum ath5k_pkt_type pkt_type; > > flags = AR5K_TXDESC_INTREQ | AR5K_TXDESC_CLRDMASK; > > @@ -1322,9 +1323,17 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct > ath5k_buf *bf, duration = le16_to_cpu(ieee80211_ctstoself_duration(sc->hw, > sc->vif, pktlen, info)); > } > + > + /* we don't want the hardware to mess with injected frames in monitor > + * mode (e.g. update TSF in beacons) */ > + if (sc->opmode == NL80211_IFTYPE_MONITOR) > + pkt_type = AR5K_PKT_TYPE_NORMAL; > + else > + pkt_type = get_hw_packet_type(skb); > + > ret = ah->ah_setup_tx_desc(ah, ds, pktlen, > ieee80211_get_hdrlen_from_skb(skb), > - get_hw_packet_type(skb), > + pkt_type, > (sc->power_level * 2), > hw_rate, > info->control.rates[0].count, keyidx, ah->ah_tx_ant, flags, > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" > in the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html