* using ieee80211_restart_hw()
@ 2013-06-03 17:10 Arend van Spriel
2013-06-03 17:23 ` Johannes Berg
0 siblings, 1 reply; 2+ messages in thread
From: Arend van Spriel @ 2013-06-03 17:10 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, John Greene
Hi Johannes,
In brcmsmac a fatal error in the device results in calling
ieee80211_restart_hw(). This was done under the assumption that mac80211
would reconfigure everything doing .start(), .add_interface() etc, but
looking at a log in redhat bugzilla makes me suspicious about that.
The only reason I could find in ieee80211_reconfig is that
local->open_count would be zero, right?
At the time of the fatal error AMPDU packets were being transmitted so I
assume local->open_count would *not* be zero as it seems to match the
state of the netdev interface.
Regards,
Arend
---8<--------------------------------------------------------------
/* everything else happens only if HW was up & running */
if (!local->open_count)
goto wake_up;
/*
* Upon resume hardware can sometimes be goofy due to
* various platform / driver / bus issues, so restarting
* the device may at times not work immediately. Propagate
* the error.
*/
res = drv_start(local);
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: using ieee80211_restart_hw()
2013-06-03 17:10 using ieee80211_restart_hw() Arend van Spriel
@ 2013-06-03 17:23 ` Johannes Berg
0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2013-06-03 17:23 UTC (permalink / raw)
To: Arend van Spriel; +Cc: linux-wireless, John Greene
Hi,
> In brcmsmac a fatal error in the device results in calling
> ieee80211_restart_hw(). This was done under the assumption that mac80211
> would reconfigure everything doing .start(), .add_interface() etc, but
> looking at a log in redhat bugzilla makes me suspicious about that.
>
> The only reason I could find in ieee80211_reconfig is that
> local->open_count would be zero, right?
>
> At the time of the fatal error AMPDU packets were being transmitted so I
> assume local->open_count would *not* be zero as it seems to match the
> state of the netdev interface.
Not sure what you're asking ... restart_hw() should reconfigure
everything just like you said, but maybe your driver is not cleaning up
properly before the restart so something in there fails? restart_hw()
expects to only do start/add_interface etc, not remove_interface/stop
etc.
johannes
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-06-03 17:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-03 17:10 using ieee80211_restart_hw() Arend van Spriel
2013-06-03 17:23 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).