diff options
author | bcollins <tailor@grayson> | 2006-06-01 13:19:42 -0400 |
---|---|---|
committer | Ben Collins <bcollins@ubuntu.com> | 2006-06-01 13:19:42 -0400 |
commit | 4129046c2d10bec0088a5330038943b53c1b7188 (patch) | |
tree | c4232dad98c4a781ef35ddd66e6957d450ad10e3 | |
parent | ab246cb8abaac8ecf95e7f0cd69f389456eb8e3e (diff) | |
download | silo-4129046c2d10bec0088a5330038943b53c1b7188.tar.gz |
[silo @ 153]
Adjust sun4u_initrd_phys to be relative to the phys_base. This makes
initrd work again for cases where physical memory base isn't 0x0.#
-rw-r--r-- | second/memory.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/second/memory.c b/second/memory.c index eea53be..0c56db6 100644 --- a/second/memory.c +++ b/second/memory.c @@ -376,7 +376,12 @@ static char *sun4u_memory_find (unsigned int len, int is_kernel) } else { sun4u_initrd_len = len; sun4u_initrd_virt = virt; - sun4u_initrd_phys = initrd_phys = phys; + initrd_phys = phys; + /* Not sure what the old kernel crap is for, but it + * expects the passed initrd physical to be relative to + * the phys memory base. We'll keep compatible with older + * kernels to avoid any problems. */ + sun4u_initrd_phys = phys - phys_base; } __asm __volatile("\n\ |