diff options
author | iedowse <iedowse@FreeBSD.org> | 2003-03-28 02:50:10 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2003-03-28 02:50:10 +0000 |
commit | b399d5ecbd4716ab7d85123d538e0eac2cfecdec (patch) | |
tree | 30c3acce3e8fb42b966dd12505c6284f5d7c6b04 /sys/sys/msgbuf.h | |
parent | 41a48ccd9eddb0fca56b439efaa5db84a4dcfb37 (diff) | |
download | FreeBSD-src-b399d5ecbd4716ab7d85123d538e0eac2cfecdec.zip FreeBSD-src-b399d5ecbd4716ab7d85123d538e0eac2cfecdec.tar.gz |
Add a checksum to the kernel message buffer, and update it every
time a character is written. Use this at boot time to reject the
existing buffer contents if they are corrupt. This fixes a problem
seen on some hardware (especially laptops) where the message buffer
gets partially corrupted during a short power cycle or reset, but
the msgbuf structure is left intact so it gets reused, resulting
in random junk and control characters appearing in dmesg and
/var/log/messages.
PR: kern/28497
Diffstat (limited to 'sys/sys/msgbuf.h')
-rw-r--r-- | sys/sys/msgbuf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/msgbuf.h b/sys/sys/msgbuf.h index e6f6da2..22bd161 100644 --- a/sys/sys/msgbuf.h +++ b/sys/sys/msgbuf.h @@ -44,6 +44,7 @@ struct msgbuf { int msg_bufx; /* write pointer */ int msg_bufr; /* read pointer */ char *msg_ptr; /* pointer to buffer */ + u_int msg_cksum; /* checksum of contents */ }; #ifdef _KERNEL |