On Wed, 2011-11-16 at 13:31 +0100, Simon Wunderlich wrote: > @@ -154,7 +154,10 @@ static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, int group_addr, > * (10 bytes + 4-byte FCS = 112 bits) plus SIFS; rounded up > * to closest integer */ > > - dur = ieee80211_frame_duration(local, 10, rate, erp, > + if (info->flags & IEEE80211_TX_CTL_NO_ACK) > + dur = 0; > + else > + dur = ieee80211_frame_duration(local, 10, rate, erp, > tx->sdata->vif.bss_conf.use_short_preamble); > > if (next_frag_len) { Come to think of it, I think this is wrong. IEEE80211_TX_CTL_NO_ACK might also be set for frames that will get an ACK, but for which we aren't going to wait for one. In those cases the duration must still be set correctly to include the ACK because if it isn't the ACK might conflict with another station's frame on the air. johannes -- 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