Re: sleeping function called from invalid context

From: Amit Virdi
Date: Wed May 11 2011 - 12:18:25 EST


Hey Alan,

On 5/10/2011 3:02 PM, Alan Cox wrote:
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);

.


I incorporated the change suggested by you and tested the stack again. It is working perfectly fine - no stack trace is printed now. I'll be sending the patch soon.

Thanks n Regards
Amit Virdi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/