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