On Thu, 2011-04-28 at 13:10 +0200, Stanislaw Gruszka wrote: > Need to use broadcast sta_id for management and multicast frames, > otherwise we broke BA session and get messages like that: > > "Received BA when not expected" > > or (on older kernels): > > "BA scd_flow 0 does not match txq_id 10" Hmm. Interesting. I believe you, but it's hard. > - /* Find index into station table for destination station */ > - sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta); info->control.sta should be NULL here, at least for multicast frames (which never really happen in practise unless you use AP mode). And then this should return ctx->bcast_sta_id, just like you use below: > + /* If this frame is broadcast or management, use broadcast station id */ > + if (!ieee80211_is_data(fc) || is_multicast_ether_addr(hdr->addr1)) > + sta_id = ctx->bcast_sta_id; So the reason has to be management frames. But why would those be affecting it? They aren't QoS frames, so there should be no influence on BA handling at all. This is a bit odd. Maybe we should make it clear here that it's about non-data frames and remove the multicast check since that ought to be handled in the other path? 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