From: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
kernel-team@lists.ubuntu.com
Cc: Stanislaw Gruszka <sgruszka@redhat.com>,
Johannes Berg <johannes.berg@intel.com>,
Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Subject: [PATCH 05/74] mac80211: fix ibss scanning
Date: Thu, 24 Jan 2013 01:26:17 -0200 [thread overview]
Message-ID: <1358998046-613-6-git-send-email-herton.krzesinski@canonical.com> (raw)
In-Reply-To: <1358998046-613-1-git-send-email-herton.krzesinski@canonical.com>
3.5.7.4 -stable review patch. If anyone has any objections, please let me know.
------------------
From: Stanislaw Gruszka <sgruszka@redhat.com>
commit 34bcf71502413f8903ade93746f2d0f04b937a78 upstream.
Do not scan on no-IBSS and disabled channels in IBSS mode. Doing this
can trigger Microcode errors on iwlwifi and iwlegacy drivers.
Also rename ieee80211_request_internal_scan() function since it is only
used in IBSS mode and simplify calling it from ieee80211_sta_find_ibss().
This patch should address:
https://bugzilla.redhat.com/show_bug.cgi?id=883414
https://bugzilla.kernel.org/show_bug.cgi?id=49411
Reported-by: Jesse Kahtava <jesse_kahtava@f-m.fm>
Reported-by: Mikko Rapeli <mikko.rapeli@iki.fi>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[ herton: adjust context ]
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
---
net/mac80211/ibss.c | 9 ++++-----
net/mac80211/ieee80211_i.h | 6 +++---
net/mac80211/scan.c | 34 ++++++++++++++++++++++++----------
3 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 980b4f4..374d5b4 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -665,8 +665,8 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata)
printk(KERN_DEBUG "%s: No active IBSS STAs - trying to scan for other "
"IBSS networks with same SSID (merge)\n", sdata->name);
- ieee80211_request_internal_scan(sdata,
- ifibss->ssid, ifibss->ssid_len, NULL);
+ ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len,
+ NULL);
}
static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)
@@ -773,9 +773,8 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
printk(KERN_DEBUG "%s: Trigger new scan to find an IBSS to "
"join\n", sdata->name);
- ieee80211_request_internal_scan(sdata,
- ifibss->ssid, ifibss->ssid_len,
- ifibss->fixed_channel ? ifibss->channel : NULL);
+ ieee80211_request_ibss_scan(sdata, ifibss->ssid,
+ ifibss->ssid_len, chan);
} else {
int interval = IEEE80211_SCAN_INTERVAL;
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 98dab42..d0b1c56 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1257,9 +1257,9 @@ void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
/* scan/BSS handling */
void ieee80211_scan_work(struct work_struct *work);
-int ieee80211_request_internal_scan(struct ieee80211_sub_if_data *sdata,
- const u8 *ssid, u8 ssid_len,
- struct ieee80211_channel *chan);
+int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
+ const u8 *ssid, u8 ssid_len,
+ struct ieee80211_channel *chan);
int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
struct cfg80211_scan_request *req);
void ieee80211_scan_cancel(struct ieee80211_local *local);
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 169da07..fd973e5 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -817,9 +817,9 @@ int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
return res;
}
-int ieee80211_request_internal_scan(struct ieee80211_sub_if_data *sdata,
- const u8 *ssid, u8 ssid_len,
- struct ieee80211_channel *chan)
+int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
+ const u8 *ssid, u8 ssid_len,
+ struct ieee80211_channel *chan)
{
struct ieee80211_local *local = sdata->local;
int ret = -EBUSY;
@@ -833,22 +833,36 @@ int ieee80211_request_internal_scan(struct ieee80211_sub_if_data *sdata,
/* fill internal scan request */
if (!chan) {
- int i, nchan = 0;
+ int i, max_n;
+ int n_ch = 0;
for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
if (!local->hw.wiphy->bands[band])
continue;
- for (i = 0;
- i < local->hw.wiphy->bands[band]->n_channels;
- i++) {
- local->int_scan_req->channels[nchan] =
+
+ max_n = local->hw.wiphy->bands[band]->n_channels;
+ for (i = 0; i < max_n; i++) {
+ struct ieee80211_channel *tmp_ch =
&local->hw.wiphy->bands[band]->channels[i];
- nchan++;
+
+ if (tmp_ch->flags & (IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_DISABLED))
+ continue;
+
+ local->int_scan_req->channels[n_ch] = tmp_ch;
+ n_ch++;
}
}
- local->int_scan_req->n_channels = nchan;
+ if (WARN_ON_ONCE(n_ch == 0))
+ goto unlock;
+
+ local->int_scan_req->n_channels = n_ch;
} else {
+ if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_DISABLED)))
+ goto unlock;
+
local->int_scan_req->channels[0] = chan;
local->int_scan_req->n_channels = 1;
}
--
1.7.9.5
next prev parent reply other threads:[~2013-01-24 3:28 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-24 3:26 [ 3.5.y.z extended stable ] Linux 3.5.7.4 stable review Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 01/74] usb: gadget: dummy: fix enumeration with g_multi Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 02/74] usb: musb: core: print new line in the driver banner again Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 03/74] ASoC: pcm: allow backend hardware to be freed in pause state Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 04/74] ASoC: wm2200: Fix setting dai format in wm2200_set_fmt Herton Ronaldo Krzesinski
2013-01-24 3:26 ` Herton Ronaldo Krzesinski [this message]
2013-01-24 3:26 ` [PATCH 06/74] mac80211: use del_timer_sync for final sta cleanup timer deletion Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 07/74] mac80211: fix dtim_period in hidden SSID AP association Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 08/74] xhci: Handle HS bulk/ctrl endpoints that don't NAK Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 09/74] USB: Handle auto-transition from hot to warm reset Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 10/74] USB: Ignore xHCI Reset Device status Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 11/74] USB: Allow USB 3.0 ports to be disabled Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 12/74] USB: Increase reset timeout Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 13/74] USB: Ignore port state until reset completes Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 14/74] USB: Handle warm reset failure on empty port Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 15/74] xhci: Avoid "dead ports", add roothub port polling Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 16/74] ASoC: wm2200: Remove DSP B and left justified AIF modes Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 17/74] ASoC: wm5100: Remove DSP B and left justified formats Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 18/74] mwifiex: check wait_event_interruptible return value Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 19/74] ASoC: wm2000: Fix sense of speech clarity enable Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 20/74] drm/i915; Only increment the user-pin-count after successfully pinning the bo Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 21/74] samsung-laptop: Add quirk for broken acpi_video backlight on N250P Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 22/74] sony-laptop: fix SNC buffer calls when SN06 returns Integers Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 23/74] staging: r8712u: Add new device ID Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 24/74] b43: Fix firmware loading when driver is built into the kernel Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 25/74] staging: speakup: avoid out-of-range access in synth_init() Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 26/74] staging: speakup: avoid out-of-range access in synth_add() Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 27/74] staging: comedi: fix minimum AO period for NI 625x and NI 628x Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 28/74] staging: comedi: prevent auto-unconfig of manually configured devices Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 29/74] staging: comedi: comedi_test: fix race when cancelling command Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 30/74] regulator: max8997: Use uV in voltage_map_desc Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 31/74] regulator: max8998: Convert to regulator_list_voltage_linear() Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 32/74] regulator: max8998: Convert to set_voltage_sel and regulator_map_voltage_linear Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 33/74] regulator: max8998: Use uV in voltage_map_desc Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 34/74] ALSA: pxa27x: fix ac97 cold reset Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 35/74] ALSA: pxa27x: fix ac97 warm reset Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 36/74] SUNRPC: Ensure we release the socket write lock if the rpc_task exits early Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 37/74] target: use correct sense code for LUN communication failure Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 38/74] Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs" Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 39/74] regulator: max8998: Ensure enough delay time for max8998_set_voltage_buck_time_sel Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 40/74] radeon/kms: force rn50 chip to always report connected on analog output Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 41/74] tcm_fc: Do not indicate retry capability to initiators Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 42/74] tcm_fc: Do not report target role when target is not defined Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 43/74] target: Fix use-after-free in LUN RESET handling Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 44/74] target: Release se_cmd when LUN lookup fails for TMR Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 45/74] sh: Fix FDPIC binary loader Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 46/74] USB: option: Add new MEDIATEK PID support Herton Ronaldo Krzesinski
2013-01-24 3:26 ` [PATCH 47/74] USB: option: blacklist network interface on ZTE MF880 Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 48/74] USB: option: add Telekom Speedstick LTE II Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 49/74] USB: option: add Nexpring NP10T terminal id Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 50/74] Add CDC-ACM support for the CX93010-2x UCMxx USB Modem Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 51/74] USB: cdc-acm: Add support for "PSC Scanning, Magellan 800i" Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 52/74] USB: hub: handle claim of enabled remote wakeup after reset Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 53/74] mm: compaction: fix echo 1 > compact_memory return error issue Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 54/74] mm: use aligned zone start for pfn_to_bitidx calculation Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 55/74] mm: bootmem: fix free_all_bootmem_core() with odd bitmap alignment Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 56/74] audit: create explicit AUDIT_SECCOMP event type Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 57/74] USB: Add device quirk for Microsoft VX700 webcam Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 58/74] drm/nouveau: fix blank LVDS screen regression on pre-nv50 cards Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 59/74] drm/nv17-50: restore fence buffer on resume Herton Ronaldo Krzesinski
2013-01-24 17:36 ` Marcin Slusarz
2013-01-24 17:52 ` Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 60/74] usb: ftdi_sio: Crucible Technologies COMET Caller ID - pid added Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 61/74] udldrmfb: Fix EDID not working with monitors with EDID extension blocks Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 62/74] udldrmfb: udl_get_edid: usb_control_msg buffer must not be on the stack Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 63/74] udldrmfb: udl_get_edid: drop unneeded i-- Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 64/74] s390/time: fix sched_clock() overflow Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 65/74] rt2800usb: Add support for 2001:3c1e (D-Link DWA-125 rev B1) USB Wi-Fi adapter Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 66/74] drm/radeon: fix NULL pointer dereference in UMS mode Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 67/74] drm/radeon: fix a bogus kfree Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 68/74] ALSA: usb - fix race in creation of M-Audio Fast track pro driver Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 69/74] x86/Sandy Bridge: reserve pages when integrated graphics is present Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 70/74] USB: io_ti: Fix NULL dereference in chase_port() Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 71/74] intel-iommu: Prevent devices with RMRRs from being placed into SI Domain Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 72/74] igb: release already assigned MSI-X interrupts if setup fails Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 73/74] usb: chipidea: Allow disabling streaming not only in udc mode Herton Ronaldo Krzesinski
2013-01-24 3:27 ` [PATCH 74/74] [SCSI] sd: Reshuffle init_sd to avoid crash Herton Ronaldo Krzesinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1358998046-613-6-git-send-email-herton.krzesinski@canonical.com \
--to=herton.krzesinski@canonical.com \
--cc=johannes.berg@intel.com \
--cc=kernel-team@lists.ubuntu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sgruszka@redhat.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®