* [PATCH] cfg80211: sme: deauthenticate on assoc failure
@ 2009-10-20 6:08 Johannes Berg
2009-10-20 6:24 ` Luis R. Rodriguez
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Johannes Berg @ 2009-10-20 6:08 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, Luis R. Rodriguez
When the in-kernel SME gets an association failure from
the AP we don't deauthenticate, and thus get into a very
confused state which will lead to warnings later on. Fix
this by actually deauthenticating when the AP indicates
an association failure.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
net/wireless/core.h | 1 +
net/wireless/mlme.c | 9 +++++++++
net/wireless/sme.c | 21 +++++++++++++++++++--
3 files changed, 29 insertions(+), 2 deletions(-)
--- wireless-testing.orig/net/wireless/core.h 2009-10-20 15:02:15.000000000 +0900
+++ wireless-testing/net/wireless/core.h 2009-10-20 15:03:20.000000000 +0900
@@ -358,6 +358,7 @@ int cfg80211_mgd_wext_connect(struct cfg
struct wireless_dev *wdev);
void cfg80211_conn_work(struct work_struct *work);
+void cfg80211_sme_failed_assoc(struct wireless_dev *wdev);
bool cfg80211_sme_failed_reassoc(struct wireless_dev *wdev);
/* internal helpers */
--- wireless-testing.orig/net/wireless/mlme.c 2009-10-20 15:02:15.000000000 +0900
+++ wireless-testing/net/wireless/mlme.c 2009-10-20 15:03:20.000000000 +0900
@@ -62,6 +62,7 @@ void cfg80211_send_rx_assoc(struct net_d
u8 *ie = mgmt->u.assoc_resp.variable;
int i, ieoffs = offsetof(struct ieee80211_mgmt, u.assoc_resp.variable);
struct cfg80211_internal_bss *bss = NULL;
+ bool need_connect_result = true;
wdev_lock(wdev);
@@ -94,6 +95,14 @@ void cfg80211_send_rx_assoc(struct net_d
}
WARN_ON(!bss);
+ } else if (wdev->conn) {
+ cfg80211_sme_failed_assoc(wdev);
+ need_connect_result = false;
+ /*
+ * do not call connect_result() now because the
+ * sme will schedule work that does it later.
+ */
+ goto out;
}
if (!wdev->conn && wdev->sme_state == CFG80211_SME_IDLE) {
--- wireless-testing.orig/net/wireless/sme.c 2009-10-20 15:02:15.000000000 +0900
+++ wireless-testing/net/wireless/sme.c 2009-10-20 15:03:20.000000000 +0900
@@ -26,6 +26,7 @@ struct cfg80211_conn {
CFG80211_CONN_AUTHENTICATING,
CFG80211_CONN_ASSOCIATE_NEXT,
CFG80211_CONN_ASSOCIATING,
+ CFG80211_CONN_DEAUTH_ASSOC_FAIL,
} state;
u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN];
u8 *ie;
@@ -148,6 +149,12 @@ static int cfg80211_conn_do_work(struct
NULL, 0,
WLAN_REASON_DEAUTH_LEAVING);
return err;
+ case CFG80211_CONN_DEAUTH_ASSOC_FAIL:
+ __cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid,
+ NULL, 0,
+ WLAN_REASON_DEAUTH_LEAVING);
+ /* return an error so that we call __cfg80211_connect_result() */
+ return -EINVAL;
default:
return 0;
}
@@ -158,6 +165,7 @@ void cfg80211_conn_work(struct work_stru
struct cfg80211_registered_device *rdev =
container_of(work, struct cfg80211_registered_device, conn_work);
struct wireless_dev *wdev;
+ u8 bssid[ETH_ALEN];
rtnl_lock();
cfg80211_lock_rdev(rdev);
@@ -173,10 +181,10 @@ void cfg80211_conn_work(struct work_stru
wdev_unlock(wdev);
continue;
}
+ memcpy(bssid, wdev->conn->params.bssid, ETH_ALEN);
if (cfg80211_conn_do_work(wdev))
__cfg80211_connect_result(
- wdev->netdev,
- wdev->conn->params.bssid,
+ wdev->netdev, bssid,
NULL, 0, NULL, 0,
WLAN_STATUS_UNSPECIFIED_FAILURE,
false, NULL);
@@ -337,6 +345,15 @@ bool cfg80211_sme_failed_reassoc(struct
return true;
}
+void cfg80211_sme_failed_assoc(struct wireless_dev *wdev)
+{
+ struct wiphy *wiphy = wdev->wiphy;
+ struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);
+
+ wdev->conn->state = CFG80211_CONN_DEAUTH_ASSOC_FAIL;
+ schedule_work(&rdev->conn_work);
+}
+
void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
const u8 *req_ie, size_t req_ie_len,
const u8 *resp_ie, size_t resp_ie_len,
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 6:08 [PATCH] cfg80211: sme: deauthenticate on assoc failure Johannes Berg @ 2009-10-20 6:24 ` Luis R. Rodriguez 2009-10-20 6:26 ` Johannes Berg 2009-10-20 7:33 ` Sedat Dilek 2009-10-23 4:07 ` Jouni Malinen 2 siblings, 1 reply; 9+ messages in thread From: Luis R. Rodriguez @ 2009-10-20 6:24 UTC (permalink / raw) To: Johannes Berg; +Cc: John Linville, linux-wireless On Tue, Oct 20, 2009 at 3:08 PM, Johannes Berg <johannes@sipsolutions.net> wrote: > When the in-kernel SME gets an association failure from > the AP we don't deauthenticate, and thus get into a very > confused state which will lead to warnings later on. Fix > this by actually deauthenticating when the AP indicates > an association failure. > > Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Thanks Johannes. Tested-by: Luis R. Rodriguez <lrodriguez@atheros.com> John -- this patch and the previous patch titled "mac80211: keep auth state when assoc fails" fix the SME warning as well. These are also 2.6.32-rc fixes. Luis ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 6:24 ` Luis R. Rodriguez @ 2009-10-20 6:26 ` Johannes Berg 0 siblings, 0 replies; 9+ messages in thread From: Johannes Berg @ 2009-10-20 6:26 UTC (permalink / raw) To: Luis R. Rodriguez; +Cc: John Linville, linux-wireless [-- Attachment #1: Type: text/plain, Size: 807 bytes --] On Tue, 2009-10-20 at 15:24 +0900, Luis R. Rodriguez wrote: > On Tue, Oct 20, 2009 at 3:08 PM, Johannes Berg > <johannes@sipsolutions.net> wrote: > > When the in-kernel SME gets an association failure from > > the AP we don't deauthenticate, and thus get into a very > > confused state which will lead to warnings later on. Fix > > this by actually deauthenticating when the AP indicates > > an association failure. > > > > Signed-off-by: Johannes Berg <johannes@sipsolutions.net> > > Thanks Johannes. > > Tested-by: Luis R. Rodriguez <lrodriguez@atheros.com> > > John -- this patch and the previous patch titled "mac80211: keep auth > state when assoc fails" fix the SME warning as well. These are also > 2.6.32-rc fixes. And also done during the hacking session at KS. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 801 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 6:08 [PATCH] cfg80211: sme: deauthenticate on assoc failure Johannes Berg 2009-10-20 6:24 ` Luis R. Rodriguez @ 2009-10-20 7:33 ` Sedat Dilek 2009-10-20 7:41 ` Sedat Dilek 2009-10-20 7:46 ` Sedat Dilek 2009-10-23 4:07 ` Jouni Malinen 2 siblings, 2 replies; 9+ messages in thread From: Sedat Dilek @ 2009-10-20 7:33 UTC (permalink / raw) To: Johannes Berg; +Cc: John Linville, linux-wireless, Luis R. Rodriguez SXMgdGhpcyBwYXRjaCBvbiB0b3Agb2Ygd2lyZWxlc3MtdGVzdGluZyAobWFzdGVyLTIwMDktMTAt MTYpPwoKSXQgZmFpbHMgaGVyZToKLi4uCkFwcGx5aW5nIHBhdGNoIGxpbnV4LXdpcmVsZXNzL21h YzgwMjExLWtlZXAtYXV0aC1zdGF0ZS13aGVuLWFzc29jLWZhaWxzLnBhdGNoCnBhdGNoaW5nIGZp bGUgbmV0L21hYzgwMjExL21sbWUuYwpIdW5rICMxIEZBSUxFRCBhdCAxNDU3LgoxIG91dCBvZiAx IGh1bmsgRkFJTEVEIC0tIHJlamVjdHMgaW4gZmlsZSBuZXQvbWFjODAyMTEvbWxtZS5jClBhdGNo IGxpbnV4LXdpcmVsZXNzL21hYzgwMjExLWtlZXAtYXV0aC1zdGF0ZS13aGVuLWFzc29jLWZhaWxz LnBhdGNoCmRvZXMgbm90IGFwcGx5IChlbmZvcmNlIHdpdGggLWYpCkVSUk9SOiBmYWlsZWQgdG8g YXBwbHkgcGF0Y2ggc2VyaWVzIQoKRG9lcyBpdCBuZWVkIHRvIHJldmVydCAibWFjODAyMTE6IGZp eCBTTUUgd2FybmluZyBieSByZW1vdmluZyBzdGFsZQpCU1MgdXBvbiBhc3NvYyBmYWlsdXJlIj8K Ci0gU2VkYXQgLQoKT24gVHVlLCBPY3QgMjAsIDIwMDkgYXQgODowOCBBTSwgSm9oYW5uZXMgQmVy Zwo8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4gd3JvdGU6Cj4gV2hlbiB0aGUgaW4ta2VybmVs IFNNRSBnZXRzIGFuIGFzc29jaWF0aW9uIGZhaWx1cmUgZnJvbQo+IHRoZSBBUCB3ZSBkb24ndCBk ZWF1dGhlbnRpY2F0ZSwgYW5kIHRodXMgZ2V0IGludG8gYSB2ZXJ5Cj4gY29uZnVzZWQgc3RhdGUg d2hpY2ggd2lsbCBsZWFkIHRvIHdhcm5pbmdzIGxhdGVyIG9uLiBGaXgKPiB0aGlzIGJ5IGFjdHVh bGx5IGRlYXV0aGVudGljYXRpbmcgd2hlbiB0aGUgQVAgaW5kaWNhdGVzCj4gYW4gYXNzb2NpYXRp b24gZmFpbHVyZS4KPgo+IFNpZ25lZC1vZmYtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzQHNp cHNvbHV0aW9ucy5uZXQ+Cj4gLS0tCj4gwqBuZXQvd2lyZWxlc3MvY29yZS5oIHwgwqAgwqAxICsK PiDCoG5ldC93aXJlbGVzcy9tbG1lLmMgfCDCoCDCoDkgKysrKysrKysrCj4gwqBuZXQvd2lyZWxl c3Mvc21lLmMgwqB8IMKgIDIxICsrKysrKysrKysrKysrKysrKystLQo+IMKgMyBmaWxlcyBjaGFu Z2VkLCAyOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gLS0tIHdpcmVsZXNzLXRl c3Rpbmcub3JpZy9uZXQvd2lyZWxlc3MvY29yZS5oIMKgIDIwMDktMTAtMjAgMTU6MDI6MTUuMDAw MDAwMDAwICswOTAwCj4gKysrIHdpcmVsZXNzLXRlc3RpbmcvbmV0L3dpcmVsZXNzL2NvcmUuaCDC oCDCoCDCoCDCoDIwMDktMTAtMjAgMTU6MDM6MjAuMDAwMDAwMDAwICswOTAwCj4gQEAgLTM1OCw2 ICszNTgsNyBAQCBpbnQgY2ZnODAyMTFfbWdkX3dleHRfY29ubmVjdChzdHJ1Y3QgY2ZnCj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzdHJ1Y3Qgd2lyZWxlc3Nf ZGV2ICp3ZGV2KTsKPgo+IMKgdm9pZCBjZmc4MDIxMV9jb25uX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKTsKPiArdm9pZCBjZmc4MDIxMV9zbWVfZmFpbGVkX2Fzc29jKHN0cnVjdCB3aXJl bGVzc19kZXYgKndkZXYpOwo+IMKgYm9vbCBjZmc4MDIxMV9zbWVfZmFpbGVkX3JlYXNzb2Moc3Ry dWN0IHdpcmVsZXNzX2RldiAqd2Rldik7Cj4KPiDCoC8qIGludGVybmFsIGhlbHBlcnMgKi8KPiAt LS0gd2lyZWxlc3MtdGVzdGluZy5vcmlnL25ldC93aXJlbGVzcy9tbG1lLmMgwqAgMjAwOS0xMC0y MCAxNTowMjoxNS4wMDAwMDAwMDAgKzA5MDAKPiArKysgd2lyZWxlc3MtdGVzdGluZy9uZXQvd2ly ZWxlc3MvbWxtZS5jIMKgIMKgIMKgIMKgMjAwOS0xMC0yMCAxNTowMzoyMC4wMDAwMDAwMDAgKzA5 MDAKPiBAQCAtNjIsNiArNjIsNyBAQCB2b2lkIGNmZzgwMjExX3NlbmRfcnhfYXNzb2Moc3RydWN0 IG5ldF9kCj4gwqAgwqAgwqAgwqB1OCAqaWUgPSBtZ210LT51LmFzc29jX3Jlc3AudmFyaWFibGU7 Cj4gwqAgwqAgwqAgwqBpbnQgaSwgaWVvZmZzID0gb2Zmc2V0b2Yoc3RydWN0IGllZWU4MDIxMV9t Z210LCB1LmFzc29jX3Jlc3AudmFyaWFibGUpOwo+IMKgIMKgIMKgIMKgc3RydWN0IGNmZzgwMjEx X2ludGVybmFsX2JzcyAqYnNzID0gTlVMTDsKPiArIMKgIMKgIMKgIGJvb2wgbmVlZF9jb25uZWN0 X3Jlc3VsdCA9IHRydWU7Cj4KPiDCoCDCoCDCoCDCoHdkZXZfbG9jayh3ZGV2KTsKPgo+IEBAIC05 NCw2ICs5NSwxNCBAQCB2b2lkIGNmZzgwMjExX3NlbmRfcnhfYXNzb2Moc3RydWN0IG5ldF9kCj4g wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4KPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFdBUk5f T04oIWJzcyk7Cj4gKyDCoCDCoCDCoCB9IGVsc2UgaWYgKHdkZXYtPmNvbm4pIHsKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIGNmZzgwMjExX3NtZV9mYWlsZWRfYXNzb2Mod2Rldik7Cj4gKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCBuZWVkX2Nvbm5lY3RfcmVzdWx0ID0gZmFsc2U7Cj4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCAvKgo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAqIGRvIG5vdCBjYWxs IGNvbm5lY3RfcmVzdWx0KCkgbm93IGJlY2F1c2UgdGhlCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCogc21lIHdpbGwgc2NoZWR1bGUgd29yayB0aGF0IGRvZXMgaXQgbGF0ZXIuCj4gKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBnb3RvIG91dDsK PiDCoCDCoCDCoCDCoH0KPgo+IMKgIMKgIMKgIMKgaWYgKCF3ZGV2LT5jb25uICYmIHdkZXYtPnNt ZV9zdGF0ZSA9PSBDRkc4MDIxMV9TTUVfSURMRSkgewo+IC0tLSB3aXJlbGVzcy10ZXN0aW5nLm9y aWcvbmV0L3dpcmVsZXNzL3NtZS5jIMKgIMKgMjAwOS0xMC0yMCAxNTowMjoxNS4wMDAwMDAwMDAg KzA5MDAKPiArKysgd2lyZWxlc3MtdGVzdGluZy9uZXQvd2lyZWxlc3Mvc21lLmMgMjAwOS0xMC0y MCAxNTowMzoyMC4wMDAwMDAwMDAgKzA5MDAKPiBAQCAtMjYsNiArMjYsNyBAQCBzdHJ1Y3QgY2Zn ODAyMTFfY29ubiB7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBDRkc4MDIxMV9DT05OX0FVVEhF TlRJQ0FUSU5HLAo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQ0ZHODAyMTFfQ09OTl9BU1NPQ0lB VEVfTkVYVCwKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoENGRzgwMjExX0NPTk5fQVNTT0NJQVRJ TkcsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBDRkc4MDIxMV9DT05OX0RFQVVUSF9BU1NPQ19G QUlMLAo+IMKgIMKgIMKgIMKgfSBzdGF0ZTsKPiDCoCDCoCDCoCDCoHU4IGJzc2lkW0VUSF9BTEVO XSwgcHJldl9ic3NpZFtFVEhfQUxFTl07Cj4gwqAgwqAgwqAgwqB1OCAqaWU7Cj4gQEAgLTE0OCw2 ICsxNDksMTIgQEAgc3RhdGljIGludCBjZmc4MDIxMV9jb25uX2RvX3dvcmsoc3RydWN0Cj4gwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgTlVMTCwgMCwKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBXTEFOX1JFQVNPTl9ERUFVVEhfTEVBVklO Ryk7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gZXJyOwo+ICsgwqAgwqAgwqAgY2Fz ZSBDRkc4MDIxMV9DT05OX0RFQVVUSF9BU1NPQ19GQUlMOgo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgX19jZmc4MDIxMV9tbG1lX2RlYXV0aChyZGV2LCB3ZGV2LT5uZXRkZXYsIHBhcmFtcy0+YnNz aWQsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoE5VTEwsIDAsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoFdMQU5fUkVBU09OX0RFQVVUSF9MRUFWSU5HKTsKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIC8qIHJldHVybiBhbiBlcnJvciBzbyB0aGF0IHdlIGNhbGwgX19jZmc4 MDIxMV9jb25uZWN0X3Jlc3VsdCgpICovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXR1cm4g LUVJTlZBTDsKPiDCoCDCoCDCoCDCoGRlZmF1bHQ6Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBy ZXR1cm4gMDsKPiDCoCDCoCDCoCDCoH0KPiBAQCAtMTU4LDYgKzE2NSw3IEBAIHZvaWQgY2ZnODAy MTFfY29ubl93b3JrKHN0cnVjdCB3b3JrX3N0cnUKPiDCoCDCoCDCoCDCoHN0cnVjdCBjZmc4MDIx MV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjb250 YWluZXJfb2Yod29yaywgc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlLCBjb25uX3dv cmspOwo+IMKgIMKgIMKgIMKgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldjsKPiArIMKgIMKgIMKg IHU4IGJzc2lkW0VUSF9BTEVOXTsKPgo+IMKgIMKgIMKgIMKgcnRubF9sb2NrKCk7Cj4gwqAgwqAg wqAgwqBjZmc4MDIxMV9sb2NrX3JkZXYocmRldik7Cj4gQEAgLTE3MywxMCArMTgxLDEwIEBAIHZv aWQgY2ZnODAyMTFfY29ubl93b3JrKHN0cnVjdCB3b3JrX3N0cnUKPiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoHdkZXZfdW5sb2NrKHdkZXYpOwo+IMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgY29udGludWU7Cj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBtZW1jcHkoYnNzaWQsIHdkZXYtPmNvbm4tPnBhcmFtcy5i c3NpZCwgRVRIX0FMRU4pOwo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGNmZzgwMjExX2Nv bm5fZG9fd29yayh3ZGV2KSkKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoF9f Y2ZnODAyMTFfY29ubmVjdF9yZXN1bHQoCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB3ZGV2LT5uZXRkZXYsCj4gLSDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB3ZGV2LT5jb25u LT5wYXJhbXMuYnNzaWQsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCB3ZGV2LT5uZXRkZXYsIGJzc2lkLAo+IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgTlVMTCwgMCwgTlVM TCwgMCwKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoFdMQU5fU1RBVFVTX1VOU1BFQ0lGSUVEX0ZBSUxVUkUsCj4gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBmYWxzZSwgTlVM TCk7Cj4gQEAgLTMzNyw2ICszNDUsMTUgQEAgYm9vbCBjZmc4MDIxMV9zbWVfZmFpbGVkX3JlYXNz b2Moc3RydWN0Cj4gwqAgwqAgwqAgwqByZXR1cm4gdHJ1ZTsKPiDCoH0KPgo+ICt2b2lkIGNmZzgw MjExX3NtZV9mYWlsZWRfYXNzb2Moc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldikKPiArewo+ICsg wqAgwqAgwqAgc3RydWN0IHdpcGh5ICp3aXBoeSA9IHdkZXYtPndpcGh5Owo+ICsgwqAgwqAgwqAg c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2ID0gd2lwaHlfdG9fZGV2KHdp cGh5KTsKPiArCj4gKyDCoCDCoCDCoCB3ZGV2LT5jb25uLT5zdGF0ZSA9IENGRzgwMjExX0NPTk5f REVBVVRIX0FTU09DX0ZBSUw7Cj4gKyDCoCDCoCDCoCBzY2hlZHVsZV93b3JrKCZyZGV2LT5jb25u X3dvcmspOwo+ICt9Cj4gKwo+IMKgdm9pZCBfX2NmZzgwMjExX2Nvbm5lY3RfcmVzdWx0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHU4ICpic3NpZCwKPiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjb25zdCB1OCAqcmVxX2llLCBzaXplX3QgcmVxX2ll X2xlbiwKPiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjb25z dCB1OCAqcmVzcF9pZSwgc2l6ZV90IHJlc3BfaWVfbGVuLAo+Cj4KPiAtLQo+IFRvIHVuc3Vic2Ny aWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC13aXJl bGVzcyIgaW4KPiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVs Lm9yZwo+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgwqBodHRwOi8vdmdlci5rZXJuZWwub3JnL21h am9yZG9tby1pbmZvLmh0bWwKPgo= ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 7:33 ` Sedat Dilek @ 2009-10-20 7:41 ` Sedat Dilek 2009-10-20 7:46 ` Sedat Dilek 1 sibling, 0 replies; 9+ messages in thread From: Sedat Dilek @ 2009-10-20 7:41 UTC (permalink / raw) To: Johannes Berg; +Cc: John Linville, linux-wireless, Luis R. Rodriguez [-- Attachment #1: Type: text/plain, Size: 6566 bytes --] YUPP. - Sedat - On Tue, Oct 20, 2009 at 9:33 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > Is this patch on top of wireless-testing (master-2009-10-16)? > > It fails here: > ... > Applying patch linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch > patching file net/mac80211/mlme.c > Hunk #1 FAILED at 1457. > 1 out of 1 hunk FAILED -- rejects in file net/mac80211/mlme.c > Patch linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch > does not apply (enforce with -f) > ERROR: failed to apply patch series! > > Does it need to revert "mac80211: fix SME warning by removing stale > BSS upon assoc failure"? > > - Sedat - > > On Tue, Oct 20, 2009 at 8:08 AM, Johannes Berg > <johannes@sipsolutions.net> wrote: >> When the in-kernel SME gets an association failure from >> the AP we don't deauthenticate, and thus get into a very >> confused state which will lead to warnings later on. Fix >> this by actually deauthenticating when the AP indicates >> an association failure. >> >> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> >> --- >> net/wireless/core.h | 1 + >> net/wireless/mlme.c | 9 +++++++++ >> net/wireless/sme.c | 21 +++++++++++++++++++-- >> 3 files changed, 29 insertions(+), 2 deletions(-) >> >> --- wireless-testing.orig/net/wireless/core.h 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/core.h 2009-10-20 15:03:20.000000000 +0900 >> @@ -358,6 +358,7 @@ int cfg80211_mgd_wext_connect(struct cfg >> struct wireless_dev *wdev); >> >> void cfg80211_conn_work(struct work_struct *work); >> +void cfg80211_sme_failed_assoc(struct wireless_dev *wdev); >> bool cfg80211_sme_failed_reassoc(struct wireless_dev *wdev); >> >> /* internal helpers */ >> --- wireless-testing.orig/net/wireless/mlme.c 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/mlme.c 2009-10-20 15:03:20.000000000 +0900 >> @@ -62,6 +62,7 @@ void cfg80211_send_rx_assoc(struct net_d >> u8 *ie = mgmt->u.assoc_resp.variable; >> int i, ieoffs = offsetof(struct ieee80211_mgmt, u.assoc_resp.variable); >> struct cfg80211_internal_bss *bss = NULL; >> + bool need_connect_result = true; >> >> wdev_lock(wdev); >> >> @@ -94,6 +95,14 @@ void cfg80211_send_rx_assoc(struct net_d >> } >> >> WARN_ON(!bss); >> + } else if (wdev->conn) { >> + cfg80211_sme_failed_assoc(wdev); >> + need_connect_result = false; >> + /* >> + * do not call connect_result() now because the >> + * sme will schedule work that does it later. >> + */ >> + goto out; >> } >> >> if (!wdev->conn && wdev->sme_state == CFG80211_SME_IDLE) { >> --- wireless-testing.orig/net/wireless/sme.c 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/sme.c 2009-10-20 15:03:20.000000000 +0900 >> @@ -26,6 +26,7 @@ struct cfg80211_conn { >> CFG80211_CONN_AUTHENTICATING, >> CFG80211_CONN_ASSOCIATE_NEXT, >> CFG80211_CONN_ASSOCIATING, >> + CFG80211_CONN_DEAUTH_ASSOC_FAIL, >> } state; >> u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN]; >> u8 *ie; >> @@ -148,6 +149,12 @@ static int cfg80211_conn_do_work(struct >> NULL, 0, >> WLAN_REASON_DEAUTH_LEAVING); >> return err; >> + case CFG80211_CONN_DEAUTH_ASSOC_FAIL: >> + __cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid, >> + NULL, 0, >> + WLAN_REASON_DEAUTH_LEAVING); >> + /* return an error so that we call __cfg80211_connect_result() */ >> + return -EINVAL; >> default: >> return 0; >> } >> @@ -158,6 +165,7 @@ void cfg80211_conn_work(struct work_stru >> struct cfg80211_registered_device *rdev = >> container_of(work, struct cfg80211_registered_device, conn_work); >> struct wireless_dev *wdev; >> + u8 bssid[ETH_ALEN]; >> >> rtnl_lock(); >> cfg80211_lock_rdev(rdev); >> @@ -173,10 +181,10 @@ void cfg80211_conn_work(struct work_stru >> wdev_unlock(wdev); >> continue; >> } >> + memcpy(bssid, wdev->conn->params.bssid, ETH_ALEN); >> if (cfg80211_conn_do_work(wdev)) >> __cfg80211_connect_result( >> - wdev->netdev, >> - wdev->conn->params.bssid, >> + wdev->netdev, bssid, >> NULL, 0, NULL, 0, >> WLAN_STATUS_UNSPECIFIED_FAILURE, >> false, NULL); >> @@ -337,6 +345,15 @@ bool cfg80211_sme_failed_reassoc(struct >> return true; >> } >> >> +void cfg80211_sme_failed_assoc(struct wireless_dev *wdev) >> +{ >> + struct wiphy *wiphy = wdev->wiphy; >> + struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); >> + >> + wdev->conn->state = CFG80211_CONN_DEAUTH_ASSOC_FAIL; >> + schedule_work(&rdev->conn_work); >> +} >> + >> void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, >> const u8 *req_ie, size_t req_ie_len, >> const u8 *resp_ie, size_t resp_ie_len, >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > [-- Attachment #2: 0001-Revert-mac80211-fix-SME-warning-by-removing-stale-BS.patch --] [-- Type: text/x-diff, Size: 844 bytes --] From f13a19c1865355cb62ae730538c979ecf0653c2a Mon Sep 17 00:00:00 2001 From: Sedat Dilek <sedat.dilek@gmail.com> Date: Tue, 20 Oct 2009 09:39:36 +0200 Subject: [PATCH] Revert "mac80211: fix SME warning by removing stale BSS upon assoc failure" This reverts commit 73984d9660a569336854657fb4adae38c1673177. --- net/mac80211/mlme.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 697a149..71220a5 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1465,7 +1465,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, sdata->dev->name, status_code); list_del(&wk->list); kfree(wk); - return RX_MGMT_CFG80211_DEAUTH; + return RX_MGMT_CFG80211_ASSOC; } if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14))) -- 1.6.3.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 7:33 ` Sedat Dilek 2009-10-20 7:41 ` Sedat Dilek @ 2009-10-20 7:46 ` Sedat Dilek 2009-10-20 7:49 ` Luis R. Rodriguez 1 sibling, 1 reply; 9+ messages in thread From: Sedat Dilek @ 2009-10-20 7:46 UTC (permalink / raw) To: Johannes Berg; +Cc: John Linville, linux-wireless, Luis R. Rodriguez To clarify on the patchset and order: [quilt series]: # patches from linux-wireless ML linux-wireless/0001-Revert-mac80211-fix-SME-warning-by-removing-stale-BS.patch linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch linux-wireless/cfg80211-sme-deauthenticate-on-assoc-failure.patch - Sedat - On Tue, Oct 20, 2009 at 9:33 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > Is this patch on top of wireless-testing (master-2009-10-16)? > > It fails here: > ... > Applying patch linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch > patching file net/mac80211/mlme.c > Hunk #1 FAILED at 1457. > 1 out of 1 hunk FAILED -- rejects in file net/mac80211/mlme.c > Patch linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch > does not apply (enforce with -f) > ERROR: failed to apply patch series! > > Does it need to revert "mac80211: fix SME warning by removing stale > BSS upon assoc failure"? > > - Sedat - > > On Tue, Oct 20, 2009 at 8:08 AM, Johannes Berg > <johannes@sipsolutions.net> wrote: >> When the in-kernel SME gets an association failure from >> the AP we don't deauthenticate, and thus get into a very >> confused state which will lead to warnings later on. Fix >> this by actually deauthenticating when the AP indicates >> an association failure. >> >> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> >> --- >> net/wireless/core.h | 1 + >> net/wireless/mlme.c | 9 +++++++++ >> net/wireless/sme.c | 21 +++++++++++++++++++-- >> 3 files changed, 29 insertions(+), 2 deletions(-) >> >> --- wireless-testing.orig/net/wireless/core.h 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/core.h 2009-10-20 15:03:20.000000000 +0900 >> @@ -358,6 +358,7 @@ int cfg80211_mgd_wext_connect(struct cfg >> struct wireless_dev *wdev); >> >> void cfg80211_conn_work(struct work_struct *work); >> +void cfg80211_sme_failed_assoc(struct wireless_dev *wdev); >> bool cfg80211_sme_failed_reassoc(struct wireless_dev *wdev); >> >> /* internal helpers */ >> --- wireless-testing.orig/net/wireless/mlme.c 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/mlme.c 2009-10-20 15:03:20.000000000 +0900 >> @@ -62,6 +62,7 @@ void cfg80211_send_rx_assoc(struct net_d >> u8 *ie = mgmt->u.assoc_resp.variable; >> int i, ieoffs = offsetof(struct ieee80211_mgmt, u.assoc_resp.variable); >> struct cfg80211_internal_bss *bss = NULL; >> + bool need_connect_result = true; >> >> wdev_lock(wdev); >> >> @@ -94,6 +95,14 @@ void cfg80211_send_rx_assoc(struct net_d >> } >> >> WARN_ON(!bss); >> + } else if (wdev->conn) { >> + cfg80211_sme_failed_assoc(wdev); >> + need_connect_result = false; >> + /* >> + * do not call connect_result() now because the >> + * sme will schedule work that does it later. >> + */ >> + goto out; >> } >> >> if (!wdev->conn && wdev->sme_state == CFG80211_SME_IDLE) { >> --- wireless-testing.orig/net/wireless/sme.c 2009-10-20 15:02:15.000000000 +0900 >> +++ wireless-testing/net/wireless/sme.c 2009-10-20 15:03:20.000000000 +0900 >> @@ -26,6 +26,7 @@ struct cfg80211_conn { >> CFG80211_CONN_AUTHENTICATING, >> CFG80211_CONN_ASSOCIATE_NEXT, >> CFG80211_CONN_ASSOCIATING, >> + CFG80211_CONN_DEAUTH_ASSOC_FAIL, >> } state; >> u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN]; >> u8 *ie; >> @@ -148,6 +149,12 @@ static int cfg80211_conn_do_work(struct >> NULL, 0, >> WLAN_REASON_DEAUTH_LEAVING); >> return err; >> + case CFG80211_CONN_DEAUTH_ASSOC_FAIL: >> + __cfg80211_mlme_deauth(rdev, wdev->netdev, params->bssid, >> + NULL, 0, >> + WLAN_REASON_DEAUTH_LEAVING); >> + /* return an error so that we call __cfg80211_connect_result() */ >> + return -EINVAL; >> default: >> return 0; >> } >> @@ -158,6 +165,7 @@ void cfg80211_conn_work(struct work_stru >> struct cfg80211_registered_device *rdev = >> container_of(work, struct cfg80211_registered_device, conn_work); >> struct wireless_dev *wdev; >> + u8 bssid[ETH_ALEN]; >> >> rtnl_lock(); >> cfg80211_lock_rdev(rdev); >> @@ -173,10 +181,10 @@ void cfg80211_conn_work(struct work_stru >> wdev_unlock(wdev); >> continue; >> } >> + memcpy(bssid, wdev->conn->params.bssid, ETH_ALEN); >> if (cfg80211_conn_do_work(wdev)) >> __cfg80211_connect_result( >> - wdev->netdev, >> - wdev->conn->params.bssid, >> + wdev->netdev, bssid, >> NULL, 0, NULL, 0, >> WLAN_STATUS_UNSPECIFIED_FAILURE, >> false, NULL); >> @@ -337,6 +345,15 @@ bool cfg80211_sme_failed_reassoc(struct >> return true; >> } >> >> +void cfg80211_sme_failed_assoc(struct wireless_dev *wdev) >> +{ >> + struct wiphy *wiphy = wdev->wiphy; >> + struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); >> + >> + wdev->conn->state = CFG80211_CONN_DEAUTH_ASSOC_FAIL; >> + schedule_work(&rdev->conn_work); >> +} >> + >> void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, >> const u8 *req_ie, size_t req_ie_len, >> const u8 *resp_ie, size_t resp_ie_len, >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 7:46 ` Sedat Dilek @ 2009-10-20 7:49 ` Luis R. Rodriguez 0 siblings, 0 replies; 9+ messages in thread From: Luis R. Rodriguez @ 2009-10-20 7:49 UTC (permalink / raw) To: Sedat Dilek; +Cc: Johannes Berg, John Linville, linux-wireless On Tue, Oct 20, 2009 at 4:46 PM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > To clarify on the patchset and order: > > [quilt series]: > # patches from linux-wireless ML > linux-wireless/0001-Revert-mac80211-fix-SME-warning-by-removing-stale-BS.patch > linux-wireless/mac80211-keep-auth-state-when-assoc-fails.patch > linux-wireless/cfg80211-sme-deauthenticate-on-assoc-failure.patch Yes, a revert is required first. Luis ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-20 6:08 [PATCH] cfg80211: sme: deauthenticate on assoc failure Johannes Berg 2009-10-20 6:24 ` Luis R. Rodriguez 2009-10-20 7:33 ` Sedat Dilek @ 2009-10-23 4:07 ` Jouni Malinen 2009-10-23 13:35 ` Johannes Berg 2 siblings, 1 reply; 9+ messages in thread From: Jouni Malinen @ 2009-10-23 4:07 UTC (permalink / raw) To: Johannes Berg; +Cc: John Linville, linux-wireless, Luis R. Rodriguez On Tue, Oct 20, 2009 at 03:08:53PM +0900, Johannes Berg wrote: > When the in-kernel SME gets an association failure from > the AP we don't deauthenticate, and thus get into a very > confused state which will lead to warnings later on. Fix > this by actually deauthenticating when the AP indicates > an association failure. While this may be a reasonable change to resolve an issue now, this may not be the best long term solution. There are some association failure cases which should really be handled by trying association again instead of deauthenticating. The main example would be the association comeback time use in IEEE 802.11w. In general, association failure should not result in deauthentication in every case. -- Jouni Malinen PGP id EFC895FA ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] cfg80211: sme: deauthenticate on assoc failure 2009-10-23 4:07 ` Jouni Malinen @ 2009-10-23 13:35 ` Johannes Berg 0 siblings, 0 replies; 9+ messages in thread From: Johannes Berg @ 2009-10-23 13:35 UTC (permalink / raw) To: Jouni Malinen; +Cc: John Linville, linux-wireless, Luis R. Rodriguez [-- Attachment #1: Type: text/plain, Size: 932 bytes --] On Thu, 2009-10-22 at 21:07 -0700, Jouni Malinen wrote: > On Tue, Oct 20, 2009 at 03:08:53PM +0900, Johannes Berg wrote: > > When the in-kernel SME gets an association failure from > > the AP we don't deauthenticate, and thus get into a very > > confused state which will lead to warnings later on. Fix > > this by actually deauthenticating when the AP indicates > > an association failure. > > While this may be a reasonable change to resolve an issue now, this may > not be the best long term solution. There are some association failure > cases which should really be handled by trying association again instead > of deauthenticating. The main example would be the association comeback > time use in IEEE 802.11w. In general, association failure should not > result in deauthentication in every case. I'm pretty sure the issue should be fixed with the other two patches Luis and I cooked up at KS. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 801 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-10-23 13:35 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-10-20 6:08 [PATCH] cfg80211: sme: deauthenticate on assoc failure Johannes Berg 2009-10-20 6:24 ` Luis R. Rodriguez 2009-10-20 6:26 ` Johannes Berg 2009-10-20 7:33 ` Sedat Dilek 2009-10-20 7:41 ` Sedat Dilek 2009-10-20 7:46 ` Sedat Dilek 2009-10-20 7:49 ` Luis R. Rodriguez 2009-10-23 4:07 ` Jouni Malinen 2009-10-23 13:35 ` Johannes Berg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox