linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: ard.biesheuvel@linaro.org (Ard Biesheuvel)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 04/10] arm64/efi: invert UEFI memory region reservation logic
Date: Tue, 28 Oct 2014 17:18:37 +0100	[thread overview]
Message-ID: <1414513123-20400-5-git-send-email-ard.biesheuvel@linaro.org> (raw)
In-Reply-To: <1414513123-20400-1-git-send-email-ard.biesheuvel@linaro.org>

Instead of reserving the memory regions based on which types we know
need to be reserved, consider only regions of the following types as
free for general use by the OS:

EFI_LOADER_CODE
EFI_LOADER_DATA
EFI_BOOT_SERVICES_CODE
EFI_BOOT_SERVICES_DATA
EFI_CONVENTIONAL_MEMORY

Note that this also fixes a problem with the original code, which would
misidentify a EFI_RUNTIME_SERVICES_DATA region as not reserved if it
does not have the EFI_MEMORY_RUNTIME attribute set. However, it is
perfectly legal for the firmware not to request a virtual mapping for
EFI_RUNTIME_SERVICES_DATA regions that contain configuration tables, in
which case the EFI_MEMORY_RUNTIME attribute would not be set.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 arch/arm64/kernel/efi.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index 95c49ebc660d..2e829148fb36 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -125,17 +125,17 @@ out:
  */
 static __init int is_reserve_region(efi_memory_desc_t *md)
 {
-	if (!is_normal_ram(md))
+	switch (md->type) {
+	case EFI_LOADER_CODE:
+	case EFI_LOADER_DATA:
+	case EFI_BOOT_SERVICES_CODE:
+	case EFI_BOOT_SERVICES_DATA:
+	case EFI_CONVENTIONAL_MEMORY:
 		return 0;
-
-	if (md->attribute & EFI_MEMORY_RUNTIME)
-		return 1;
-
-	if (md->type == EFI_ACPI_RECLAIM_MEMORY ||
-	    md->type == EFI_RESERVED_TYPE)
-		return 1;
-
-	return 0;
+	default:
+		break;
+	}
+	return is_normal_ram(md);
 }
 
 static __init void reserve_regions(void)
-- 
1.8.3.2

  parent reply	other threads:[~2014-10-28 16:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28 16:18 [PATCH v2 00/10] arm64 EFI patches for 3.19 Ard Biesheuvel
2014-10-28 16:18 ` [PATCH v2 01/10] arm64/efi: efistub: jump to 'stext' directly, not through the header Ard Biesheuvel
2014-10-28 16:18 ` [PATCH v2 02/10] arm64/efi: set PE/COFF section alignment to 4 KB Ard Biesheuvel
2014-10-28 16:18 ` [PATCH v2 03/10] arm64/efi: set PE/COFF file alignment to 512 bytes Ard Biesheuvel
2014-10-28 16:18 ` Ard Biesheuvel [this message]
2014-10-28 16:47   ` [PATCH v2 04/10] arm64/efi: invert UEFI memory region reservation logic Mark Rutland
2014-10-28 17:08     ` Ard Biesheuvel
2014-10-28 17:28       ` Mark Rutland
2014-10-30  0:28   ` Roy Franz
2014-10-28 16:18 ` [PATCH v2 05/10] arm64/efi: drop redundant set_bit(EFI_CONFIG_TABLES) Ard Biesheuvel
2014-10-28 16:18 ` [PATCH v2 06/10] efi: dmi: add support for SMBIOS 3.0 UEFI configuration table Ard Biesheuvel
2014-11-04 17:20   ` Matt Fleming
2014-10-28 16:18 ` [PATCH v2 07/10] dmi: add support for SMBIOS 3.0 64-bit entry point Ard Biesheuvel
2014-10-29 15:11   ` [PATCH v2] " Ard Biesheuvel
2014-10-29 16:19     ` Leif Lindholm
2014-11-04 17:39   ` [PATCH v2 07/10] " Matt Fleming
2014-10-28 16:18 ` [PATCH v2 08/10] arm64: dmi: Add SMBIOS/DMI support Ard Biesheuvel
2014-10-29 16:23   ` Leif Lindholm
2014-10-28 16:18 ` [PATCH v2 09/10] arm64: dmi: set DMI string as dump stack arch description Ard Biesheuvel
2014-10-29 14:58   ` Leif Lindholm
2014-10-28 16:18 ` [PATCH v2 10/10] efi: efi-stub: notify on DTB absence Ard Biesheuvel
2014-11-04 17:42   ` Matt Fleming
2014-11-05  7:53 ` [PATCH v2 00/10] arm64 EFI patches for 3.19 Ard Biesheuvel
2014-11-05  9:52   ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1414513123-20400-5-git-send-email-ard.biesheuvel@linaro.org \
    --to=ard.biesheuvel@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).