Hi Reinette, > In 2.6.30 we are starting to see people encountering a WARN when > resuming with HW rfkill enabled. The WARN is printed from > net/mac80211/pm.c:159 in 2.6.30, for current wireless-testing it is > net/mac80211/util.c:1050. Hmm, ok, that makes sense. > With that function resuming multiple interfaces I do not know if it will > make sense to return an error code if one fails. So, it seems that > __ieee80211_resume()/ieee80211_reconfig() will always return zero. Even > so, the case where ieee80211_if_config() fails needs to be > accommodated. > > Would something like this make sense? > > diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c > index 0273023..46f2961 100644 > --- a/net/mac80211/pm.c > +++ b/net/mac80211/pm.c > @@ -156,8 +156,11 @@ int __ieee80211_resume(struct ieee80211_hw *hw) > case NL80211_IFTYPE_ADHOC: > case NL80211_IFTYPE_AP: > case NL80211_IFTYPE_MESH_POINT: > - WARN_ON(ieee80211_if_config(sdata, changed)); > - ieee80211_bss_info_change_notify(sdata, ~0); > + if (ieee80211_if_config(sdata, changed)) > + printk(KERN_DEBUG "%s: failed to configure interface\n", > + sdata->dev->name); > + else > + ieee80211_bss_info_change_notify(sdata, ~0); Not sure. That doesn't seem to make sense anyway, since iwlwifi does this: if (iwl_is_rfkill(priv)) goto done; ... done: ... return 0; Or will this test: if (!iwl_is_alive(priv)) return -EAGAIN; kick us out before even getting to the rfkill test? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part