Date: Thu, 26 Nov 2009 22:35:26 +0000 (UTC) From: Rafal Jaworowski <raj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r199850 - stable/8/sys/boot/uboot/common Message-ID: <200911262235.nAQMZRrC094888@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: raj Date: Thu Nov 26 22:35:26 2009 New Revision: 199850 URL: http://svn.freebsd.org/changeset/base/199850 Log: MFC r199534: Provide an effective (relocated) address when building modules metadata. This lets modules loaded dynamically in loader(8) work for U-Boot-based platforms. Modified: stable/8/sys/boot/uboot/common/metadata.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/boot/uboot/common/metadata.c ============================================================================== --- stable/8/sys/boot/uboot/common/metadata.c Thu Nov 26 22:09:37 2009 (r199849) +++ stable/8/sys/boot/uboot/common/metadata.c Thu Nov 26 22:35:26 2009 (r199850) @@ -231,6 +231,7 @@ md_copymodules(vm_offset_t addr) struct preloaded_file *fp; struct file_metadata *md; int c; + vm_offset_t a; c = addr != 0; /* start with the first module on the list, should be the kernel */ @@ -240,7 +241,8 @@ md_copymodules(vm_offset_t addr) MOD_TYPE(addr, fp->f_type, c); if (fp->f_args) MOD_ARGS(addr, fp->f_args, c); - MOD_ADDR(addr, fp->f_addr, c); + a = fp->f_addr - __elfN(relocation_offset); + MOD_ADDR(addr, a, c); MOD_SIZE(addr, fp->f_size, c); for (md = fp->f_metadata; md != NULL; md = md->md_next) { if (!(md->md_type & MODINFOMD_NOCOPY))
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911262235.nAQMZRrC094888>