Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 May 2018 04:06:59 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r333134 - head/sys/kern
Message-ID:  <201805010406.w4146xEv041837@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Tue May  1 04:06:59 2018
New Revision: 333134
URL: https://svnweb.freebsd.org/changeset/base/333134

Log:
  Report the kernel base address properly in kldstat when using PowerPC kernels
  loaded at addresses other than their link address.

Modified:
  head/sys/kern/link_elf.c

Modified: head/sys/kern/link_elf.c
==============================================================================
--- head/sys/kern/link_elf.c	Tue May  1 00:53:46 2018	(r333133)
+++ head/sys/kern/link_elf.c	Tue May  1 04:06:59 2018	(r333134)
@@ -383,7 +383,7 @@ link_elf_link_common_finish(linker_file_t lf)
 	return (0);
 }
 
-extern vm_offset_t __startkernel;
+extern vm_offset_t __startkernel, __endkernel;
 
 static void
 link_elf_init(void* arg)
@@ -424,8 +424,13 @@ link_elf_init(void* arg)
 
 	if (dp != NULL)
 		parse_dynamic(ef);
+#ifdef __powerpc__
+	linker_kernel_file->address = (caddr_t)__startkernel;
+	linker_kernel_file->size = (intptr_t)(__endkernel - __startkernel);
+#else
 	linker_kernel_file->address += KERNBASE;
 	linker_kernel_file->size = -(intptr_t)linker_kernel_file->address;
+#endif
 
 	if (modptr != NULL) {
 		ef->modptr = modptr;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805010406.w4146xEv041837>