mac80211: fix debugfs key->station symlink
brcmsmac: fix tx queue flush infinite loop mac80211: Use the right headroom size for mesh mgmt frames mac80211: fix work removal on deauth request b43: add option to avoid duplicating device support with brcmsmac mac80211: update oper_channel on ibss join mac80211: set bss_conf.idle when vif is connected iwlwifi: fix PCI-E transport "inta" race
This commit is contained in:
parent
2cad290c45
commit
a43c59fbee
|
@ -1,7 +1,7 @@
|
|||
From 4f3d09de38d234ce7ffba5ec5a7e6704f983d375 Mon Sep 17 00:00:00 2001
|
||||
From: John W. Linville <linville@tuxdriver.com>
|
||||
Date: Wed, 11 Jan 2012 15:50:15 -0500
|
||||
Subject: [PATCH] b43: add option to avoid duplicating device support with
|
||||
Subject: [PATCH 5/8] b43: add option to avoid duplicating device support with
|
||||
brcmsmac
|
||||
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
From f96b08a7e6f69c0f0a576554df3df5b1b519c479 Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Tue, 17 Jan 2012 12:38:50 +0100
|
||||
Subject: [PATCH 2/8] brcmsmac: fix tx queue flush infinite loop
|
||||
|
||||
This patch workaround live deadlock problem caused by infinite loop
|
||||
in brcms_c_wait_for_tx_completion(). I do not consider the patch as
|
||||
the proper fix, which should fix the real reason of tx queue flush
|
||||
failure, but patch helps with system lockup.
|
||||
|
||||
Reference:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=42576
|
||||
|
||||
Reported-and-tested-by: Patrick <ragamuffin@datacomm.ch>
|
||||
Cc: stable@vger.kernel.org # 3.2+
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/brcm80211/brcmsmac/main.c | 10 +++++++++-
|
||||
1 files changed, 9 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
index f7ed340..f6affc6 100644
|
||||
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
@@ -7981,13 +7981,21 @@ int brcms_c_get_curband(struct brcms_c_info *wlc)
|
||||
|
||||
void brcms_c_wait_for_tx_completion(struct brcms_c_info *wlc, bool drop)
|
||||
{
|
||||
+ int timeout = 20;
|
||||
+
|
||||
/* flush packet queue when requested */
|
||||
if (drop)
|
||||
brcmu_pktq_flush(&wlc->pkt_queue->q, false, NULL, NULL);
|
||||
|
||||
/* wait for queue and DMA fifos to run dry */
|
||||
- while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0)
|
||||
+ while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0) {
|
||||
brcms_msleep(wlc->wl, 1);
|
||||
+
|
||||
+ if (--timeout == 0)
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ WARN_ON_ONCE(timeout == 0);
|
||||
}
|
||||
|
||||
void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval)
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
From b49ba04a3a0382e7314d990707c21094c410425a Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Thu, 19 Jan 2012 08:20:57 -0800
|
||||
Subject: [PATCH 8/8] iwlwifi: fix PCI-E transport "inta" race
|
||||
|
||||
When an interrupt comes in, we read the reason
|
||||
bits and collect them into "trans_pcie->inta".
|
||||
This happens with the spinlock held. However,
|
||||
there's a bug resetting this variable -- that
|
||||
happens after the spinlock has been released.
|
||||
This means that it is possible for interrupts
|
||||
to be missed if the reset happens after some
|
||||
other interrupt reasons were already added to
|
||||
the variable.
|
||||
|
||||
I found this by code inspection, looking for a
|
||||
reason that we sometimes see random commands
|
||||
time out. It seems possible that this causes
|
||||
such behaviour, but I can't say for sure right
|
||||
now since it happens extremely infrequently on
|
||||
my test systems.
|
||||
|
||||
Cc: stable@vger.kernel.org [3.2]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
index 752493f..65d1f05 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
@@ -972,11 +972,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans)
|
||||
}
|
||||
#endif
|
||||
|
||||
- spin_unlock_irqrestore(&trans->shrd->lock, flags);
|
||||
-
|
||||
/* saved interrupt in inta variable now we can reset trans_pcie->inta */
|
||||
trans_pcie->inta = 0;
|
||||
|
||||
+ spin_unlock_irqrestore(&trans->shrd->lock, flags);
|
||||
+
|
||||
/* Now service all interrupt bits discovered above. */
|
||||
if (inta & CSR_INT_BIT_HW_ERR) {
|
||||
IWL_ERR(trans, "Hardware error detected. Restarting.\n");
|
||||
--
|
||||
1.7.4.4
|
||||
|
30
kernel.spec
30
kernel.spec
|
@ -820,9 +820,15 @@ Patch50002: compat-wireless-integrated-build.patch
|
|||
|
||||
Patch50100: compat-wireless-rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
|
||||
# Remove overlapping hardware support between b43 and brcmsmac
|
||||
Patch50101: b43-add-option-to-avoid-duplicating-device-support-w.patch
|
||||
|
||||
# Pending upstream fixes
|
||||
Patch50101: mac80211-fix-debugfs-key-station-symlink.patch
|
||||
Patch50102: brcmsmac-fix-tx-queue-flush-infinite-loop.patch
|
||||
Patch50103: mac80211-Use-the-right-headroom-size-for-mesh-mgmt-f.patch
|
||||
Patch50104: mac80211-fix-work-removal-on-deauth-request.patch
|
||||
Patch50105: b43-add-option-to-avoid-duplicating-device-support-w.patch
|
||||
Patch50106: mac80211-update-oper_channel-on-ibss-join.patch
|
||||
Patch50107: mac80211-set-bss_conf.idle-when-vif-is-connected.patch
|
||||
Patch50108: iwlwifi-fix-PCI-E-transport-inta-race.patch
|
||||
|
||||
%endif
|
||||
|
||||
|
@ -1579,10 +1585,16 @@ cd compat-wireless-%{cwversion}
|
|||
ApplyPatch compat-wireless-config-fixups.patch
|
||||
ApplyPatch compat-wireless-pr_fmt-warning-avoidance.patch
|
||||
ApplyPatch compat-wireless-rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
ApplyPatch mac80211-fix-work-removal-on-deauth-request.patch
|
||||
|
||||
# Remove overlapping hardware support between b43 and brcmsmac
|
||||
# Pending upstream fixes
|
||||
ApplyPatch mac80211-fix-debugfs-key-station-symlink.patch
|
||||
ApplyPatch brcmsmac-fix-tx-queue-flush-infinite-loop.patch
|
||||
ApplyPatch mac80211-Use-the-right-headroom-size-for-mesh-mgmt-f.patch
|
||||
ApplyPatch mac80211-fix-work-removal-on-deauth-request.patch
|
||||
ApplyPatch b43-add-option-to-avoid-duplicating-device-support-w.patch
|
||||
ApplyPatch mac80211-update-oper_channel-on-ibss-join.patch
|
||||
ApplyPatch mac80211-set-bss_conf.idle-when-vif-is-connected.patch
|
||||
ApplyPatch iwlwifi-fix-PCI-E-transport-inta-race.patch
|
||||
|
||||
cd ..
|
||||
|
||||
|
@ -2291,6 +2303,14 @@ fi
|
|||
%changelog
|
||||
* Mon Jan 30 2012 John W. Linville <linville@redhat.com>
|
||||
- Use the eeprom_93cx6 driver from the compat-wireless package
|
||||
- mac80211: fix debugfs key->station symlink
|
||||
- brcmsmac: fix tx queue flush infinite loop
|
||||
- mac80211: Use the right headroom size for mesh mgmt frames
|
||||
- mac80211: fix work removal on deauth request
|
||||
- b43: add option to avoid duplicating device support with brcmsmac
|
||||
- mac80211: update oper_channel on ibss join
|
||||
- mac80211: set bss_conf.idle when vif is connected
|
||||
- iwlwifi: fix PCI-E transport "inta" race
|
||||
|
||||
* Fri Jan 27 2012 John W. Linville <linville@redhat.com>
|
||||
- Include config.mk from compat-wireless build in files for installation
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
From 65e8b0ccb6cf176f8eddb1b05534be46580da9dd Mon Sep 17 00:00:00 2001
|
||||
From: Javier Cardona <javier@cozybit.com>
|
||||
Date: Tue, 17 Jan 2012 18:17:46 -0800
|
||||
Subject: [PATCH 3/8] mac80211: Use the right headroom size for mesh mgmt
|
||||
frames
|
||||
|
||||
Use local->tx_headroom instad of local->hw.extra_tx_headroom.
|
||||
local->tx_headroom is the max of hw.extra_tx_headroom required by the
|
||||
driver and the headroom required by mac80211 for status reporting. On
|
||||
drivers where hw.extra_tx_headroom is smaller than what mac80211
|
||||
requires (e.g. ath5k), we would not reserve sufficient buffer space to
|
||||
report tx status.
|
||||
|
||||
Also, don't reserve local->tx_headroom + local->hw.extra_tx_headroom.
|
||||
|
||||
Reported-by: Simon Morgenthaler <s.morgenthaler@students.unibe.ch>
|
||||
Reported-by: Kai Scharwies <kai@scharwies.de>
|
||||
Signed-off-by: Javier Cardona <javier@cozybit.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/mesh_hwmp.c | 8 ++++----
|
||||
net/mac80211/mesh_plink.c | 4 ++--
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
|
||||
index 73abb75..54df1b2 100644
|
||||
--- a/net/mac80211/mesh_hwmp.c
|
||||
+++ b/net/mac80211/mesh_hwmp.c
|
||||
@@ -119,12 +119,12 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
|
||||
int hdr_len = offsetof(struct ieee80211_mgmt, u.action.u.mesh_action) +
|
||||
sizeof(mgmt->u.action.u.mesh_action);
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + 37); /* max HWMP IE */
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
@@ -250,12 +250,12 @@ int mesh_path_error_tx(u8 ttl, u8 *target, __le32 target_sn,
|
||||
if (time_before(jiffies, ifmsh->next_perr))
|
||||
return -EAGAIN;
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + 15 /* PERR IE */);
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->tx_headroom + local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
|
||||
index 41ef1b4..a172517 100644
|
||||
--- a/net/mac80211/mesh_plink.c
|
||||
+++ b/net/mac80211/mesh_plink.c
|
||||
@@ -172,7 +172,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
|
||||
int hdr_len = offsetof(struct ieee80211_mgmt, u.action.u.self_prot) +
|
||||
sizeof(mgmt->u.action.u.self_prot);
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + /* capability info */
|
||||
2 + /* AID */
|
||||
@@ -186,7 +186,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
|
||||
sdata->u.mesh.ie_len);
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From 9446f3efc53512e5ad9e0966539021a2a41fe5a0 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Tue, 17 Jan 2012 10:32:01 +0100
|
||||
Subject: [PATCH 1/8] mac80211: fix debugfs key->station symlink
|
||||
|
||||
Since stations moved into a virtual interface
|
||||
subdirectory, this link has been broken. Fix it.
|
||||
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/debugfs_key.c | 7 ++++---
|
||||
1 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
|
||||
index 38e6101..59edcd9 100644
|
||||
--- a/net/mac80211/debugfs_key.c
|
||||
+++ b/net/mac80211/debugfs_key.c
|
||||
@@ -225,9 +225,9 @@ KEY_OPS(key);
|
||||
key, &key_##name##_ops);
|
||||
|
||||
void ieee80211_debugfs_key_add(struct ieee80211_key *key)
|
||||
- {
|
||||
+{
|
||||
static int keycount;
|
||||
- char buf[50];
|
||||
+ char buf[100];
|
||||
struct sta_info *sta;
|
||||
|
||||
if (!key->local->debugfs.keys)
|
||||
@@ -244,7 +244,8 @@ void ieee80211_debugfs_key_add(struct ieee80211_key *key)
|
||||
|
||||
sta = key->sta;
|
||||
if (sta) {
|
||||
- sprintf(buf, "../../stations/%pM", sta->sta.addr);
|
||||
+ sprintf(buf, "../../netdev:%s/stations/%pM",
|
||||
+ sta->sdata->name, sta->sta.addr);
|
||||
key->debugfs.stalink =
|
||||
debugfs_create_symlink("station", key->debugfs.dir, buf);
|
||||
}
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,51 +1,7 @@
|
|||
Path: news.gmane.org!not-for-mail
|
||||
From: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>
|
||||
Newsgroups: gmane.linux.kernel.wireless.general
|
||||
Subject: [PATCH 3.3] mac80211: fix work removal on deauth request
|
||||
From bc4934bc61d0a11fd62c5187ff83645628f8be8b Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Wed, 18 Jan 2012 14:10:25 +0100
|
||||
Lines: 107
|
||||
Approved: news@gmane.org
|
||||
Message-ID: <1326892225.4778.5.camel@jlt3.sipsolutions.net>
|
||||
NNTP-Posting-Host: lo.gmane.org
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset="UTF-8"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Trace: dough.gmane.org 1326892249 18013 80.91.229.12 (18 Jan 2012 13:10:49 GMT)
|
||||
X-Complaints-To: usenet@dough.gmane.org
|
||||
NNTP-Posting-Date: Wed, 18 Jan 2012 13:10:49 +0000 (UTC)
|
||||
Cc: linux-wireless <linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
|
||||
Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
To: John Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
|
||||
Original-X-From: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jan 18 14:10:44 2012
|
||||
Return-path: <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
|
||||
Envelope-to: glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
|
||||
Original-Received: from vger.kernel.org ([209.132.180.67])
|
||||
by lo.gmane.org with esmtp (Exim 4.69)
|
||||
(envelope-from <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
|
||||
id 1RnVHo-00044l-Aq
|
||||
for glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 18 Jan 2012 14:10:44 +0100
|
||||
Original-Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
|
||||
id S1757410Ab2ARNK3 (ORCPT
|
||||
<rfc822;glkwg-linux-wireless@m.gmane.org>);
|
||||
Wed, 18 Jan 2012 08:10:29 -0500
|
||||
Original-Received: from he.sipsolutions.net ([78.46.109.217]:45023 "EHLO
|
||||
sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1754365Ab2ARNK2 (ORCPT
|
||||
<rfc822;linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
|
||||
Wed, 18 Jan 2012 08:10:28 -0500
|
||||
Original-Received: by sipsolutions.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
|
||||
(Exim 4.77)
|
||||
(envelope-from <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>)
|
||||
id 1RnVHW-0004hf-Lx; Wed, 18 Jan 2012 14:10:26 +0100
|
||||
X-Mailer: Evolution 2.30.3
|
||||
Original-Sender: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-wireless.vger.kernel.org>
|
||||
X-Mailing-List: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
|
||||
Xref: news.gmane.org gmane.linux.kernel.wireless.general:84095
|
||||
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel.wireless.general/84095>
|
||||
|
||||
From: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
|
||||
Subject: [PATCH 4/8] mac80211: fix work removal on deauth request
|
||||
|
||||
When deauth is requested while an auth or assoc
|
||||
work item is in progress, we currently delete it
|
||||
|
@ -69,17 +25,20 @@ in cfg80211. This fix isn't very clean, but that
|
|||
seems acceptable since I have patches pending to
|
||||
remove this code completely.
|
||||
|
||||
Cc: stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
|
||||
Reported-by: Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
Tested-by: Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
|
||||
Signed-off-by: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Pontus Fuchs <pontus.fuchs@gmail.com>
|
||||
Tested-by: Pontus Fuchs <pontus.fuchs@gmail.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/mlme.c | 38 +++++++++++++++++++++++++++-----------
|
||||
1 file changed, 27 insertions(+), 11 deletions(-)
|
||||
1 files changed, 27 insertions(+), 11 deletions(-)
|
||||
|
||||
--- a/net/mac80211/mlme.c 2012-01-18 14:04:33.000000000 +0100
|
||||
+++ b/net/mac80211/mlme.c 2012-01-18 14:04:34.000000000 +0100
|
||||
@@ -2750,7 +2750,6 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
|
||||
index ecb4c84..295be92 100644
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -2750,7 +2750,6 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
||||
{
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
|
@ -87,7 +46,7 @@ Signed-off-by: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.
|
|||
u8 bssid[ETH_ALEN];
|
||||
bool assoc_bss = false;
|
||||
|
||||
@@ -2763,30 +2762,47 @@ int ieee80211_mgd_deauth(struct ieee8021
|
||||
@@ -2763,30 +2762,47 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
||||
assoc_bss = true;
|
||||
} else {
|
||||
bool not_auth_yet = false;
|
||||
|
@ -145,10 +104,6 @@ Signed-off-by: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.
|
|||
/*
|
||||
* If somebody requests authentication and we haven't
|
||||
* sent out an auth frame yet there's no need to send
|
||||
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
|
||||
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
--
|
||||
1.7.4.4
|
||||
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
From 405385f8ce7a2ed8f82e216d88b5282142e1288b Mon Sep 17 00:00:00 2001
|
||||
From: Eliad Peller <eliad@wizery.com>
|
||||
Date: Wed, 11 Jan 2012 13:11:50 +0200
|
||||
Subject: [PATCH 7/8] mac80211: set bss_conf.idle when vif is connected
|
||||
|
||||
__ieee80211_recalc_idle() iterates through the vifs,
|
||||
sets bss_conf.idle = true if they are disconnected,
|
||||
and increases "count" if they are not (which later
|
||||
gets evaluated in order to determine whether the
|
||||
device is idle).
|
||||
|
||||
However, the loop doesn't set bss_conf.idle = false
|
||||
(along with increasing "count"), causing the device
|
||||
idle state and the vif idle state to get out of sync
|
||||
in some cases.
|
||||
|
||||
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/iface.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
|
||||
index e47768c..01a21c2 100644
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1314,6 +1314,7 @@ u32 __ieee80211_recalc_idle(struct ieee80211_local *local)
|
||||
continue;
|
||||
}
|
||||
/* count everything else */
|
||||
+ sdata->vif.bss_conf.idle = false;
|
||||
count++;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From ba1960257c5980f9b58057995ce3394bd8e48ca3 Mon Sep 17 00:00:00 2001
|
||||
From: Eliad Peller <eliad@wizery.com>
|
||||
Date: Tue, 10 Jan 2012 15:19:54 +0200
|
||||
Subject: [PATCH 6/8] mac80211: update oper_channel on ibss join
|
||||
|
||||
Commit 13c40c5 ("mac80211: Add HT operation modes for IBSS") broke
|
||||
ibss operation by mistakenly removing the local->oper_channel
|
||||
update (causing ibss to start on the wrong channel). fix it.
|
||||
|
||||
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
||||
Acked-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/ibss.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
|
||||
index b3d76b7..a464396 100644
|
||||
--- a/net/mac80211/ibss.c
|
||||
+++ b/net/mac80211/ibss.c
|
||||
@@ -106,6 +106,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0;
|
||||
|
||||
+ local->oper_channel = chan;
|
||||
channel_type = ifibss->channel_type;
|
||||
if (channel_type > NL80211_CHAN_HT20 &&
|
||||
!cfg80211_can_beacon_sec_chan(local->hw.wiphy, chan, channel_type))
|
||||
--
|
||||
1.7.4.4
|
||||
|
Loading…
Reference in New Issue