All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mac80211: fix suspend/resume races with unregister hw
@ 2011-08-12 12:00 Stanislaw Gruszka
  2011-08-25  5:06 ` Johannes Berg
       [not found] ` <d9f6472975e34cb294831e32c8ce2346-mfwitten@gmail.com>
  0 siblings, 2 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2011-08-12 12:00 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Stanislaw Gruszka, stable

Do not call ->suspend, ->resume methods after we unregister wiphy. Also
delete sta_clanup timer after we finish wiphy unregister to avoid this:

WARNING: at lib/debugobjects.c:262 debug_print_object+0x85/0xa0()
Hardware name: 6369CTO
ODEBUG: free active (active state 0) object type: timer_list hint: sta_info_cleanup+0x0/0x180 [mac80211]
Modules linked in: aes_i586 aes_generic fuse bridge stp llc autofs4 sunrpc cpufreq_ondemand acpi_cpufreq mperf ext2 dm_mod uinput thinkpad_acpi hwmon sg arc4 rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib mac80211 cfg80211 i2c_i801 iTCO_wdt iTCO_vendor_support e1000e ext4 mbcache jbd2 sd_mod crc_t10dif sr_mod cdrom yenta_socket ahci libahci pata_acpi ata_generic ata_piix i915 drm_kms_helper drm i2c_algo_bit video [last unloaded: microcode]
Pid: 5663, comm: pm-hibernate Not tainted 3.1.0-rc1-wl+ #19
Call Trace:
 [<c0454cfd>] warn_slowpath_common+0x6d/0xa0
 [<c05e05e5>] ? debug_print_object+0x85/0xa0
 [<c05e05e5>] ? debug_print_object+0x85/0xa0
 [<c0454dae>] warn_slowpath_fmt+0x2e/0x30
 [<c05e05e5>] debug_print_object+0x85/0xa0
 [<f8a808e0>] ? sta_info_alloc+0x1a0/0x1a0 [mac80211]
 [<c05e0bd2>] debug_check_no_obj_freed+0xe2/0x180
 [<c051175b>] kfree+0x8b/0x150
 [<f8a126ae>] cfg80211_dev_free+0x7e/0x90 [cfg80211]
 [<f8a13afd>] wiphy_dev_release+0xd/0x10 [cfg80211]
 [<c068d959>] device_release+0x19/0x80
 [<c05d06ba>] kobject_release+0x7a/0x1c0
 [<c07646a8>] ? rtnl_unlock+0x8/0x10
 [<f8a13adb>] ? wiphy_resume+0x6b/0x80 [cfg80211]
 [<c05d0640>] ? kobject_del+0x30/0x30
 [<c05d1a6d>] kref_put+0x2d/0x60
 [<c05d056d>] kobject_put+0x1d/0x50
 [<c08015f4>] ? mutex_lock+0x14/0x40
 [<c068d60f>] put_device+0xf/0x20
 [<c069716a>] dpm_resume+0xca/0x160
 [<c04912bd>] hibernation_snapshot+0xcd/0x260
 [<c04903df>] ? freeze_processes+0x3f/0x90
 [<c049151b>] hibernate+0xcb/0x1e0
 [<c048fdc0>] ? pm_async_store+0x40/0x40
 [<c048fe60>] state_store+0xa0/0xb0
 [<c048fdc0>] ? pm_async_store+0x40/0x40
 [<c05d0200>] kobj_attr_store+0x20/0x30
 [<c0575ea4>] sysfs_write_file+0x94/0xf0
 [<c051e26a>] vfs_write+0x9a/0x160
 [<c0575e10>] ? sysfs_open_file+0x200/0x200
 [<c051e3fd>] sys_write+0x3d/0x70
 [<c080959f>] sysenter_do_call+0x12/0x28

Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 include/net/cfg80211.h |    3 +++
 net/mac80211/main.c    |    2 +-
 net/wireless/core.c    |    7 +++++++
 net/wireless/sysfs.c   |    6 ++++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index ab12440..97db267 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1875,6 +1875,9 @@ struct wiphy {
 	 * you need use set_wiphy_dev() (see below) */
 	struct device dev;
 
+	/* protects ->resume, ->suspend sysfs callbacks against unregister hw */
+	bool registered;
+
 	/* dir in debugfs: ieee80211/<wiphyname> */
 	struct dentry *debugfsdir;
 
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 104fdd9..a5809a1 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1013,7 +1013,6 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
 	cancel_work_sync(&local->reconfig_filter);
 
 	ieee80211_clear_tx_pending(local);
-	sta_info_stop(local);
 	rate_control_deinitialize(local);
 
 	if (skb_queue_len(&local->skb_queue) ||
@@ -1025,6 +1024,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
 
 	destroy_workqueue(local->workqueue);
 	wiphy_unregister(local->hw.wiphy);
+	sta_info_stop(local);
 	ieee80211_wep_free(local);
 	ieee80211_led_exit(local);
 	kfree(local->int_scan_req);
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 645437c..c148651 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -616,6 +616,9 @@ int wiphy_register(struct wiphy *wiphy)
 	if (res)
 		goto out_rm_dev;
 
+	rtnl_lock();
+	rdev->wiphy.registered = true;
+	rtnl_unlock();
 	return 0;
 
 out_rm_dev:
@@ -647,6 +650,10 @@ void wiphy_unregister(struct wiphy *wiphy)
 {
 	struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);
 
+	rtnl_lock();
+	rdev->wiphy.registered = false;
+	rtnl_unlock();
+
 	rfkill_unregister(rdev->rfkill);
 
 	/* protect the device list */
diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c
index c6e4ca6..ff57459 100644
--- a/net/wireless/sysfs.c
+++ b/net/wireless/sysfs.c
@@ -93,7 +93,8 @@ static int wiphy_suspend(struct device *dev, pm_message_t state)
 
 	if (rdev->ops->suspend) {
 		rtnl_lock();
-		ret = rdev->ops->suspend(&rdev->wiphy, rdev->wowlan);
+		if (rdev->wiphy.registered)
+			ret = rdev->ops->suspend(&rdev->wiphy, rdev->wowlan);
 		rtnl_unlock();
 	}
 
@@ -112,7 +113,8 @@ static int wiphy_resume(struct device *dev)
 
 	if (rdev->ops->resume) {
 		rtnl_lock();
-		ret = rdev->ops->resume(&rdev->wiphy);
+		if (rdev->wiphy.registered)
+			ret = rdev->ops->resume(&rdev->wiphy);
 		rtnl_unlock();
 	}
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] mac80211: fix suspend/resume races with unregister hw
  2011-08-12 12:00 [PATCH] mac80211: fix suspend/resume races with unregister hw Stanislaw Gruszka
@ 2011-08-25  5:06 ` Johannes Berg
  2011-08-25 15:07   ` [PATCH] cfg80211: document wiphy->registered Stanislaw Gruszka
       [not found] ` <d9f6472975e34cb294831e32c8ce2346-mfwitten@gmail.com>
  1 sibling, 1 reply; 8+ messages in thread
From: Johannes Berg @ 2011-08-25  5:06 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: linux-wireless, stable

On Fri, 2011-08-12 at 14:00 +0200, Stanislaw Gruszka wrote:

> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
> index ab12440..97db267 100644
> --- a/include/net/cfg80211.h
> +++ b/include/net/cfg80211.h
> @@ -1875,6 +1875,9 @@ struct wiphy {
>  	 * you need use set_wiphy_dev() (see below) */
>  	struct device dev;
>  
> +	/* protects ->resume, ->suspend sysfs callbacks against unregister hw */
> +	bool registered;

Warning(/home/wireless/wireless-testing//include/net/cfg80211.h:1927):
No description found for parameter 'registered'

please fix.

johannes


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] cfg80211: document wiphy->registered
  2011-08-25  5:06 ` Johannes Berg
@ 2011-08-25 15:07   ` Stanislaw Gruszka
  2011-08-25 16:24     ` Johannes Berg
  0 siblings, 1 reply; 8+ messages in thread
From: Stanislaw Gruszka @ 2011-08-25 15:07 UTC (permalink / raw)
  To: Johannes Berg, John W. Linville; +Cc: linux-wireless

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 include/net/cfg80211.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 791dd10..f226552 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1784,6 +1784,7 @@ struct wiphy_wowlan_support {
  * @debugfsdir: debugfs directory used for this wiphy, will be renamed
  *	automatically on wiphy renames
  * @dev: (virtual) struct device for this wiphy
+ * @registered: helps synchronize suspend/resume with wiphy unregister
  * @wext: wireless extension handlers
  * @priv: driver private data (sized according to wiphy_new() parameter)
  * @interface_modes: bitmask of interfaces types valid for this wiphy,
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] cfg80211: document wiphy->registered
  2011-08-25 15:07   ` [PATCH] cfg80211: document wiphy->registered Stanislaw Gruszka
@ 2011-08-25 16:24     ` Johannes Berg
  0 siblings, 0 replies; 8+ messages in thread
From: Johannes Berg @ 2011-08-25 16:24 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: John W. Linville, linux-wireless

On Thu, 25 Aug 2011 17:07:24 +0200, Stanislaw Gruszka wrote:
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>

Thanks!

johannes

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] mac80211: fix suspend/resume races with unregister hw
       [not found] ` <d9f6472975e34cb294831e32c8ce2346-mfwitten@gmail.com>
@ 2011-09-08  6:44   ` Stanislaw Gruszka
       [not found]     ` <CAMOZ1BvsPok-AZVCwKnv0hWWXyV+np+nARjGRqwqsvC-du_GAw@mail.gmail.com>
  0 siblings, 1 reply; 8+ messages in thread
From: Stanislaw Gruszka @ 2011-09-08  6:44 UTC (permalink / raw)
  To: Michael Witten; +Cc: Johannes Berg, John W. Linville, linux-wireless, stable

[-- Attachment #1: Type: text/plain, Size: 1335 bytes --]

On Wed, Sep 07, 2011 at 09:50:29PM -0000, Michael Witten wrote:
> My boot process is stalling proximate the following messages (after a period
> of time, some other message might show up, but the boot never progresses much
> further):
> 
>   cfg80211: World regulatory domain updated:
>   cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
>   cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
>   cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
>   cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
>   cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
>   cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> 
> I bisected to this patch, namely via the following commit:
>   
>   commit ecb4433550f0620f3d1471ae7099037ede30a91e
>   Author: Stanislaw Gruszka <sgruszka@redhat.com>
>   Date:   Fri Aug 12 14:00:59 2011 +0200

Grr, crap.

> 
> Now, it may be the case that my system startup's scripts are doing something
> funny, as the stall described above occurs after Arch Linux outputs:
> 
>   Waiting for UDev uevents to be processed
> 
> At this point, that's all I know.

What wireless driver are you using? If this is ipw2x00 please try
attached patch.

Thanks
Stanislaw


[-- Attachment #2: ipw2x00_do_not_call_wiphy_register_with_rtnl_lock.patch --]
[-- Type: text/plain, Size: 3871 bytes --]

diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index 3774dd0..ef9ad79 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -1903,15 +1903,17 @@ static void ipw2100_down(struct ipw2100_priv *priv)
 static int ipw2100_net_init(struct net_device *dev)
 {
 	struct ipw2100_priv *priv = libipw_priv(dev);
+
+	return ipw2100_up(priv, 1);
+}
+
+static int ipw2100_wdev_init(struct net_device *dev)
+{
+	struct ipw2100_priv *priv = libipw_priv(dev);
 	const struct libipw_geo *geo = libipw_get_geo(priv->ieee);
 	struct wireless_dev *wdev = &priv->ieee->wdev;
-	int ret;
 	int i;
 
-	ret = ipw2100_up(priv, 1);
-	if (ret)
-		return ret;
-
 	memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);
 
 	/* fill-out priv->ieee->bg_band */
@@ -6350,9 +6352,13 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
 		       "Error calling register_netdev.\n");
 		goto fail;
 	}
+	registered = 1;
+
+	err = ipw2100_wdev_init(dev);
+	if (err)
+		goto fail;
 
 	mutex_lock(&priv->action_mutex);
-	registered = 1;
 
 	IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev));
 
@@ -6389,7 +6395,8 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
 
       fail_unlock:
 	mutex_unlock(&priv->action_mutex);
-
+	wiphy_unregister(priv->ieee->wdev.wiphy);
+	kfree(priv->ieee->bg_band.channels);
       fail:
 	if (dev) {
 		if (registered)
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index 87813c3..6a6d48f 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -11425,16 +11425,23 @@ static void ipw_bg_down(struct work_struct *work)
 /* Called by register_netdev() */
 static int ipw_net_init(struct net_device *dev)
 {
+	int rc = 0;
+	struct ipw_priv *priv = libipw_priv(dev);
+
+	mutex_lock(&priv->mutex);
+	if (ipw_up(priv))
+		rc = -EIO;
+	mutex_unlock(&priv->mutex);
+
+	return rc;
+}
+
+static int ipw_wdev_init(struct net_device *dev)
+{
 	int i, rc = 0;
 	struct ipw_priv *priv = libipw_priv(dev);
 	const struct libipw_geo *geo = libipw_get_geo(priv->ieee);
 	struct wireless_dev *wdev = &priv->ieee->wdev;
-	mutex_lock(&priv->mutex);
-
-	if (ipw_up(priv)) {
-		rc = -EIO;
-		goto out;
-	}
 
 	memcpy(wdev->wiphy->perm_addr, priv->mac_addr, ETH_ALEN);
 
@@ -11519,13 +11526,9 @@ static int ipw_net_init(struct net_device *dev)
 	set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev);
 
 	/* With that information in place, we can now register the wiphy... */
-	if (wiphy_register(wdev->wiphy)) {
+	if (wiphy_register(wdev->wiphy))
 		rc = -EIO;
-		goto out;
-	}
-
 out:
-	mutex_unlock(&priv->mutex);
 	return rc;
 }
 
@@ -11678,7 +11681,6 @@ static int ipw_prom_alloc(struct ipw_priv *priv)
 	if (rc) {
 		free_libipw(priv->prom_net_dev, 1);
 		priv->prom_net_dev = NULL;
-		return rc;
 	}
 
 	return 0;
@@ -11832,14 +11834,23 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
 		goto out_remove_sysfs;
 	}
 
+	err = ipw_wdev_init(net_dev);
+	if (err) {
+		IPW_ERROR("failed to register wireless device\n");
+		goto out_unregister_netdev;
+	}
+
 #ifdef CONFIG_IPW2200_PROMISCUOUS
 	if (rtap_iface) {
 	        err = ipw_prom_alloc(priv);
 		if (err) {
 			IPW_ERROR("Failed to register promiscuous network "
 				  "device (error %d).\n", err);
-			unregister_netdev(priv->net_dev);
-			goto out_remove_sysfs;
+
+			wiphy_unregister(priv->ieee->wdev.wiphy);
+			kfree(priv->ieee->a_band.channels);
+			kfree(priv->ieee->bg_band.channels);
+			goto out_unregister_netdev;
 		}
 	}
 #endif
@@ -11851,6 +11862,8 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
 
 	return 0;
 
+      out_unregister_netdev:
+	unregister_netdev(priv->net_dev);
       out_remove_sysfs:
 	sysfs_remove_group(&pdev->dev.kobj, &ipw_attribute_group);
       out_release_irq:

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] mac80211: fix suspend/resume races with unregister hw
       [not found]     ` <CAMOZ1BvsPok-AZVCwKnv0hWWXyV+np+nARjGRqwqsvC-du_GAw@mail.gmail.com>
@ 2011-09-08 16:26       ` Stanislaw Gruszka
  2011-09-08 16:54         ` Witold Baryluk
       [not found]         ` <CAMOZ1Bs_DesZoyYw6yzC8CdqR3yLgXXpBzxvsEsQ0eX4L6Vw+A@mail.gmail.com>
  0 siblings, 2 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2011-09-08 16:26 UTC (permalink / raw)
  To: Michael Witten
  Cc: Johannes Berg, John W. Linville, linux-wireless, stable, Witold Baryluk

On Thu, Sep 08, 2011 at 04:04:28PM +0000, Michael Witten wrote:
> On Thu, Sep 8, 2011 at 06:44, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> > On Wed, Sep 07, 2011 at 09:50:29PM -0000, Michael Witten wrote:
> >> My boot process is stalling proximate the following messages (after a period
> >> of time, some other message might show up, but the boot never progresses much
> >> further):
> >>
> >>   cfg80211: World regulatory domain updated:
> >>   cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> >>   cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> >>   cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
> >>   cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
> >>   cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> >>   cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> >>
> >> I bisected to this patch, namely via the following commit:
> >>
> >>   commit ecb4433550f0620f3d1471ae7099037ede30a91e
> >>   Author: Stanislaw Gruszka <sgruszka@redhat.com>
> >>   Date:   Fri Aug 12 14:00:59 2011 +0200
> >
> > Grr, crap.
> >
> >>
> >> Now, it may be the case that my system startup's scripts are doing something
> >> funny, as the stall described above occurs after Arch Linux outputs:
> >>
> >>   Waiting for UDev uevents to be processed
> >>
> >> At this point, that's all I know.
> >
> > What wireless driver are you using? If this is ipw2x00 please try
> > attached patch.
> 
> I am indeed using `ipw2200', and your patch seems to fix the problem.
> 
> How did you know what to do?

You are not the first person who hit this bug and did bisection :-/
Witold (CCed) did it. Can you also check if wireless network and rmmod
ipw2x00 works? I did not yet receive that information from Witold
regarding latest patch.

Thanks
Stanislaw


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] mac80211: fix suspend/resume races with unregister hw
  2011-09-08 16:26       ` Stanislaw Gruszka
@ 2011-09-08 16:54         ` Witold Baryluk
       [not found]         ` <CAMOZ1Bs_DesZoyYw6yzC8CdqR3yLgXXpBzxvsEsQ0eX4L6Vw+A@mail.gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Witold Baryluk @ 2011-09-08 16:54 UTC (permalink / raw)
  To: Stanislaw Gruszka
  Cc: Michael Witten, Johannes Berg, John W. Linville, linux-wireless, stable

[-- Attachment #1: Type: text/plain, Size: 2155 bytes --]

On 09-08 18:26, Stanislaw Gruszka wrote:
> On Thu, Sep 08, 2011 at 04:04:28PM +0000, Michael Witten wrote:
> > On Thu, Sep 8, 2011 at 06:44, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> > > On Wed, Sep 07, 2011 at 09:50:29PM -0000, Michael Witten wrote:
> > >> My boot process is stalling proximate the following messages (after a period
> > >> of time, some other message might show up, but the boot never progresses much
> > >> further):
> > >>
> > >>   cfg80211: World regulatory domain updated:
> > >>   cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> > >>   cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> > >>   cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
> > >>   cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
> > >>   cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> > >>   cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
> > >>
> > >> I bisected to this patch, namely via the following commit:
> > >>
> > >>   commit ecb4433550f0620f3d1471ae7099037ede30a91e
> > >>   Author: Stanislaw Gruszka <sgruszka@redhat.com>
> > >>   Date:   Fri Aug 12 14:00:59 2011 +0200
> > >
> > > Grr, crap.
> > >
> > >>
> > >> Now, it may be the case that my system startup's scripts are doing something
> > >> funny, as the stall described above occurs after Arch Linux outputs:
> > >>
> > >>   Waiting for UDev uevents to be processed
> > >>
> > >> At this point, that's all I know.
> > >
> > > What wireless driver are you using? If this is ipw2x00 please try
> > > attached patch.
> > 
> > I am indeed using `ipw2200', and your patch seems to fix the problem.
> > 
> > How did you know what to do?
> 
> You are not the first person who hit this bug and did bisection :-/
> Witold (CCed) did it. Can you also check if wireless network and rmmod
> ipw2x00 works? I did not yet receive that information from Witold
> regarding latest patch.

I'm just checking it (latest patch). Hit some another bug in logfs :)



-- 
Witold Baryluk

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] mac80211: fix suspend/resume races with unregister hw
       [not found]         ` <CAMOZ1Bs_DesZoyYw6yzC8CdqR3yLgXXpBzxvsEsQ0eX4L6Vw+A@mail.gmail.com>
@ 2011-09-08 16:57           ` Witold Baryluk
  0 siblings, 0 replies; 8+ messages in thread
From: Witold Baryluk @ 2011-09-08 16:57 UTC (permalink / raw)
  To: Michael Witten
  Cc: Stanislaw Gruszka, Johannes Berg, John W. Linville,
	linux-wireless, stable

[-- Attachment #1: Type: text/plain, Size: 924 bytes --]

On 09-08 16:41, Michael Witten wrote:
> 
> Interestingly, though, `lsmod' shows the following:
> 
>   Module                  Size  Used by
>   ...
>   ipw2200               109206  0
>   ...
> 
> even when the wireless network is up and running; I would have
> expected the `Used by' column to show that `ipw2200' is being used by
> at least something else; the consequence is that I am able to run
> `rmmod' on `ipw2200' while the wireless network is up and running,
> which seems odd (though it causes no discernible error).

Hi.

I think this was always so. I just checked other system
with vanila 3.0.0 kernel, and it also says "Used by" == 0
I do not remember exactly, but I think it was always saying zero.
You can actually always rmmod ipw220, regardles
whetever network interface is used, opened, up, or whetever.
I guess hot plug is important here.

Regards,
Witek

-- 
Witold Baryluk

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-09-08 23:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-12 12:00 [PATCH] mac80211: fix suspend/resume races with unregister hw Stanislaw Gruszka
2011-08-25  5:06 ` Johannes Berg
2011-08-25 15:07   ` [PATCH] cfg80211: document wiphy->registered Stanislaw Gruszka
2011-08-25 16:24     ` Johannes Berg
     [not found] ` <d9f6472975e34cb294831e32c8ce2346-mfwitten@gmail.com>
2011-09-08  6:44   ` [PATCH] mac80211: fix suspend/resume races with unregister hw Stanislaw Gruszka
     [not found]     ` <CAMOZ1BvsPok-AZVCwKnv0hWWXyV+np+nARjGRqwqsvC-du_GAw@mail.gmail.com>
2011-09-08 16:26       ` Stanislaw Gruszka
2011-09-08 16:54         ` Witold Baryluk
     [not found]         ` <CAMOZ1Bs_DesZoyYw6yzC8CdqR3yLgXXpBzxvsEsQ0eX4L6Vw+A@mail.gmail.com>
2011-09-08 16:57           ` Witold Baryluk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.