I have read and re-read your repsonse and I can't understand it at all. The only way this code is correct is if we take the lock when we do: 930 if (left_to_sleep > 0) { Here we are unlocked. 931 left_to_sleep = 932 wait_event_interruptible_timeout( 933 channel->wr_wait, 934 (!channel->wr_sleepy), 935 left_to_sleep); Are you saying that here we are locked? That does NOT appear to be what you are saying, but it is the only response that I would accept to say that the code is correct. In other words, the bug is probably real. Please review again. regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html