From patchwork Tue Aug 29 16:00:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 111232 Delivered-To: patch@linaro.org Received: by 10.140.95.112 with SMTP id h103csp1556249qge; Tue, 29 Aug 2017 09:06:17 -0700 (PDT) X-Received: by 10.200.23.228 with SMTP id r33mr6986055qtk.51.1504022777570; Tue, 29 Aug 2017 09:06:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504022777; cv=none; d=google.com; s=arc-20160816; b=GluTUUVcHWt03Tebop1uCBwHbSszUVo38l+EKErmStvSKeE8CBGvNM2qy5VnGQrZs8 3j77H3YIlyM2av1MX1EEql8PTt9uzjLh82OcpFRJ66BVzUXAwv5xVRgPJdFPjQ1r+ZC8 1KjQ74pMHWUBAFPLo+w8Zmt7J/bTfdyahD1TzbnkSaUl8ZEP3yOEc54j48cn5YBbhOJK sRKPn4O3fHGJ5wUW+4f/D4QShdKYMBuzBv4jazX6X0PZ+ltwzdvkybiavUQiPEXmVuJH 0+hu0IWsQy3nstPmn6MUwDcqX7jmYhOe9pmOSDcPLYx7gcIFvCgx6asi4tJtlQ7Ojf/0 xeZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:references:in-reply-to:message-id:date:subject :to:from:arc-authentication-results; bh=T2VckDLbK/3k/EKKLQ/d3f9adI8HDa1tlqrojCPDhyc=; b=PiwZ98dv0ysU3ZZWIJM5+D99hNN4wMqAQ+lhVAFSmSh0aBGUfbAKr1WU0wvZLWN6ww 83QDldSDtoVCz8ywOaU8qVS3EFv35lPLbxwB5/nky0peT3Fnfrm6YwNq0LEfIDwm805o snxzhrYa8qNoM347p90iLbjvYuxqlUNrMq33vNpZrLkcxBs/j0PQTi1TkckU7/X8Pd7y t684XFBY4I8K4cns7iofYGkyuee+D13tlrBcYL4fbIp4Hk7ueiz3PUnsxXlV/ATbbHjU 2NfsJlqK7d9PCIYZKCiDldDFgDzYIo+bLCdXB9nevp71wB7j+0JamOyYfqhZ934/cXN4 KSVg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=grub-devel-bounces+patch=linaro.org@gnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id p31si3080336qtp.282.2017.08.29.09.06.17 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 29 Aug 2017 09:06:17 -0700 (PDT) Received-SPF: pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of grub-devel-bounces+patch=linaro.org@gnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=grub-devel-bounces+patch=linaro.org@gnu.org Received: from localhost ([::1]:45823 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dmj1r-0007aJ-Ad for patch@linaro.org; Tue, 29 Aug 2017 12:06:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dmiwW-0004E5-QO for grub-devel@gnu.org; Tue, 29 Aug 2017 12:00:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dmiwQ-0007l6-VX for grub-devel@gnu.org; Tue, 29 Aug 2017 12:00:44 -0400 Received: from mx2.suse.de ([195.135.220.15]:60430 helo=mx1.suse.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dmiwQ-0007ju-Ov for grub-devel@gnu.org; Tue, 29 Aug 2017 12:00:38 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 3A623AEA3; Tue, 29 Aug 2017 16:00:36 +0000 (UTC) From: Alexander Graf To: grub-devel@gnu.org Subject: [PATCH v3 1/2] efi: Move grub_reboot() into kernel Date: Tue, 29 Aug 2017 18:00:34 +0200 Message-Id: <20170829160035.11987-2-agraf@suse.de> X-Mailer: git-send-email 2.12.3 In-Reply-To: <20170829160035.11987-1-agraf@suse.de> References: <20170829160035.11987-1-agraf@suse.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 195.135.220.15 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Cc: phcoder@gmail.com, mchang@suse.com, Daniel Kiper , elliott@hpe.com MIME-Version: 1.0 Errors-To: grub-devel-bounces+patch=linaro.org@gnu.org Sender: "Grub-devel" The reboot function calls machine_fini() and then reboots the system. Currently it lives in lib/ which means it gets compiled into the reboot module which lives on the heap. In a following patch, I want to free the heap on machine_fini() though, so we would free the memory that the code is running in. That obviously breaks with smarter UEFI implementations. So this patch moves it into the core. That way we ensure that all code running after machine_fini() in the UEFI case is running from memory that got allocated (and gets deallocated) by the UEFI core. Signed-off-by: Alexander Graf --- grub-core/Makefile.core.def | 9 +++++---- include/grub/misc.h | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) -- 2.12.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index a65c27f7f..d01654b12 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -235,6 +235,11 @@ kernel = { arm64_efi = kern/arm64/efi/init.c; arm64_efi = kern/efi/fdt.c; + ia64_efi = lib/efi/reboot.c; + x86_64_efi = lib/efi/reboot.c; + arm_efi = lib/efi/reboot.c; + arm64_efi = lib/efi/reboot.c; + i386_pc = kern/i386/pc/init.c; i386_pc = kern/i386/pc/mmap.c; i386_pc = term/i386/pc/console.c; @@ -872,10 +877,6 @@ module = { name = reboot; i386 = lib/i386/reboot.c; i386 = lib/i386/reboot_trampoline.S; - ia64_efi = lib/efi/reboot.c; - x86_64_efi = lib/efi/reboot.c; - arm_efi = lib/efi/reboot.c; - arm64_efi = lib/efi/reboot.c; powerpc_ieee1275 = lib/ieee1275/reboot.c; sparc64_ieee1275 = lib/ieee1275/reboot.c; mips_arc = lib/mips/arc/reboot.c; diff --git a/include/grub/misc.h b/include/grub/misc.h index 2a9f87cc2..372f009e8 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -396,7 +396,8 @@ grub_abs (int x) } /* Reboot the machine. */ -#if defined (GRUB_MACHINE_EMU) || defined (GRUB_MACHINE_QEMU_MIPS) +#if defined (GRUB_MACHINE_EMU) || defined (GRUB_MACHINE_QEMU_MIPS) || \ + defined (GRUB_MACHINE_EFI) void EXPORT_FUNC(grub_reboot) (void) __attribute__ ((noreturn)); #else void grub_reboot (void) __attribute__ ((noreturn));