From 9063ace8b46b3a85ac81f553245ed2fb2a138ed0 Mon Sep 17 00:00:00 2001 From: grehan Date: Thu, 8 Jul 2004 06:06:56 +0000 Subject: Correctly calculate size of memory to be mapped when copying. Removal of the 256Mb 1:1 BAT mapping exposed this as copying into memory that hadn't been claimed from OpenFirmware. compiled-tested on: panther (sparc64). Code built, but not used, on sparc64 --- sys/boot/ofw/libofw/ofw_copy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sys/boot') diff --git a/sys/boot/ofw/libofw/ofw_copy.c b/sys/boot/ofw/libofw/ofw_copy.c index 78f3cee..ba8c91f 100644 --- a/sys/boot/ofw/libofw/ofw_copy.c +++ b/sys/boot/ofw/libofw/ofw_copy.c @@ -47,9 +47,11 @@ ofw_copyin(const void *src, vm_offset_t dest, const size_t len) { void *destp, *addr; size_t dlen; + size_t resid; destp = (void *)(dest & ~PAGE_MASK); - dlen = roundup(len, PAGE_SIZE); + resid = dest & PAGE_MASK; + dlen = roundup(len + resid, PAGE_SIZE); if (OF_call_method("claim", memory, 3, 1, destp, dlen, 0, &addr) == -1) { -- cgit v1.1