Actually, the right thing to check is info->flags & IEEE80211_TX_CTL_INJECTED - you shouldn't check the mode to determine injectedness. On Tue, Mar 2, 2010 at 2:17 AM, Bruno Randolf <bruno@xxxxxxxxxxx> wrote: > On Tuesday 02 March 2010 06:26:48 Benoit PAPILLAULT wrote: >> Bruno Randolf a écrit : >> > please ignore this one, sorry ;( >> > >> > bruno >> >> This one is cool & needed for testing IBSS merges. I have pretty much >> the same in my tree. > > yes - only sc->opmode is never set. i'll come up with a patch to fix that. > > bruno > > >> Regards, >> Benoit >> >> > 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 <br1@xxxxxxxxxxx> >> >> --- >> >> >> >> 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@xxxxxxxxxxxxxxx >> >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > >> > _______________________________________________ >> > ath5k-devel mailing list >> > ath5k-devel@xxxxxxxxxxxxxxx >> > https://lists.ath5k.org/mailman/listinfo/ath5k-devel > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html