Serialize console prints with the print_lock
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 19 Jul 2018 20:06:23 +0000 (16:06 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 19 Jul 2018 20:12:26 +0000 (16:12 -0400)
commit5e3c149b4dba4d2ee082d1eee2ac2c4424c2c30e
tree489da5207c73fc221b301d6084d486c4e29c0aa2
parentbd1a5d9803b95c110a1fdfc10c2b629fcca3e61d
Serialize console prints with the print_lock

When userspace writes to the console, it bypasses printk and could
interleave with the rest of the kernel prints.  Now it won't, and we can
remove yet another lock.

Note that we still will have single printk lines intermixed with userspace
characters, since userspace could be writing one byte at a time, without a
\n.  However, these writes won't interfere with multi-line printks within
the kernel.  The first line could have junk in front of it, and if that
becomes a problem, we can start putting printk("\n") in front of larger
prints (such as trapframes), like we do for panic and warnings.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/cons.c
kern/include/kdebug.h
kern/src/init.c
kern/src/kdebug.c