linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).