diff options
author | Peter Wemm <peter@FreeBSD.org> | 2001-11-02 00:41:00 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2001-11-02 00:41:00 +0000 |
commit | 97c97bb16b6c00c5cb844e8dde00368021001e9c (patch) | |
tree | 26d35aaacdbbe27e2543d99c2e497b34e507204a /sys/alpha | |
parent | 00b8804712840e371a31d7deace19b948631ecf5 (diff) | |
download | src-97c97bb16b6c00c5cb844e8dde00368021001e9c.tar.gz src-97c97bb16b6c00c5cb844e8dde00368021001e9c.zip |
"Fix" a problem that got copied from alpha to ia64 and broke there.
When we truncate the msgbuf size because the last chunk is too small,
correctly terminate the phys_avail[] array - the VM system tests
the *end* for zero, not the start. This leads the VM startup to
attempt to recreate a duplicate set of pages for all physical memory.
XXX the msgbuf handling is suspiciously different on i386 vs
alpha/ia64...
Notes
Notes:
svn path=/head/; revision=85850
Diffstat (limited to 'sys/alpha')
-rw-r--r-- | sys/alpha/alpha/machdep.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/alpha/alpha/machdep.c b/sys/alpha/alpha/machdep.c index d9a5104d593b..e31b2cd8808b 100644 --- a/sys/alpha/alpha/machdep.c +++ b/sys/alpha/alpha/machdep.c @@ -879,8 +879,10 @@ alpha_init(pfn, ptb, bim, bip, biv) msgbufinit(msgbufp, sz); /* Remove the last segment if it now has no pages. */ - if (phys_avail[i] == phys_avail[i+1]) + if (phys_avail[i] == phys_avail[i+1]) { phys_avail[i] = 0; + phys_avail[i+1] = 0; + } /* warn if the message buffer had to be shrunk */ if (sz != round_page(MSGBUF_SIZE)) |