From: Maxim Levitsky <maximlevitsky@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: reinette chatre <reinette.chatre@intel.com>,
iwlwifi maling list <ipw3945-devel@lists.sourceforge.net>,
linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [BUG] scans can still hang with -EBUSY on iwl3945
Date: Mon, 04 May 2009 00:46:03 +0300 [thread overview]
Message-ID: <1241387163.10486.6.camel@maxim-laptop> (raw)
In-Reply-To: <1241374060.13562.37.camel@johannes.local>
[-- Attachment #1: Type: text/plain, Size: 942 bytes --]
On Sun, 2009-05-03 at 20:07 +0200, Johannes Berg wrote:
> On Sat, 2009-05-02 at 04:32 +0300, Maxim Levitsky wrote:
>
> > > * iwlwifi.git - very close to current head, yesterday HEAD
> > > * disable_hw_scan=1 - this bug is present regardless of this setting,
> > > yet this rules out firmware interactions during rfkill.
>
> Are you absolutely sure this also happens with disable_hw_scan=1? That
> seems rather strange. Can you please also put a printk into
> net/wireless/scan.c:cfg80211_scan_done, and provide separate logs w/ and
> w/o disable_hw_scan=1.
>
> johannes
Yes, sure
For record I use iwlwifi.git commit
5a94b6d38100b7056a5a347e5c51359d924d305d
Logs attached.
This bug can be reliably reproduced, happens every 5~10 times when I
turn rfkill on/off, but today again this happened after resume from
disk.
Sorry for misleading MAC80211, I noticed that long ago, but this was for
debugging only.
Current diff attached too.
[-- Attachment #2: scanlog --]
[-- Type: text/plain, Size: 5616 bytes --]
maxim@maxim-laptop:~$ cat /sys/module/iwl3945/parameters/disable_hw_scan
1
May 4 00:28:48 maxim-laptop kernel: [ 495.686773] iwl3945 0000:06:00.0: Radio Frequency Kill Switch is On:
May 4 00:28:48 maxim-laptop kernel: [ 495.686778] Kill switch must be turned off for wireless networking to work.
May 4 00:28:49 maxim-laptop kernel: [ 496.376281] iwl3945 0000:06:00.0: Error sending REPLY_LEDS_CMD: enqueue_hcmd failed: -5
May 4 00:28:49 maxim-laptop kernel: [ 496.440209] iwl3945 0000:06:00.0: Error sending REPLY_RXON: enqueue_hcmd failed: -5
May 4 00:28:49 maxim-laptop kernel: [ 496.440216] iwl3945 0000:06:00.0: Error clearing ASSOC_MSK on current configuration (-5).
May 4 00:28:49 maxim-laptop kernel: [ 496.440226] wlan0: authenticate with AP 00:1b:9e:d8:77:02
May 4 00:28:49 maxim-laptop kernel: [ 496.561097] cfg80211: scan requested
May 4 00:28:49 maxim-laptop kernel: [ 496.561105] __ieee80211_start_scan: scan requested
May 4 00:28:49 maxim-laptop kernel: [ 496.680161] wlan0: deauthenticating by local choice (reason=3)
May 4 00:28:56 maxim-laptop kernel: [ 503.222373] Registered led device: iwl-phy0::radio
May 4 00:28:56 maxim-laptop kernel: [ 503.222416] Registered led device: iwl-phy0::assoc
May 4 00:28:56 maxim-laptop kernel: [ 503.222449] Registered led device: iwl-phy0::RX
May 4 00:28:56 maxim-laptop kernel: [ 503.222483] Registered led device: iwl-phy0::TX
May 4 00:28:56 maxim-laptop kernel: [ 503.300956] wlan0: direct probe to AP 00:21:63:76:b3:a4 try 1
May 4 00:28:56 maxim-laptop kernel: [ 503.306274] wlan0 direct probe responded
May 4 00:28:56 maxim-laptop kernel: [ 503.306282] wlan0: authenticate with AP 00:21:63:76:b3:a4
May 4 00:28:56 maxim-laptop kernel: [ 503.309830] wlan0: authenticated
May 4 00:28:56 maxim-laptop kernel: [ 503.309838] wlan0: associate with AP 00:21:63:76:b3:a4
May 4 00:28:56 maxim-laptop kernel: [ 503.331597] wlan0: RX AssocResp from 00:21:63:76:b3:a4 (capab=0x401 status=0 aid=2)
May 4 00:28:56 maxim-laptop kernel: [ 503.331604] wlan0: associated
May 4 00:28:56 maxim-laptop kernel: [ 503.376487] wlan0: disassociating by local choice (reason=3)
May 4 00:28:56 maxim-laptop kernel: [ 503.466026] wlan0: authenticate with AP 00:21:63:76:b3:a4
May 4 00:28:56 maxim-laptop kernel: [ 503.466121] cfg80211: scan requested
May 4 00:28:56 maxim-laptop kernel: [ 503.466126] cfg80211: can't scan, already scanning
May 4 00:28:56 maxim-laptop kernel: [ 503.470264] wlan0: authenticated
May 4 00:28:56 maxim-laptop kernel: [ 503.470271] wlan0: associate with AP 00:21:63:76:b3:a4
May 4 00:28:56 maxim-laptop kernel: [ 503.471184] wlan0: authenticated
May 4 00:28:56 maxim-laptop kernel: [ 503.471188] wlan0: associate with AP 00:21:63:76:b3:a4
May 4 00:29:17 maxim-laptop kernel: [ 524.167149] cfg80211: scan requested
May 4 00:29:17 maxim-laptop kernel: [ 524.167156] cfg80211: can't scan, already scanning
---------------------------------------------------------------------------------------------------------------------------------------------
maxim@maxim-laptop:~$ cat /sys/module/iwl3945/parameters/disable_hw_scan
0
May 4 00:33:58 maxim-laptop kernel: [ 805.657465] iwl3945 0000:06:00.0: Radio Frequency Kill Switch is On:
May 4 00:33:58 maxim-laptop kernel: [ 805.657471] Kill switch must be turned off for wireless networking to work.
May 4 00:34:04 maxim-laptop kernel: [ 811.173430] iwl3945 0000:06:00.0: Error sending REPLY_RXON: enqueue_hcmd failed: -5
May 4 00:34:04 maxim-laptop kernel: [ 811.173438] iwl3945 0000:06:00.0: Error setting new configuration (-5).
May 4 00:34:04 maxim-laptop kernel: [ 811.173450] wlan0: direct probe to AP 00:21:63:4c:41:34 try 1
May 4 00:34:04 maxim-laptop kernel: [ 811.252620] wlan0: deauthenticating by local choice (reason=3)
May 4 00:34:17 maxim-laptop kernel: [ 824.212764] Registered led device: iwl-phy0::radio
May 4 00:34:17 maxim-laptop kernel: [ 824.212845] Registered led device: iwl-phy0::assoc
May 4 00:34:17 maxim-laptop kernel: [ 824.212879] Registered led device: iwl-phy0::RX
May 4 00:34:17 maxim-laptop kernel: [ 824.212910] Registered led device: iwl-phy0::TX
May 4 00:34:17 maxim-laptop kernel: [ 824.384165] wlan0: direct probe to AP 00:21:63:4c:41:34 try 1
May 4 00:34:17 maxim-laptop kernel: [ 824.475392] cfg80211: scan requested
May 4 00:34:17 maxim-laptop kernel: [ 824.475401] __ieee80211_start_scan: scan requested
May 4 00:34:17 maxim-laptop kernel: [ 824.475627] cfg80211: scan requested
May 4 00:34:17 maxim-laptop kernel: [ 824.475632] cfg80211: can't scan, already scanning
May 4 00:34:17 maxim-laptop kernel: [ 824.582579] wlan0: direct probe to AP 00:21:63:4c:41:34 try 2
May 4 00:34:17 maxim-laptop kernel: [ 824.586617] wlan0 direct probe responded
May 4 00:34:17 maxim-laptop kernel: [ 824.586622] wlan0: authenticate with AP 00:21:63:4c:41:34
May 4 00:34:17 maxim-laptop kernel: [ 824.590000] wlan0: authenticated
May 4 00:34:17 maxim-laptop kernel: [ 824.590005] wlan0: associate with AP 00:21:63:4c:41:34
May 4 00:34:17 maxim-laptop kernel: [ 824.592160] wlan0: RX AssocResp from 00:21:63:4c:41:34 (capab=0x401 status=0 aid=1)
May 4 00:34:17 maxim-laptop kernel: [ 824.592165] wlan0: associated
May 4 00:34:17 maxim-laptop kernel: [ 824.595337] wlan0: disassociating by local choice (reason=3)
May 4 00:34:17 maxim-laptop kernel: [ 825.010593] __ieee80211_start_scan: scan requested
May 4 00:34:38 maxim-laptop kernel: [ 845.170857] cfg80211: scan requested
May 4 00:34:38 maxim-laptop kernel: [ 845.170865] cfg80211: can't scan, already scanning
[-- Attachment #3: test_patch.diff --]
[-- Type: text/x-patch, Size: 2381 bytes --]
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 127bd54..47969d5 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -276,6 +276,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
struct ieee80211_sub_if_data *sdata;
bool was_hw_scan;
+ printk("ieee80211_scan_completed: aborted=%i\n", aborted);
mutex_lock(&local->scan_mtx);
if (WARN_ON(!local->hw_scanning && !local->sw_scanning)) {
@@ -354,6 +355,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
ieee80211_mlme_notify_scan_completed(local);
ieee80211_ibss_notify_scan_completed(local);
ieee80211_mesh_notify_scan_completed(local);
+ printk("ieee80211_scan_completed: exit\n");
}
EXPORT_SYMBOL(ieee80211_scan_completed);
@@ -424,8 +426,11 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
int rc;
- if (local->scan_req)
+ printk("__ieee80211_start_scan: scan requested\n");
+ if (local->scan_req) {
+ printk("__ieee80211_start_scan: scan failed - busy\n");
return -EBUSY;
+ }
if (local->ops->hw_scan) {
u8 *ies;
@@ -491,6 +496,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
local->scan_sdata = NULL;
}
+ printk("__ieee80211_start_scan: scan requested OK\n");
return rc;
}
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 10b4887..88602fe 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -23,6 +23,7 @@ void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted)
#ifdef CONFIG_WIRELESS_EXT
union iwreq_data wrqu;
#endif
+ printk("cfg80211_scan_done: scan done. aborted=%d\n", aborted);
dev = dev_get_by_index(&init_net, request->ifidx);
if (!dev)
@@ -585,11 +586,14 @@ int cfg80211_wext_siwscan(struct net_device *dev,
return -ENETDOWN;
rdev = cfg80211_get_dev_from_ifindex(dev->ifindex);
+
+ printk("cfg80211: scan requested\n");
if (IS_ERR(rdev))
return PTR_ERR(rdev);
if (rdev->scan_req) {
+ printk("cfg80211: can't scan, already scanning\n");
err = -EBUSY;
goto out;
}
@@ -644,6 +648,7 @@ int cfg80211_wext_siwscan(struct net_device *dev,
rdev->scan_req = creq;
err = rdev->ops->scan(wiphy, dev, creq);
if (err) {
+ printk("cfg80211: scan failed. error=%d\n", err);
rdev->scan_req = NULL;
kfree(creq);
}
next prev parent reply other threads:[~2009-05-03 21:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-01 12:00 [BUG] scans can still hang with -EBUSY on iwl3945 Maxim Levitsky
2009-05-01 15:58 ` reinette chatre
2009-05-01 20:13 ` Maxim Levitsky
2009-05-02 1:32 ` Maxim Levitsky
2009-05-03 18:05 ` Johannes Berg
2009-05-03 18:07 ` Johannes Berg
2009-05-03 21:46 ` Maxim Levitsky [this message]
2009-05-04 7:19 ` Johannes Berg
2009-05-12 20:54 ` Maxim Levitsky
2009-05-12 23:10 ` Maxim Levitsky
2009-05-12 23:12 ` Johannes Berg
2009-05-12 23:14 ` Maxim Levitsky
2009-05-12 23:20 ` Johannes Berg
2009-05-13 0:50 ` Maxim Levitsky
2009-05-13 8:29 ` Johannes Berg
2009-05-14 21:14 ` reinette chatre
2009-05-14 21:14 ` Johannes Berg
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=1241387163.10486.6.camel@maxim-laptop \
--to=maximlevitsky@gmail.com \
--cc=ipw3945-devel@lists.sourceforge.net \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=reinette.chatre@intel.com \
/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