On Sun, Feb 16, 2014 at 11:28:36AM -0800, Linus Torvalds wrote: > Adding Kay and Greg, since the original code is from commit > 7ff9554bb578 ("printk: convert byte-buffer to variable-length record > buffer") and all the "prev" flag tweaks end up building on top of > that. > > The whole "prev flags" is messed up, and LOG_CONT is done very confusingly. > > Why are *those* particular two "prev = msg->flags" incorrect, when > every other case where we walk the messages they are required? > > The code/logic makes no sense. You remove the "prev = msg->flags" at > line 1070, when the *identical* loop just above it has it. So now the > two loops count the number of characters differently. That makes no > sense. > > So I don't think this fixes the fundamental problem. I'm more inclined > to believe that LOG_CONT is wrongly set somewhere, for example because > a continuation wasn't actually originally printed due to coming from > different users or something like that. > > Or at the very least I want a coherent explanation why one loop would > do this and the other would not, and why counting up *different* > numbers could possibly make sense. > > Because as it is, there clearly is some problem, but the patch does > not look sensible to me. Yeah, it doesn't make much sense to me either. Kay had a printk() test module that would stress these types of paths out a bunch, Kay, is that module around somewhere that we could maybe add it to the kernel tree so it could be used to test changes like this? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html