Subject: Re: [PATCH] ircomm: release tty before sleeping potentially indefintely

From: Sasha Levin <[email-masked]>
Date: Sun, 03 Mar 2013 18:17:38 -0500

On 03/03/2013 05:47 PM, David Miller wrote:
> From: Sasha Levin <[email-masked]>
> Date: Sun,  3 Mar 2013 17:35:53 -0500
> 
>> ircomm_tty_block_til_ready would hold tty lock while blocking. Since the sleep
>> might take a long time we can prevent other processes from accessing the tty,
>> causing hung tasks and a dead tty.
>>
>> Diagnosed-by: Peter Hurley <[email-masked]>
>> Signed-off-by: Sasha Levin <[email-masked]>
> 
> But then you invalidate all of the tty state tests made under
> the lock at the beginning of this function, before enterring
> the loop.  If you drop the lock, those pieces of state could
> change.
> 
> I'm not applying this.

I'm unsure. A similar patch was applied back in 2010 that does the same thing
to a bunch of drivers, including the core tty code (e142a31da "tty: release
BTM while sleeping in block_til_ready").

This IR code looks very much like tty_port_block_til_ready() where it was
okay to do that change, so I should be the same with ircomm_tty_block_til_ready.

Thanks,
Sasha