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.
next prev 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).