linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <lrodriguez@atheros.com>
To: "linville@tuxdriver.com" <linville@tuxdriver.com>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	Luis Rodriguez <Luis.Rodriguez@Atheros.com>,
	"stable@kernel.org" <stable@kernel.org>, Jouni Malinen <j@w1.fi>,
	Paul Stewart <pstew@google.com>,
	Amod Bodas <Amod.Bodas@Atheros.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	Vasanth Thiagarajan <Vasanth.Thiagarajan@Atheros.com>
Subject: Re: [PATCH v2 0/3] mac80211: fix rate_control_send_low warnings for delbas
Date: Fri, 1 Oct 2010 13:50:59 -0700	[thread overview]
Message-ID: <20101001205059.GA10343@tux> (raw)
In-Reply-To: <1285965233-11097-1-git-send-email-lrodriguez@atheros.com>

On Fri, Oct 01, 2010 at 01:33:50PM -0700, Luis R. Rodriguez wrote:
> The following two patches:
> 
> 9c87ba6 - mac80211: Fix reassociation processing (within ESS roaming)
> e1dd33f - cfg80211: Allow reassociation in associated state
> 
> $ git describe --contains 9c87ba6
> v2.6.34-rc2~48^2~77^2~6
> $ git describe --contains 9c87ba6
> v2.6.34-rc2~48^2~77^2~6
> 
> Added support for cfg80211/mac80211 to cleanly roam between two BSSes
> on an ESS by allowing the station to authenticate to two APS at the
> same time, and when an association comes in for the new AP we first
> disassociate from the old AP and then associate with the new one.
> 
> What we forgot to take into consideration is that when we disassociate
> with the older AP we may need to transmit frames to that AP and those
> frames may actually be intended to go under a different channel and
> even sometimes a completely separate band than the new APs. When we
> TX a frame we assume the frame we want to TX however will be on the
> current hardware configured channel. The channel we would try to
> send a frame on can be different than the channel we prepared the
> bitrates for the peer on though. What this meant is that upon tearing
> down a BA agreement we would try to send a frame to a peer but not
> find a valid rate for that peer and generate warnings like the
> following:
> 
> WARNING: at include/net/mac80211.h:2677 rate_control_send_low+0xd3/0x140 [mac80211]()
> Hardware name: 6460DWU
> Modules linked in: ath9k mac80211 ath9k_common ath9k_hw ath cfg80211 <etc>
> Pid: 898, comm: wpa_supplicant Tainted: G        W   2.6.36-rc5-wl+ #254
> Call Trace:
>  [<ffffffff8105fddf>] warn_slowpath_common+0x7f/0xc0
>  [<ffffffff8105fe3a>] warn_slowpath_null+0x1a/0x20
>  [<ffffffffa03b8573>] rate_control_send_low+0xd3/0x140 [mac80211]
>  [<ffffffffa0192fa8>] ath_get_rate+0x48/0x570 [ath9k]
>  [<ffffffff812b8d19>] ? put_dec+0x59/0x60
>  [<ffffffffa03b839e>] rate_control_get_rate+0x8e/0x190 [mac80211]
>  [<ffffffffa03c27e8>] ieee80211_tx_h_rate_ctrl+0x1a8/0x4e0 [mac80211]
>  [<ffffffffa03c2ec0>] invoke_tx_handlers+0x100/0x140 [mac80211]
>  [<ffffffffa03c2f85>] ieee80211_tx+0x85/0x240 [mac80211]
>  [<ffffffff81479c70>] ? skb_release_data+0xd0/0xe0
>  [<ffffffff8147bb0d>] ? pskb_expand_head+0x10d/0x1a0
>  [<ffffffffa03c31f6>] ieee80211_xmit+0xb6/0x1d0 [mac80211]
>  [<ffffffff81479db3>] ? __alloc_skb+0x83/0x170
>  [<ffffffffa03c3364>] ieee80211_tx_skb+0x54/0x70 [mac80211]
>  [<ffffffffa03ac0dd>] ieee80211_send_delba+0x11d/0x190 [mac80211]
>  [<ffffffffa03adcf0>] ___ieee80211_stop_rx_ba_session+0xf0/0x110 [mac80211]
>  [<ffffffffa03add60>] __ieee80211_stop_rx_ba_session+0x50/0x70 [mac80211]
>  [<ffffffffa03ac3f3>] ieee80211_sta_tear_down_BA_sessions+0x43/0x50 [mac80211]
>  [<ffffffffa03b23c3>] ieee80211_set_disassoc+0x103/0x240 [mac80211]
>  [<ffffffffa03b3b2d>] ieee80211_mgd_assoc+0x8d/0x3a0 [mac80211]
>  [<ffffffffa03ba66f>] ieee80211_assoc+0x4f/0x80 [mac80211]
>  [<ffffffffa011e5b6>] __cfg80211_mlme_assoc+0x1f6/0x240 [cfg80211]
>  [<ffffffffa011e68f>] cfg80211_mlme_assoc+0x8f/0xc0 [cfg80211]
>  [<ffffffffa010afd0>] ? cfg80211_get_dev_from_ifindex+0x70/0x80 [cfg80211]
>  [<ffffffffa011489a>] nl80211_associate+0x23a/0x260 [cfg80211]
>  [<ffffffff812c6c6f>] ? nla_parse+0xef/0x110
>  [<ffffffff814ad738>] genl_rcv_msg+0x1d8/0x210
>  [<ffffffff81475cf4>] ? sock_alloc_send_pskb+0x1d4/0x330
>  [<ffffffff814ad560>] ? genl_rcv_msg+0x0/0x210
>  [<ffffffff814ac179>] netlink_rcv_skb+0xa9/0xd0
>  [<ffffffff814ad545>] genl_rcv+0x25/0x40
>  [<ffffffff814abdd8>] netlink_unicast+0x2c8/0x2e0
>  [<ffffffff814acc30>] netlink_sendmsg+0x250/0x360
>  [<ffffffff81472643>] sock_sendmsg+0xf3/0x120
>  [<ffffffff81562dbe>] ? _raw_spin_lock+0xe/0x20
>  [<ffffffff81471105>] ? move_addr_to_kernel+0x65/0x70
>  [<ffffffff8147d168>] ? verify_iovec+0x88/0xe0
>  [<ffffffff81472d70>] sys_sendmsg+0x240/0x3a0
>  [<ffffffff81151b0a>] ? do_readv_writev+0x1aa/0x1f0
>  [<ffffffff815604b0>] ? schedule+0x3c0/0xa00
>  [<ffffffff81151b98>] ? vfs_writev+0x48/0x60
>  [<ffffffff81151cc1>] ? sys_writev+0x51/0xb0
>  [<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
> 
> This can be easily reproduced with the test-roam script [1] and
> statically defining the ESS variable with the BSSes of an AP
> in 2.4 GHz band and another one on the 5 GHz band.
> 
> Since we end up associated 

typo, I meant authenticate

> to two different APs at the same
> time to transmit to either AP consists of an offchannel

and this should read "to transmit to the new AP consinst
of an offchannel"

> operation and mac80211 does have a state machine for this
> but assumes we don't transmit on our operating channel within
> each work item. If we do need to transmit to on the operating
> channel each work item needs to ensure this. This series
> addresses this by addressing a series of possible races on
> the frame's set channel, prevening us from associating to a
> new AP if we were previously associated and haven't yet
> associated, and ensuring we transmit the disassocation on
> the operating channel.


  parent reply	other threads:[~2010-10-01 20:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-01 20:33 [PATCH v2 0/3] mac80211: fix rate_control_send_low warnings for delbas Luis R. Rodriguez
2010-10-01 20:33 ` [PATCH v2 1/3] mac80211: fix channel assumption for association done work Luis R. Rodriguez
2010-10-04 13:12   ` Johannes Berg
2010-10-01 20:33 ` [PATCH v2 2/3] mac80211: wait until completely disassociated before new association Luis R. Rodriguez
2010-10-04 13:14   ` Johannes Berg
2010-10-04 16:36     ` Luis R. Rodriguez
2010-10-04 16:39       ` Johannes Berg
2010-10-04 18:04         ` Luis R. Rodriguez
2010-10-04 18:44           ` Johannes Berg
2010-10-04 20:55             ` Luis R. Rodriguez
2010-10-05  7:59               ` Johannes Berg
2010-10-05 19:36                 ` Luis R. Rodriguez
2010-10-05 19:43                   ` Johannes Berg
2010-10-01 20:33 ` [PATCH v2 3/3] mac80211: move to the home channel for disassociation when roaming Luis R. Rodriguez
2010-10-04 13:15   ` Johannes Berg
2010-10-04 16:38     ` Luis R. Rodriguez
2010-10-04 16:41       ` Johannes Berg
2010-10-04 17:23         ` Luis R. Rodriguez
2010-10-04 18:39           ` Johannes Berg
2010-10-04 21:03             ` Luis R. Rodriguez
2010-10-01 20:50 ` Luis R. Rodriguez [this message]
2010-10-04 13:27 ` [PATCH v2 0/3] mac80211: fix rate_control_send_low warnings for delbas Johannes Berg
2010-10-04 16:41   ` Luis R. Rodriguez
2010-10-04 16:42     ` Johannes Berg
2010-10-04 17:25       ` Luis R. Rodriguez
2010-10-04 17:30         ` Johannes Berg
2010-10-04 17:35           ` Luis R. Rodriguez
2010-10-04 18:39             ` Johannes Berg
2010-10-04 20:39             ` Jouni Malinen
2010-10-04 21:07               ` Luis R. Rodriguez
2010-10-04 22:47                 ` Jouni Malinen
2010-10-04 23:50                   ` Luis R. Rodriguez
2010-10-05  7:57                     ` Johannes Berg
2010-10-05 17:03                       ` Luis R. Rodriguez

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=20101001205059.GA10343@tux \
    --to=lrodriguez@atheros.com \
    --cc=Amod.Bodas@Atheros.com \
    --cc=Luis.Rodriguez@Atheros.com \
    --cc=Vasanth.Thiagarajan@Atheros.com \
    --cc=j@w1.fi \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=pstew@google.com \
    --cc=stable@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).