Search Linux Wireless

Re: [RFC V3] mac80211: re-enable aggregation on 2.6.27

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2008-09-25 at 22:34 +0300, Tomas Winkler wrote:

>  	IEEE80211_TX_CTL_LONG_RETRY_LIMIT	= BIT(10),
>  	IEEE80211_TX_CTL_SEND_AFTER_DTIM	= BIT(12),
> -	IEEE80211_TX_CTL_AMPDU			= BIT(13),
> +	IEEE80211_TX_CTL_AMPDU                  = BIT(13),

whitespace change?

>  	/* we have tried too many times, receiver does not want A-MPDU */
>  	if (sta->ampdu_mlme.addba_req_num[tid] > HT_AGG_MAX_RETRIES) {
> +		printk(KERN_DEBUG "BA too many retries tid %u\n", tid);

should probably be under #ifdef

> +static void __ieee80211_run_ba_session(struct ieee80211_local *local)
> +{
> +	struct sta_info *sta;
> +	u8 *state;
> +	int tid;
> +
> +	ASSERT_RTNL();
> +
> +	spin_lock_bh(&local->sta_ba_lock);
> +	while (!list_empty(&local->sta_ba_session_list)) {
> +		sta = list_first_entry(&local->sta_ba_session_list,
> +				       struct sta_info, ba_list);
> +		list_del(&sta->ba_list);

I think you should probably use list_for_each_entry_safe().

The only other thing I haven't quite understood yet is how this fixes
the frame reordering issue, as pointed out by this comment:

                /* No need to requeue the packets in the agg queue, since we
                 * held the tx lock: no packet could be enqueued to the newly
                 * allocated queue */

which is of course no longer true. Nor does it fix, afaict, the whole
queue teardown vs. requeue issue, does it?

Oh and of course putting sta_info structs onto a list doesn't really
work unless you take care to delete them when they're destroyed, there's
nothing that guarantees they won't be freed in the meantime.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux