On Thu, Apr 28, 2011 at 02:09:53PM +0200, Johannes Berg wrote: > > > 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? > > > > We call iwl_sta_modify_sleep_tx_count(priv, sta_id, 1); for any frame > > as long as some other conditions are true. > > That can only happen in AP mode, and if the station is asleep, I don't > think it's a concern. > > > Also multicast frames are important. When we send data and multicast > > frame we probably modify > > > > priv->stations[sta_id].tid[tid] > > > > with wrong sta_id (other station with unicast address), what make related > > aggregation data wrong for that other station. > > Yeah, but multicast is already handled properly, since in that case > info->control.sta will be set to NULL by mac80211. Keep in mind that > again this is AP mode only, since a client connected to an AP never > sends real multicast frames (if it sends 802.3 multicast frames they're > still unicast to the AP). We use sta_id for building tx command in: if (info->control.hw_key) iwlagn_tx_cmd_build_hwcrypto(priv, info, tx_cmd, skb, sta_id); /* TODO need this for burst mode later on */ iwlagn_tx_cmd_build_basic(priv, skb, tx_cmd, info, hdr, sta_id); so problems seems to be that the firmware do not handle unicast sta_id for management frames. I'll repost patches that check only ieee80211_is_data(fc). BTW, iwlagn_tx_skb function needs serious cleanup, it's completely unreadable! Stanislaw -- 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