2014-05-20 10:36:19

by Emmanuel Grumbach

[permalink] [raw]
Subject: pull request: iwlwifi 2014-05-20

Hi John,

Here is another pull request for 3.15.

Avri fixes a disconnection issue in the power area. In certain cases, we can get the beacon only after association, and in these cases, we would begin to filter beacons out (to save power) too early. When that happened, we would disconnect.

Please pull, thanks.

The following changes since commit b538b8ce76f69f7fa225bc0817bbb361b877ea23:

iwlwifi: mvm: prevent sched scan while not idle (2014-05-13 15:05:32 +0300)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git for-john

for you to fetch changes up to 7340564bfacddd9cc974c714a5844e49216af190:

iwlwifi: mvm: don't filter out the first beacon (2014-05-20 13:33:29 +0300)

----------------------------------------------------------------
Avri Altman (1):
iwlwifi: mvm: don't filter out the first beacon

drivers/net/wireless/iwlwifi/mvm/mac80211.c | 13 +++++++------
drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 -----
drivers/net/wireless/iwlwifi/mvm/power.c | 63 ++++++++++++++++++++-------------------------------------------
3 files changed, 27 insertions(+), 54 deletions(-)


Attachments:
signature.asc (901.00 B)
OpenPGP digital signature

2014-05-20 16:40:22

by Grumbach, Emmanuel

[permalink] [raw]
Subject: RE: [PATCH] iwlwifi: mvm: don't filter out the first beacon

PiANCj4gT24gVHVlLCBNYXkgMjAsIDIwMTQgYXQgNTozMiBQTSwgSm9obiBXLiBMaW52aWxsZSA8
bGludmlsbGVAdHV4ZHJpdmVyLmNvbT4NCj4gd3JvdGU6DQo+ID4gT24gVHVlLCBNYXkgMjAsIDIw
MTQgYXQgMDE6Mzc6MThQTSArMDMwMCwgRW1tYW51ZWwgR3J1bWJhY2ggd3JvdGU6DQo+ID4+IEZy
b206IEF2cmkgQWx0bWFuIDxhdnJpLmFsdG1hbkBpbnRlbC5jb20+DQo+ID4+DQo+ID4+IEVuYWJs
aW5nIGJlYWNvbiBmaWx0ZXJpbmcgc2hvdWxkIGJlIGRvbmUgb25seSBhZnRlciBhIGJlYWNvbiBo
YXMgYmVlbg0KPiA+PiByZWNlaXZlZC4gRG9pbmcgdGhhdCB0b28gZWFybHkgd2lsbCBjYXVzZSBk
aXNjb25uZWN0aW9ucy4NCj4gPj4gVGhpcyBoYXMgYWxyZWFkeSBiZWVuIGZpeGVkLCBidXQgdGhl
IGZpeCBkaWRuJ3QgdGFrZSBjYXJlIGFib3V0IHRoZQ0KPiA+PiBjYXNlIHdoZXJlIHRoZSBiZWFj
b24gaXMgcmVjZWl2ZWQgYWZ0ZXIgdGhlIGFzc29jaWF0aW9uLCBpdCB3YWl0ZWQNCj4gPj4gb25s
eSBmb3IgYXNzb2NpYXRpb24gd2hpY2ggaXMgbm90IGVub3VnaC4NCj4gPj4NCj4gPj4gU2lnbmVk
LW9mZi1ieTogQXZyaSBBbHRtYW4gPGF2cmkuYWx0bWFuQGludGVsLmNvbT4NCj4gPj4gUmV2aWV3
ZWQtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPg0KPiA+PiBTaWdu
ZWQtb2ZmLWJ5OiBFbW1hbnVlbCBHcnVtYmFjaCA8ZW1tYW51ZWwuZ3J1bWJhY2hAaW50ZWwuY29t
Pg0KPiA+PiAtLS0NCj4gPj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvbXZtL21hYzgw
MjExLmMgfCAxMyArKystLS0NCj4gPj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvbXZt
L212bS5oICAgICAgfCAgNSAtLS0NCj4gPj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkv
bXZtL3Bvd2VyLmMgICAgfCA2MyArKysrKysrKystLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0NCj4g
Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pDQo+
ID4NCj4gPiBJdCBpcyB2ZXJ5IGxhdGUgaW4gdGhlIHJlbGVhc2UgY3ljbGUgZm9yIGEgZml4IG9m
IHRoaXMgc2l6ZS4NCj4gPiBIb3cgc2VyaW91cyBpcyB0aGUgaXNzdWU/ICBBIHJhbmRvbSBkaXNj
b25uZWN0IGRvZXNuJ3Qgc2VlbSBsaWtlIGENCj4gPiBodWdlIHByb2JsZW0gc28gbG9uZyBhcyBp
dCBpc24ndCBjb21tb24uLi4/DQo+ID4NCj4gZndpdywgaXQgbG9va3MgbGlrZSB5b3UgY2FuIHNp
bXBseSB3b3JrYXJvdW5kIHRoZSBpc3N1ZSBieSBzZXR0aW5nIHRoZQ0KPiBJRUVFODAyMTFfSFdf
TkVFRF9EVElNX0JFRk9SRV9BU1NPQyBmbGFnLg0KPiANCg0KVGhhdCB3b3VsZCBzbG93IGRvd24g
dGhlIGNvbm5lY3Rpb24uIEknZCByYXRoZXIgZGlzYWJsZSB0aGUgYmVhY29uIGZpbHRlcmluZyBh
bHRvZ2V0aGVyLg0KVGhlIGlyb255IGlzIHRoYXQgSSBzZW50IGEgbWFpbCB0byBHcmVnIGFza2lu
ZyBob3cgdG8gZGlzYWJsZSBpdCBpbiAzLjEzIC8gMy4xNCB3aXRob3V0IGRpc2FibGluZyBpdCBp
biAzLjE1IGJlY2F1c2UgSSB0aG91Z2ggdGhpcyBwYXRjaCB3b3VsZCBtYWtlIGl0IHRvIDMuMTUu
IE5vdyBJIGZpbmQgbXlzZWxmIGRpc2FibGluZyB0aGUgZmVhdHVyZSBmb3IgMy4xNSB0b28uLi4g
QW55d2F5Li4uDQo=

2014-05-20 15:18:59

by Eliad Peller

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: mvm: don't filter out the first beacon

On Tue, May 20, 2014 at 5:32 PM, John W. Linville
<[email protected]> wrote:
> On Tue, May 20, 2014 at 01:37:18PM +0300, Emmanuel Grumbach wrote:
>> From: Avri Altman <[email protected]>
>>
>> Enabling beacon filtering should be done only after a beacon
>> has been received. Doing that too early will cause
>> disconnections.
>> This has already been fixed, but the fix didn't take care
>> about the case where the beacon is received after the
>> association, it waited only for association which is not
>> enough.
>>
>> Signed-off-by: Avri Altman <[email protected]>
>> Reviewed-by: Johannes Berg <[email protected]>
>> Signed-off-by: Emmanuel Grumbach <[email protected]>
>> ---
>> drivers/net/wireless/iwlwifi/mvm/mac80211.c | 13 +++---
>> drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 ---
>> drivers/net/wireless/iwlwifi/mvm/power.c | 63 +++++++++--------------------
>> 3 files changed, 27 insertions(+), 54 deletions(-)
>
> It is very late in the release cycle for a fix of this size.
> How serious is the issue? A random disconnect doesn't seem like a
> huge problem so long as it isn't common...?
>
fwiw, it looks like you can simply workaround the issue by setting the
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC flag.

Eliad.

2014-05-21 06:23:23

by Altman, Avri

[permalink] [raw]
Subject: RE: [PATCH] iwlwifi: mvm: don't filter out the first beacon

SGksDQpEbyB5b3Ugd2FudCBtZSB0byByZXZlcnQgdGhlIHBhdGNoIGFuZCBmb2xsb3cgRWxpYWQn
cyBzdWdnZXN0aW9uID8NCk1heWJlIGRvIHNvbWUgdGVzdGluZyBpZiBpbmRlZWQgaXQgc2xvd3Mg
ZG93biBhc3NvY2lhdGlvbiA/DQpSZWdhcmRzLA0KQXZyaQ0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KRnJvbTogR3J1bWJhY2gsIEVtbWFudWVsIA0KU2VudDogVHVlc2RheSwgTWF5IDIw
LCAyMDE0IDc6MzkgUE0NClRvOiBFbGlhZCBQZWxsZXI7IEpvaG4gVy4gTGludmlsbGUNCkNjOiBF
bW1hbnVlbCBHcnVtYmFjaDsgbGludXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnOyBBbHRtYW4s
IEF2cmkNClN1YmplY3Q6IFJFOiBbUEFUQ0hdIGl3bHdpZmk6IG12bTogZG9uJ3QgZmlsdGVyIG91
dCB0aGUgZmlyc3QgYmVhY29uDQoNCj4gDQo+IE9uIFR1ZSwgTWF5IDIwLCAyMDE0IGF0IDU6MzIg
UE0sIEpvaG4gVy4gTGludmlsbGUgPGxpbnZpbGxlQHR1eGRyaXZlci5jb20+DQo+IHdyb3RlOg0K
PiA+IE9uIFR1ZSwgTWF5IDIwLCAyMDE0IGF0IDAxOjM3OjE4UE0gKzAzMDAsIEVtbWFudWVsIEdy
dW1iYWNoIHdyb3RlOg0KPiA+PiBGcm9tOiBBdnJpIEFsdG1hbiA8YXZyaS5hbHRtYW5AaW50ZWwu
Y29tPg0KPiA+Pg0KPiA+PiBFbmFibGluZyBiZWFjb24gZmlsdGVyaW5nIHNob3VsZCBiZSBkb25l
IG9ubHkgYWZ0ZXIgYSBiZWFjb24gaGFzIGJlZW4NCj4gPj4gcmVjZWl2ZWQuIERvaW5nIHRoYXQg
dG9vIGVhcmx5IHdpbGwgY2F1c2UgZGlzY29ubmVjdGlvbnMuDQo+ID4+IFRoaXMgaGFzIGFscmVh
ZHkgYmVlbiBmaXhlZCwgYnV0IHRoZSBmaXggZGlkbid0IHRha2UgY2FyZSBhYm91dCB0aGUNCj4g
Pj4gY2FzZSB3aGVyZSB0aGUgYmVhY29uIGlzIHJlY2VpdmVkIGFmdGVyIHRoZSBhc3NvY2lhdGlv
biwgaXQgd2FpdGVkDQo+ID4+IG9ubHkgZm9yIGFzc29jaWF0aW9uIHdoaWNoIGlzIG5vdCBlbm91
Z2guDQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IEF2cmkgQWx0bWFuIDxhdnJpLmFsdG1hbkBp
bnRlbC5jb20+DQo+ID4+IFJldmlld2VkLWJ5OiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lcy5iZXJn
QGludGVsLmNvbT4NCj4gPj4gU2lnbmVkLW9mZi1ieTogRW1tYW51ZWwgR3J1bWJhY2ggPGVtbWFu
dWVsLmdydW1iYWNoQGludGVsLmNvbT4NCj4gPj4gLS0tDQo+ID4+ICBkcml2ZXJzL25ldC93aXJl
bGVzcy9pd2x3aWZpL212bS9tYWM4MDIxMS5jIHwgMTMgKysrLS0tDQo+ID4+ICBkcml2ZXJzL25l
dC93aXJlbGVzcy9pd2x3aWZpL212bS9tdm0uaCAgICAgIHwgIDUgLS0tDQo+ID4+ICBkcml2ZXJz
L25ldC93aXJlbGVzcy9pd2x3aWZpL212bS9wb3dlci5jICAgIHwgNjMgKysrKysrKysrLS0tLS0t
LS0tLS0tLS0NCj4gLS0tLS0tDQo+ID4+ICAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMo
KyksIDU0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gSXQgaXMgdmVyeSBsYXRlIGluIHRoZSByZWxl
YXNlIGN5Y2xlIGZvciBhIGZpeCBvZiB0aGlzIHNpemUuDQo+ID4gSG93IHNlcmlvdXMgaXMgdGhl
IGlzc3VlPyAgQSByYW5kb20gZGlzY29ubmVjdCBkb2Vzbid0IHNlZW0gbGlrZSBhDQo+ID4gaHVn
ZSBwcm9ibGVtIHNvIGxvbmcgYXMgaXQgaXNuJ3QgY29tbW9uLi4uPw0KPiA+DQo+IGZ3aXcsIGl0
IGxvb2tzIGxpa2UgeW91IGNhbiBzaW1wbHkgd29ya2Fyb3VuZCB0aGUgaXNzdWUgYnkgc2V0dGlu
ZyB0aGUNCj4gSUVFRTgwMjExX0hXX05FRURfRFRJTV9CRUZPUkVfQVNTT0MgZmxhZy4NCj4gDQoN
ClRoYXQgd291bGQgc2xvdyBkb3duIHRoZSBjb25uZWN0aW9uLiBJJ2QgcmF0aGVyIGRpc2FibGUg
dGhlIGJlYWNvbiBmaWx0ZXJpbmcgYWx0b2dldGhlci4NClRoZSBpcm9ueSBpcyB0aGF0IEkgc2Vu
dCBhIG1haWwgdG8gR3JlZyBhc2tpbmcgaG93IHRvIGRpc2FibGUgaXQgaW4gMy4xMyAvIDMuMTQg
d2l0aG91dCBkaXNhYmxpbmcgaXQgaW4gMy4xNSBiZWNhdXNlIEkgdGhvdWdoIHRoaXMgcGF0Y2gg
d291bGQgbWFrZSBpdCB0byAzLjE1LiBOb3cgSSBmaW5kIG15c2VsZiBkaXNhYmxpbmcgdGhlIGZl
YXR1cmUgZm9yIDMuMTUgdG9vLi4uIEFueXdheS4uLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkEgbWVtYmVyIG9m
IHRoZSBJbnRlbCBDb3Jwb3JhdGlvbiBncm91cCBvZiBjb21wYW5pZXMKClRoaXMgZS1tYWlsIGFu
ZCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgp0
aGUgc29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBk
aXN0cmlidXRpb24KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUg
bm90IHRoZSBpbnRlbmRlZApyZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5k
IGRlbGV0ZSBhbGwgY29waWVzLgo=


2014-05-20 14:45:10

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: mvm: don't filter out the first beacon

On Tue, May 20, 2014 at 01:37:18PM +0300, Emmanuel Grumbach wrote:
> From: Avri Altman <[email protected]>
>
> Enabling beacon filtering should be done only after a beacon
> has been received. Doing that too early will cause
> disconnections.
> This has already been fixed, but the fix didn't take care
> about the case where the beacon is received after the
> association, it waited only for association which is not
> enough.
>
> Signed-off-by: Avri Altman <[email protected]>
> Reviewed-by: Johannes Berg <[email protected]>
> Signed-off-by: Emmanuel Grumbach <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/mvm/mac80211.c | 13 +++---
> drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 ---
> drivers/net/wireless/iwlwifi/mvm/power.c | 63 +++++++++--------------------
> 3 files changed, 27 insertions(+), 54 deletions(-)

It is very late in the release cycle for a fix of this size.
How serious is the issue? A random disconnect doesn't seem like a
huge problem so long as it isn't common...?

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2014-05-20 10:37:26

by Emmanuel Grumbach

[permalink] [raw]
Subject: [PATCH] iwlwifi: mvm: don't filter out the first beacon

From: Avri Altman <[email protected]>

Enabling beacon filtering should be done only after a beacon
has been received. Doing that too early will cause
disconnections.
This has already been fixed, but the fix didn't take care
about the case where the beacon is received after the
association, it waited only for association which is not
enough.

Signed-off-by: Avri Altman <[email protected]>
Reviewed-by: Johannes Berg <[email protected]>
Signed-off-by: Emmanuel Grumbach <[email protected]>
---
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 13 +++---
drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 ---
drivers/net/wireless/iwlwifi/mvm/power.c | 63 +++++++++--------------------
3 files changed, 27 insertions(+), 54 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index b41dc84..712d460 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -1350,9 +1350,12 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
IWL_DEBUG_MAC80211(mvm, "cqm info_changed");
/* reset cqm events tracking */
mvmvif->bf_data.last_cqm_event = 0;
- ret = iwl_mvm_update_beacon_filter(mvm, vif, false, CMD_SYNC);
- if (ret)
- IWL_ERR(mvm, "failed to update CQM thresholds\n");
+ if (mvmvif->bf_data.bf_enabled) {
+ ret = iwl_mvm_enable_beacon_filter(mvm, vif, CMD_SYNC);
+ if (ret)
+ IWL_ERR(mvm,
+ "failed to update CQM thresholds\n");
+ }
}

if (changes & BSS_CHANGED_ARP_FILTER) {
@@ -1708,9 +1711,7 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
} else if (old_state == IEEE80211_STA_ASSOC &&
new_state == IEEE80211_STA_AUTHORIZED) {
/* enable beacon filtering */
- if (vif->bss_conf.dtim_period)
- WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif,
- CMD_SYNC));
+ WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, CMD_SYNC));
ret = 0;
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) {
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index f1ec098..f8c376a 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -971,11 +971,6 @@ int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
u32 flags);
int iwl_mvm_update_beacon_abort(struct iwl_mvm *mvm,
struct ieee80211_vif *vif, bool enable);
-int iwl_mvm_update_beacon_filter(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif,
- bool force,
- u32 flags);
-
/* SMPS */
void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
enum iwl_mvm_smps_type_request req_type,
diff --git a/drivers/net/wireless/iwlwifi/mvm/power.c b/drivers/net/wireless/iwlwifi/mvm/power.c
index 6b636ea..3634237 100644
--- a/drivers/net/wireless/iwlwifi/mvm/power.c
+++ b/drivers/net/wireless/iwlwifi/mvm/power.c
@@ -123,28 +123,6 @@ void iwl_mvm_beacon_filter_set_cqm_params(struct iwl_mvm *mvm,
cmd->ba_enable_beacon_abort = cpu_to_le32(mvmvif->bf_data.ba_enabled);
}

-int iwl_mvm_update_beacon_abort(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif, bool enable)
-{
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
- struct iwl_beacon_filter_cmd cmd = {
- IWL_BF_CMD_CONFIG_DEFAULTS,
- .bf_enable_beacon_filter = cpu_to_le32(1),
- .ba_enable_beacon_abort = cpu_to_le32(enable),
- };
-
- if (!mvmvif->bf_data.bf_enabled)
- return 0;
-
- if (mvm->cur_ucode == IWL_UCODE_WOWLAN)
- cmd.ba_escape_timer = cpu_to_le32(IWL_BA_ESCAPE_TIMER_D3);
-
- mvmvif->bf_data.ba_enabled = enable;
- iwl_mvm_beacon_filter_set_cqm_params(mvm, vif, &cmd);
- iwl_mvm_beacon_filter_debugfs_parameters(vif, &cmd);
- return iwl_mvm_beacon_filter_send_cmd(mvm, &cmd, CMD_SYNC);
-}
-
static void iwl_mvm_power_log(struct iwl_mvm *mvm,
struct iwl_mac_power_cmd *cmd)
{
@@ -790,7 +768,7 @@ static int _iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
int ret;

- if (mvmvif != mvm->bf_allowed_vif ||
+ if (mvmvif != mvm->bf_allowed_vif || !vif->bss_conf.dtim_period ||
vif->type != NL80211_IFTYPE_STATION || vif->p2p)
return 0;

@@ -818,6 +796,25 @@ int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, flags, false);
}

+int iwl_mvm_update_beacon_abort(struct iwl_mvm *mvm,
+ struct ieee80211_vif *vif, bool enable)
+{
+ struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
+ struct iwl_beacon_filter_cmd cmd = {
+ IWL_BF_CMD_CONFIG_DEFAULTS,
+ .bf_enable_beacon_filter = cpu_to_le32(1),
+ };
+
+ if (!mvmvif->bf_data.bf_enabled)
+ return 0;
+
+ if (mvm->cur_ucode == IWL_UCODE_WOWLAN)
+ cmd.ba_escape_timer = cpu_to_le32(IWL_BA_ESCAPE_TIMER_D3);
+
+ mvmvif->bf_data.ba_enabled = enable;
+ return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, 0, false);
+}
+
int iwl_mvm_disable_beacon_filter(struct iwl_mvm *mvm,
struct ieee80211_vif *vif,
u32 flags)
@@ -895,26 +892,6 @@ int iwl_mvm_update_d0i3_power_mode(struct iwl_mvm *mvm,
return ret;
}

-int iwl_mvm_update_beacon_filter(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif,
- bool force,
- u32 flags)
-{
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
-
- if (mvmvif != mvm->bf_allowed_vif)
- return 0;
-
- if (!mvmvif->bf_data.bf_enabled) {
- /* disable beacon filtering explicitly if force is true */
- if (force)
- return iwl_mvm_disable_beacon_filter(mvm, vif, flags);
- return 0;
- }
-
- return iwl_mvm_enable_beacon_filter(mvm, vif, flags);
-}
-
int iwl_power_legacy_set_cam_mode(struct iwl_mvm *mvm)
{
struct iwl_powertable_cmd cmd = {
--
1.8.3.2