linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID
@ 2012-01-24 16:18 Eliad Peller
  2012-01-24 16:18 ` [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters Eliad Peller
  2012-02-15 10:14 ` [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Luciano Coelho
  0 siblings, 2 replies; 5+ messages in thread
From: Eliad Peller @ 2012-01-24 16:18 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

with the new auth/assoc redesign, we get CHANGED_BSSID
indication before CHANGED_ASSOC indication, while our
CHANGED_BSSID handling block assumes we are already
associated.

Fix it by checking we are either in ibss mode, or
already associated.

Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 drivers/net/wireless/wl12xx/main.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 915d56c..91c03d8 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -3639,7 +3639,8 @@ static void wl1271_bss_info_changed_sta(struct wl1271 *wl,
 		wlvif->rssi_thold = bss_conf->cqm_rssi_thold;
 	}
 
-	if (changed & BSS_CHANGED_BSSID)
+	if (changed & BSS_CHANGED_BSSID &&
+	    (is_ibss || bss_conf->assoc))
 		if (!is_zero_ether_addr(bss_conf->bssid)) {
 			ret = wl12xx_cmd_build_null_data(wl, wlvif);
 			if (ret < 0)
-- 
1.7.6.401.g6a319


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters
  2012-01-24 16:18 [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Eliad Peller
@ 2012-01-24 16:18 ` Eliad Peller
  2012-01-24 18:55   ` Luciano Coelho
  2012-02-15 10:14 ` [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Luciano Coelho
  1 sibling, 1 reply; 5+ messages in thread
From: Eliad Peller @ 2012-01-24 16:18 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

wl1271_tx_update_filters() is used as some workaround
to open filters while roaming on the same channel.

However, it doesn't handle roaming to a different channel,
and it might also sleep in the tx path, which is a bug.

With the new auth/assoc redesign, roaming is much simpler,
and this function is not needed anymore.

Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 drivers/net/wireless/wl12xx/tx.c |   31 -------------------------------
 1 files changed, 0 insertions(+), 31 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c
index 4508ccd..2bf43b8 100644
--- a/drivers/net/wireless/wl12xx/tx.c
+++ b/drivers/net/wireless/wl12xx/tx.c
@@ -77,35 +77,6 @@ static void wl1271_free_tx_id(struct wl1271 *wl, int id)
 	}
 }
 
-static int wl1271_tx_update_filters(struct wl1271 *wl,
-				    struct wl12xx_vif *wlvif,
-				    struct sk_buff *skb)
-{
-	struct ieee80211_hdr *hdr;
-	int ret;
-
-	hdr = (struct ieee80211_hdr *)skb->data;
-
-	/*
-	 * stop bssid-based filtering before transmitting authentication
-	 * requests. this way the hw will never drop authentication
-	 * responses coming from BSSIDs it isn't familiar with (e.g. on
-	 * roaming)
-	 */
-	if (!ieee80211_is_auth(hdr->frame_control))
-		return 0;
-
-	if (wlvif->dev_hlid != WL12XX_INVALID_LINK_ID)
-		goto out;
-
-	wl1271_debug(DEBUG_CMD, "starting device role for roaming");
-	ret = wl12xx_start_dev(wl, wlvif);
-	if (ret < 0)
-		goto out;
-out:
-	return 0;
-}
-
 static void wl1271_tx_ap_update_inconnection_sta(struct wl1271 *wl,
 						 struct sk_buff *skb)
 {
@@ -187,8 +158,6 @@ u8 wl12xx_tx_get_hlid(struct wl1271 *wl, struct wl12xx_vif *wlvif,
 	if (wlvif->bss_type == BSS_TYPE_AP_BSS)
 		return wl12xx_tx_get_hlid_ap(wl, wlvif, skb);
 
-	wl1271_tx_update_filters(wl, wlvif, skb);
-
 	if ((test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags) ||
 	     test_bit(WLVIF_FLAG_IBSS_JOINED, &wlvif->flags)) &&
 	    !ieee80211_is_auth(hdr->frame_control) &&
-- 
1.7.6.401.g6a319


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters
  2012-01-24 16:18 ` [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters Eliad Peller
@ 2012-01-24 18:55   ` Luciano Coelho
  2012-01-24 19:15     ` Eliad Peller
  0 siblings, 1 reply; 5+ messages in thread
From: Luciano Coelho @ 2012-01-24 18:55 UTC (permalink / raw)
  To: Eliad Peller; +Cc: linux-wireless

On Tue, 2012-01-24 at 18:18 +0200, Eliad Peller wrote: 
> wl1271_tx_update_filters() is used as some workaround
> to open filters while roaming on the same channel.
> 
> However, it doesn't handle roaming to a different channel,
> and it might also sleep in the tx path, which is a bug.
> 
> With the new auth/assoc redesign, roaming is much simpler,
> and this function is not needed anymore.

And is this okay without the redesign?


-- 
Cheers,
Luca.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters
  2012-01-24 18:55   ` Luciano Coelho
@ 2012-01-24 19:15     ` Eliad Peller
  0 siblings, 0 replies; 5+ messages in thread
From: Eliad Peller @ 2012-01-24 19:15 UTC (permalink / raw)
  To: Luciano Coelho; +Cc: linux-wireless

On Tue, Jan 24, 2012 at 8:55 PM, Luciano Coelho <coelho@ti.com> wrote:
> On Tue, 2012-01-24 at 18:18 +0200, Eliad Peller wrote:
>> wl1271_tx_update_filters() is used as some workaround
>> to open filters while roaming on the same channel.
>>
>> However, it doesn't handle roaming to a different channel,
>> and it might also sleep in the tx path, which is a bug.
>>
>> With the new auth/assoc redesign, roaming is much simpler,
>> and this function is not needed anymore.
>
> And is this okay without the redesign?
>
yes.
it will only break roaming on the same channel. but as roaming to
another channel is already broken, and it also fixes a scheduling bug,
i think it should be applied even before the redesign patches..

Eliad.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID
  2012-01-24 16:18 [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Eliad Peller
  2012-01-24 16:18 ` [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters Eliad Peller
@ 2012-02-15 10:14 ` Luciano Coelho
  1 sibling, 0 replies; 5+ messages in thread
From: Luciano Coelho @ 2012-02-15 10:14 UTC (permalink / raw)
  To: Eliad Peller; +Cc: linux-wireless

On Tue, 2012-01-24 at 18:18 +0200, Eliad Peller wrote: 
> with the new auth/assoc redesign, we get CHANGED_BSSID
> indication before CHANGED_ASSOC indication, while our
> CHANGED_BSSID handling block assumes we are already
> associated.
> 
> Fix it by checking we are either in ibss mode, or
> already associated.
> 
> Signed-off-by: Eliad Peller <eliad@wizery.com>
> ---

Applied the set, thanks!

-- 
Cheers,
Luca.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-02-15 10:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-24 16:18 [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Eliad Peller
2012-01-24 16:18 ` [PATCH 2/2] wl12xx: remove wl1271_tx_update_filters Eliad Peller
2012-01-24 18:55   ` Luciano Coelho
2012-01-24 19:15     ` Eliad Peller
2012-02-15 10:14 ` [PATCH 1/2] wl12xx: check bss_conf->assoc on CHANGED_BSSID Luciano Coelho

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