Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Mar 2012 20:24:37 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        freebsd-wireless@freebsd.org, Bernhard Schmidt <bschmidt@freebsd.org>
Subject:   [net80211] PR kern/166286: force a channel change upon a HT info change
Message-ID:  <CAJ-Vmonr7y4f23L_gNfcOjiQHVs5xK-NQC72VH%2B6b%2B-9zorRSw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--e89a8ff1c8d4cdc8e604bbb85425
Content-Type: text/plain; charset=ISO-8859-1

Hi,

This patch forces a channel change - sta_recv_mgmt() doesn't set the
channel width early enough to catch it after the ASSOC -> RUN state
change. So there's a transition to HT20 upon association, but it
doesn't transition to HT40 via ic_chan_set(). Thus the hardware is in
HT20 mode, but HT40 frames are sent to the hardware .They obviously
fail.

This shows up when associating to an open HT40 AP. Since bgscan is
disabled, there's no subsequent scan to force an ath_chan_set() with
the updated flags. I'm not sure why (yet) it hasn't shown up in other
scenarios.

Bernhard - would you mind commenting on this? You were the last of us
knee-deep in ieee80211_ht.c and the net80211 management path.

Thanks!


Adrian

--e89a8ff1c8d4cdc8e604bbb85425
Content-Type: text/x-patch; charset=US-ASCII; 
	name="net80211-force-curchan-on-ht-change-pr-166286.diff"
Content-Disposition: attachment; 
	filename="net80211-force-curchan-on-ht-change-pr-166286.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h01t8f5f0

SW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHQuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0
ODAyMTEvaWVlZTgwMjExX2h0LmMJKHJldmlzaW9uIDIzMzI1NCkKKysrIHN5cy9uZXQ4MDIxMS9p
ZWVlODAyMTFfaHQuYwkod29ya2luZyBjb3B5KQpAQCAtMTQyOCwxMiArMTQyOCwxMyBAQAogICog
cmVxdWlyZWQgY2hhbm5lbCBjaGFuZ2UgaXMgZG9uZSAoZS5nLiBpbiBzdGEgbW9kZSB3aGVuCiAg
KiBwYXJzaW5nIHRoZSBjb250ZW50cyBvZiBhIGJlYWNvbiBmcmFtZSkuCiAgKi8KLXN0YXRpYyB2
b2lkCitzdGF0aWMgaW50CiBodGluZm9fdXBkYXRlX2NodyhzdHJ1Y3QgaWVlZTgwMjExX25vZGUg
Km5pLCBpbnQgaHRmbGFncykKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExY29tICppYyA9IG5pLT5uaV9p
YzsKIAlzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmM7CiAJaW50IGNoYW5mbGFnczsKKwlpbnQg
cmV0ID0gMDsKIAogCWNoYW5mbGFncyA9IChuaS0+bmlfY2hhbi0+aWNfZmxhZ3MgJn4gSUVFRTgw
MjExX0NIQU5fSFQpIHwgaHRmbGFnczsKIAlpZiAoY2hhbmZsYWdzICE9IG5pLT5uaV9jaGFuLT5p
Y19mbGFncykgewpAQCAtMTQ2MCwxMSArMTQ2MSwxMyBAQAogCQkJICAgIElFRUU4MDIxMV9JU19D
SEFOX0hUNDAoYykgPyA0MCA6IDIwLAogCQkJICAgIGMtPmljX2ZyZXEsIGMtPmljX2ZsYWdzKTsK
IAkJCW5pLT5uaV9jaGFuID0gYzsKKwkJCXJldCA9IDE7CiAJCX0KIAkJLyogTkI6IGNhbGxlciBy
ZXNwb25zaWJsZSBmb3IgZm9yY2luZyBhbnkgY2hhbm5lbCBjaGFuZ2UgKi8KIAl9CiAJLyogdXBk
YXRlIG5vZGUncyB0eCBjaGFubmVsIHdpZHRoICovCiAJbmktPm5pX2NodyA9IElFRUU4MDIxMV9J
U19DSEFOX0hUNDAobmktPm5pX2NoYW4pPyA0MCA6IDIwOworCXJldHVybiAocmV0KTsKIH0KIAog
LyoKQEAgLTE1MTUsMTMgKzE1MTgsMTQgQEAKICAqIFBhcnNlIGFuZCB1cGRhdGUgSFQtcmVsYXRl
ZCBzdGF0ZSBleHRyYWN0ZWQgZnJvbQogICogdGhlIEhUIGNhcCBhbmQgaW5mbyBpZSdzLgogICov
Ci12b2lkCitpbnQKIGllZWU4MDIxMV9odF91cGRhdGVwYXJhbXMoc3RydWN0IGllZWU4MDIxMV9u
b2RlICpuaSwKIAljb25zdCB1aW50OF90ICpodGNhcGllLCBjb25zdCB1aW50OF90ICpodGluZm9p
ZSkKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAgPSBuaS0+bmlfdmFwOwogCWNvbnN0IHN0
cnVjdCBpZWVlODAyMTFfaWVfaHRpbmZvICpodGluZm87CiAJaW50IGh0ZmxhZ3M7CisJaW50IHJl
dCA9IDA7CiAKIAlpZWVlODAyMTFfcGFyc2VfaHRjYXAobmksIGh0Y2FwaWUpOwogCWlmICh2YXAt
Pml2X2h0Y2FwcyAmIElFRUU4MDIxMV9IVENBUF9TTVBTKQpAQCAtMTU0MywxMyArMTU0NywxNiBA
QAogCQllbHNlIGlmIChuaS0+bmlfaHQybmRjaGFuID09IElFRUU4MDIxMV9IVElORk9fMk5EQ0hB
Tl9CRUxPVykKIAkJCWh0ZmxhZ3MgPSBJRUVFODAyMTFfQ0hBTl9IVDQwRDsKIAl9Ci0JaHRpbmZv
X3VwZGF0ZV9jaHcobmksIGh0ZmxhZ3MpOworCWlmIChodGluZm9fdXBkYXRlX2NodyhuaSwgaHRm
bGFncykpCisJCXJldCA9IDE7CiAKIAlpZiAoKGh0aW5mby0+aGlfYnl0ZTEgJiBJRUVFODAyMTFf
SFRJTkZPX1JJRlNNT0RFX1BFUk0pICYmCiAJICAgICh2YXAtPml2X2ZsYWdzX2h0ICYgSUVFRTgw
MjExX0ZIVF9SSUZTKSkKIAkJbmktPm5pX2ZsYWdzIHw9IElFRUU4MDIxMV9OT0RFX1JJRlM7CiAJ
ZWxzZQogCQluaS0+bmlfZmxhZ3MgJj0gfklFRUU4MDIxMV9OT0RFX1JJRlM7CisKKwlyZXR1cm4g
KHJldCk7CiB9CiAKIC8qCkBAIC0xNTc4LDcgKzE1ODUsNyBAQAogCQllbHNlIGlmIChJRUVFODAy
MTFfSVNfQ0hBTl9IVDQwRCh2YXAtPml2X2Jzcy0+bmlfY2hhbikpCiAJCQlodGZsYWdzID0gSUVF
RTgwMjExX0NIQU5fSFQ0MEQ7CiAJfQotCWh0aW5mb191cGRhdGVfY2h3KG5pLCBodGZsYWdzKTsK
Kwkodm9pZCkgaHRpbmZvX3VwZGF0ZV9jaHcobmksIGh0ZmxhZ3MpOwogfQogCiAvKgpJbmRleDog
c3lzL25ldDgwMjExL2llZWU4MDIxMV9odC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9uZXQ4MDIxMS9p
ZWVlODAyMTFfaHQuaAkocmV2aXNpb24gMjMzMjU0KQorKysgc3lzL25ldDgwMjExL2llZWU4MDIx
MV9odC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNyArMTg0LDcgQEAKIHZvaWQJaWVlZTgwMjEx
X2h0X3RpbWVvdXQoc3RydWN0IGllZWU4MDIxMWNvbSAqKTsKIHZvaWQJaWVlZTgwMjExX3BhcnNl
X2h0Y2FwKHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqLCBjb25zdCB1aW50OF90ICopOwogdm9pZAlp
ZWVlODAyMTFfcGFyc2VfaHRpbmZvKHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqLCBjb25zdCB1aW50
OF90ICopOwotdm9pZAlpZWVlODAyMTFfaHRfdXBkYXRlcGFyYW1zKHN0cnVjdCBpZWVlODAyMTFf
bm9kZSAqLCBjb25zdCB1aW50OF90ICosCitpbnQJaWVlZTgwMjExX2h0X3VwZGF0ZXBhcmFtcyhz
dHJ1Y3QgaWVlZTgwMjExX25vZGUgKiwgY29uc3QgdWludDhfdCAqLAogCQljb25zdCB1aW50OF90
ICopOwogdm9pZAlpZWVlODAyMTFfaHRfdXBkYXRlaHRjYXAoc3RydWN0IGllZWU4MDIxMV9ub2Rl
ICosIGNvbnN0IHVpbnQ4X3QgKik7CiBpbnQJaWVlZTgwMjExX2FtcGR1X3JlcXVlc3Qoc3RydWN0
IGllZWU4MDIxMV9ub2RlICosCkluZGV4OiBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX3N0YS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfc3RhLmMJKHJldmlzaW9uIDIzMzI1
NCkKKysrIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfc3RhLmMJKHdvcmtpbmcgY29weSkKQEAgLTEy
ODUsNiArMTI4NSw3IEBACiAJdWludDhfdCAqZnJtLCAqZWZybTsKIAl1aW50OF90ICpyYXRlcywg
KnhyYXRlcywgKndtZSwgKmh0Y2FwLCAqaHRpbmZvOwogCXVpbnQ4X3QgcmF0ZTsKKwlpbnQgY2hh
bl9jaGFuZ2UgPSAwOwogCiAJd2ggPSBtdG9kKG0wLCBzdHJ1Y3QgaWVlZTgwMjExX2ZyYW1lICop
OwogCWZybSA9ICh1aW50OF90ICopJndoWzFdOwpAQCAtMTM3Miw4ICsxMzczLDkgQEAKICNlbmRp
ZgogCQkJaWYgKHNjYW4uaHRjYXAgIT0gTlVMTCAmJiBzY2FuLmh0aW5mbyAhPSBOVUxMICYmCiAJ
CQkgICAgKHZhcC0+aXZfZmxhZ3NfaHQgJiBJRUVFODAyMTFfRkhUX0hUKSkgewotCQkJCWllZWU4
MDIxMV9odF91cGRhdGVwYXJhbXMobmksCi0JCQkJICAgIHNjYW4uaHRjYXAsIHNjYW4uaHRpbmZv
KTsKKwkJCQlpZiAoaWVlZTgwMjExX2h0X3VwZGF0ZXBhcmFtcyhuaSwKKwkJCQkgICAgc2Nhbi5o
dGNhcCwgc2Nhbi5odGluZm8pKQorCQkJCQljaGFuX2NoYW5nZSA9IDE7CiAJCQkJLyogWFhYIHN0
YXRlIGNoYW5nZXM/ICovCiAJCQl9CiAJCQlpZiAoc2Nhbi5xdWlldCkKQEAgLTE0NDEsNiArMTQ0
MywxMyBAQAogI2VuZGlmCiAJCQkJaWVlZTgwMjExX2JnX3NjYW4odmFwLCAwKTsKIAkJCX0KKwor
CQkJLyoKKwkJCSAqIElmIHdlJ3ZlIGhhZCBhIHN0YXRlIGNoYW5nZSAoZWcgSFQyMDwtPkhUNDAp
CisJCQkgKiB0aGVuIHJlc2V0IHRoZSBvcGVyYXRpbmcgY2hhbm5lbC4KKwkJCSAqLworCQkJaWYg
KGNoYW5fY2hhbmdlKQorCQkJCWllZWU4MDIxMV9zZXRjdXJjaGFuKGljLCBpYy0+aWNfY3VyY2hh
bik7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyoK
--e89a8ff1c8d4cdc8e604bbb85425--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmonr7y4f23L_gNfcOjiQHVs5xK-NQC72VH%2B6b%2B-9zorRSw>