All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Hartmann <andihartmann@freenet.de>
To: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	Felix Fietkau <nbd@openwrt.org>
Subject: Re: Compat-wireless-3.2-rc6-3 is broken for rt2860 device
Date: Mon, 23 Jan 2012 17:03:26 +0100	[thread overview]
Message-ID: <4F1D84CE.8020403@maya.org> (raw)
In-Reply-To: <CAGXE3d_rCMYwoEBNjk+S7WvAmCkPMcq-Gpawm370-cSbjXy6rg@mail.gmail.com>

Helmut Schaa schrieb:
> On Fri, Jan 20, 2012 at 8:29 AM, Andreas Hartmann
> <andihartmann@01019freenet.de> wrote:
>> All in one: Your workaround was a good idea, but unfortunately it
>> doesn't "solve" / workaround the problem introduced with the patch
>> "mac80211: retry sending failed BAR frames later instead of tearing
>> down aggr" [1]. I don't know off any other solution at this time as to revert it.
> 
> Ok, so we've got at least one hw issue here: rt2800 is not able to report
> correct ACK state of BARs :(
> 
> The interesting bit is that the legacy drivers tear the BA session down as
> soon as the first AMPDU subframe failed. That's the same behavior as
> mac80211 had before the mentioned patch.
> 
> So, let's assume the generic way Felix implemented works for other devices
> (like ath9k) we could go with a workaround inside rt2x00 to tear down
> the BA session as soon as the first AMPDU frame failed.
> 
> Mind to try that one (not even compile tested though :) ).

hdr is missing. I tried to derive it like this:

struct ieee80211_hdr *hdr=(void*)entry->skb->data;

Unfortunately, it crashes the machine after short time of operation.
Therefore I think that it isn't derived correctly!


Regards,
Andreas

> 
> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
> ---
> diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c
> b/drivers/net/wireless/rt2x00/rt2x00dev.c
> index c930ce0..9038934 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
> @@ -420,8 +420,16 @@ void rt2x00lib_txdone(struct queue_entry *entry,
>  		tx_info->status.ampdu_len = 1;
>  		tx_info->status.ampdu_ack_len = success ? 1 : 0;
> 
> -		if (!success)
> -			tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
> +		if (!success && ieee80211_is_data_qos(hdr->frame_control)) {
> +			/*
> +			 * Tear down BA session
> +			 */
> +			struct ieee80211_sta *sta = tx_info->control.sta;
> +			u8 *qc = ieee80211_get_qos_ctl(hdr);
> +			int tid = *qc & IEEE80211_QOS_CTL_TID_MASK;
> +
> +			ieee80211_stop_tx_ba_session(sta, tid);
> +		}
>  	}
> 
>  	if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {


  reply	other threads:[~2012-01-23 16:06 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-31 13:49 Compat-wireless-3.2-rc6-3 is broken for rt2860 device Andreas Hartmann
2011-12-31 20:35 ` Andreas Hartmann
2012-01-03 21:51   ` Helmut Schaa
2012-01-04  8:38     ` Andreas Hartmann
2012-01-04 15:04       ` Helmut Schaa
2012-01-05  8:44         ` Andreas Hartmann
2012-01-09 10:23           ` Helmut Schaa
2012-01-09 13:29             ` Andreas Hartmann
2012-01-09 13:45               ` Helmut Schaa
2012-01-10  8:03                 ` Andreas Hartmann
2012-01-10  9:50                   ` Helmut Schaa
2012-01-10 11:56                     ` Andreas Hartmann
2012-01-10 12:23                       ` Helmut Schaa
2012-01-10 13:01                         ` Andreas Hartmann
2012-01-10 13:43                           ` Helmut Schaa
2012-01-10 14:41                             ` Andreas Hartmann
2012-01-17  9:09                     ` Andreas Hartmann
2012-01-20  7:29                     ` Andreas Hartmann
2012-01-23 13:29                       ` Helmut Schaa
2012-01-23 16:03                         ` Andreas Hartmann [this message]
2012-01-23 16:36                           ` Helmut Schaa
2012-01-23 17:44                             ` Andreas Hartmann
2012-01-24  8:07                               ` Helmut Schaa
2012-01-24 14:39                                 ` Stanislaw Gruszka
2012-01-24 15:19                                   ` Helmut Schaa
2012-01-24  7:29                         ` Stanislaw Gruszka
2012-01-24  8:01                           ` Andreas Hartmann
2012-01-24  8:06                           ` Helmut Schaa
2012-01-04 12:29     ` Andreas Hartmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F1D84CE.8020403@maya.org \
    --to=andihartmann@freenet.de \
    --cc=helmut.schaa@googlemail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=nbd@openwrt.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.