Re: zd1211 config operation problem
From: Michael Buesch <hidden>
Date: 2007-09-24 16:42:25
On Sunday 23 September 2007, Michael Wu wrote:
On Sunday 23 September 2007 10:48, Michael Buesch wrote:quoted
The zd1211 driver has a bug in the ieee80211 config callback. It currently unconditionally calls the set_channel() function, whether the device is running or not. This causes a failed bus access, if we set some config while the device is down. The driver must check if the device is running before setting any config on it (usb->initialized?).Hm, that sounds pretty terrible. mac80211 should check if the device was started before trying to run any configure callbacks.
Something like that? Subject: mac80211: Check open_count before calling config callback. Also remove the check for ops->config!=NULL, as it can never be NULL. Signed-off-by: Michael Buesch <redacted> Index: wireless-dev/net/mac80211/ieee80211.c ===================================================================
--- wireless-dev.orig/net/mac80211/ieee80211.c 2007-09-24 18:29:54.000000000 +0200
+++ wireless-dev/net/mac80211/ieee80211.c 2007-09-24 18:36:11.000000000 +0200@@ -722,7 +722,7 @@ int ieee80211_hw_config(struct ieee80211 local->hw.conf.phymode); #endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ - if (local->ops->config) + if (local->open_count) ret = local->ops->config(local_to_hw(local), &local->hw.conf); return ret;