All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 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.