From owner-svn-src-stable-11@freebsd.org Thu May 24 23:11:27 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3598F6BDEF; Thu, 24 May 2018 23:11:26 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9893168E32; Thu, 24 May 2018 23:11:26 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 798A918CFB; Thu, 24 May 2018 23:11:26 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ONBQxF074758; Thu, 24 May 2018 23:11:26 GMT (envelope-from marius@FreeBSD.org) Received: (from marius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ONBPp7074755; Thu, 24 May 2018 23:11:25 GMT (envelope-from marius@FreeBSD.org) Message-Id: <201805242311.w4ONBPp7074755@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: marius set sender to marius@FreeBSD.org using -f From: Marius Strobl Date: Thu, 24 May 2018 23:11:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r334191 - in stable/11/stand: common ofw/libofw sparc64/loader X-SVN-Group: stable-11 X-SVN-Commit-Author: marius X-SVN-Commit-Paths: in stable/11/stand: common ofw/libofw sparc64/loader X-SVN-Commit-Revision: 334191 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 May 2018 23:11:27 -0000 Author: marius Date: Thu May 24 23:11:25 2018 New Revision: 334191 URL: https://svnweb.freebsd.org/changeset/base/334191 Log: MFC: r333955 - Unbreak booting sparc64 kernels after the metadata unification in r329190 (MFCed to stable/11 in r332150); sparc64 kernels are always 64-bit but with that revision in place, the loader was treating them as 32-bit ones. - In order to reduce the likelihood of this kind of breakage in the future, #ifdef out md_load() on sparc64 and make md_load_dual() - which is currently local to metadata.c anyway - static. - Make md_getboothowto() - also local to metadata.c - static. - Get rid of the unused DTB pointer on sparc64. Approved by: re (kib) Modified: stable/11/stand/common/metadata.c stable/11/stand/ofw/libofw/libofw.h stable/11/stand/sparc64/loader/main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/stand/common/metadata.c ============================================================================== --- stable/11/stand/common/metadata.c Thu May 24 22:15:47 2018 (r334190) +++ stable/11/stand/common/metadata.c Thu May 24 23:11:25 2018 (r334191) @@ -94,7 +94,7 @@ md_bootserial(void) } #endif -int +static int md_getboothowto(char *kargs) { char *cp; @@ -307,7 +307,7 @@ md_copymodules(vm_offset_t addr, int kern64) * - The kernel environment is copied into kernel space. * - Module metadata are formatted and placed in kernel space. */ -int +static int md_load_dual(char *args, vm_offset_t *modulep, vm_offset_t *dtb, int kern64) { struct preloaded_file *kfp; @@ -460,13 +460,15 @@ md_load_dual(char *args, vm_offset_t *modulep, vm_offs return(0); } +#if !defined(__sparc64__) int md_load(char *args, vm_offset_t *modulep, vm_offset_t *dtb) { return (md_load_dual(args, modulep, dtb, 0)); } +#endif -#if defined(__mips__) || defined(__powerpc__) +#if defined(__mips__) || defined(__powerpc__) || defined(__sparc64__) int md_load64(char *args, vm_offset_t *modulep, vm_offset_t *dtb) { Modified: stable/11/stand/ofw/libofw/libofw.h ============================================================================== --- stable/11/stand/ofw/libofw/libofw.h Thu May 24 22:15:47 2018 (r334190) +++ stable/11/stand/ofw/libofw/libofw.h Thu May 24 23:11:25 2018 (r334191) @@ -62,7 +62,9 @@ struct preloaded_file; struct file_format; /* MD code implementing MI interfaces */ +#if !defined(__sparc64__) vm_offset_t md_load(char *args, vm_offset_t *modulep, vm_offset_t *dtb); +#endif vm_offset_t md_load64(char *args, vm_offset_t *modulep, vm_offset_t *dtb); extern void reboot(void); Modified: stable/11/stand/sparc64/loader/main.c ============================================================================== --- stable/11/stand/sparc64/loader/main.c Thu May 24 22:15:47 2018 (r334190) +++ stable/11/stand/sparc64/loader/main.c Thu May 24 23:11:25 2018 (r334191) @@ -339,7 +339,7 @@ static int __elfN(exec)(struct preloaded_file *fp) { struct file_metadata *fmp; - vm_offset_t mdp, dtbp; + vm_offset_t mdp; Elf_Addr entry; Elf_Ehdr *e; int error; @@ -348,7 +348,7 @@ __elfN(exec)(struct preloaded_file *fp) return (EFTYPE); e = (Elf_Ehdr *)&fmp->md_data; - if ((error = md_load(fp->f_args, &mdp, &dtbp)) != 0) + if ((error = md_load64(fp->f_args, &mdp, NULL)) != 0) return (error); printf("jumping to kernel entry at %#lx.\n", e->e_entry);