Subject: net: irda: hang when doing anything to a socket in accept()

From: Sasha Levin <[email-masked]>
Date: Fri, 06 Dec 2013 16:04:26 -0500

Hi all,

I've noticed that once an IRDA socket is in accept(), any further action that requires locking the
socket will result in a hang until accept() is completed (which may take a while). After a while
hung task spew is printed out.

		thread 1		|		thread 2
					|
	listen(sock)			|	
		bind(sock)		|
			accept(sock)	|
					|	setsockopt(sock)
						*HANG*	

I'm not sure I can provide a properly tested fix since I don't actually have IRDA hardware to test
on.

Thanks,
Sasha