On analysis, I found that this is due to the change introduced in
tty_ioctl.c where the termios mutex is taken to protect against
parallel throttle/unthrottle. Probably IrCOMM stack code wasn't
tested before merging this patch.
Please suggest what should be done with the IrCOMM protocol stack
code to resolve this problem?
It looks like the comments are wrong
/*
* Just give it over to the line discipline. There is no need to
* involve the flip buffers, since we are not running in an
interrupt
* handler
*/
appears to be completely untrue
I suspect it just needs to use the tty_flip_buffer functions properly
instead of trying to do clever shortcuts
tty_insert_flip_string(self->tty, skb->data, skb->len);
tty_flip_buffer_push(self->tty);
.