On Mon, Feb 06, 2017 at 12:27:15PM +0100, Martin Pieuchot wrote:
> Paul and Antoine reported that, since the NET_LOCK() went in, doing a
> channel scan with iwm(4) and iwn(4) freezes X.
> 
> This is a deadlock due to the fact that wireless drivers sleep during
> a long time holding the NET_LOCK() while the X server tries to
> communicate with unix sockets, that still need the NET_LOCK().
> 
> The obvious solution to this problem is to not hold the NET_LOCK() for
> unix socket related operations.  We're working on that.
> 
> However since hardware ioctl(2) can sleep there's no problem to release
> the NET_LOCK() there.  This is true for all ioctls that are not
> modifying any stack state (address, multicast group, etc).  Hence the
> diff below that should fix the problem in a generic way.
> 
> ok?

This fixes the issue on my iwn0, but re-introduces the problem on my iwm0.

Tested with

iwn0 at pci2 dev 0 function 0 "Intel Centrino Ultimate-N 6300" rev 0x35: msi, 
MIMO 3T3R, MoW

and

iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless AC 7265" rev 0x59, msi
iwm0: hw rev 0x210, fw ver 16.242414.0

Reply via email to