Author: andreast
Date: Sat Sep  8 20:00:31 2012
New Revision: 240249
URL: http://svn.freebsd.org/changeset/base/240249

Log:
  Fix loading of kernel modules at boot time for powerpc64.
  
  Reported by:  Mathias Breuninger
  MFC after:    1 week

Modified:
  head/sys/boot/common/load_elf.c

Modified: head/sys/boot/common/load_elf.c
==============================================================================
--- head/sys/boot/common/load_elf.c     Sat Sep  8 19:35:23 2012        
(r240248)
+++ head/sys/boot/common/load_elf.c     Sat Sep  8 20:00:31 2012        
(r240249)
@@ -588,7 +588,7 @@ fake_modname(const char *name)
     return fp;
 }
 
-#if defined(__i386__) && __ELF_WORD_SIZE == 64
+#if (defined(__i386__) || defined(__powerpc__)) && __ELF_WORD_SIZE == 64
 struct mod_metadata64 {
        int             md_version;     /* structure version MDTV_* */  
        int             md_type;        /* type of entry MDT_* */
@@ -601,7 +601,7 @@ int
 __elfN(parse_modmetadata)(struct preloaded_file *fp, elf_file_t ef)
 {
     struct mod_metadata md;
-#if defined(__i386__) && __ELF_WORD_SIZE == 64
+#if (defined(__i386__) || defined(__powerpc__)) && __ELF_WORD_SIZE == 64
     struct mod_metadata64 md64;
 #endif
     struct mod_depend *mdepend;
@@ -626,7 +626,7 @@ __elfN(parse_modmetadata)(struct preload
            v += ef->off;
        else if (error != 0)
            return (error);
-#if defined(__i386__) && __ELF_WORD_SIZE == 64
+#if (defined(__i386__) || defined(__powerpc__)) && __ELF_WORD_SIZE == 64
        COPYOUT(v, &md64, sizeof(md64));
        error = __elfN(reloc_ptr)(fp, ef, v, &md64, sizeof(md64));
        if (error == EOPNOTSUPP) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to