linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Jones <pjones@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.9 09/34] efi/esrt: Only call efi_mem_reserve() for boot services memory
Date: Sat, 15 Sep 2018 01:34:31 +0000	[thread overview]
Message-ID: <20180915013422.180023-9-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180915013422.180023-1-alexander.levin@microsoft.com>

From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

[ Upstream commit 61f0d55569463a1af897117ff47d202b0ccb2e24 ]

The following commit:

  7e1550b8f208 ("efi: Drop type and attribute checks in efi_mem_desc_lookup()")

refactored the implementation of efi_mem_desc_lookup() so that the type
check is moved to the callers, one of which is the x86 version of
efi_arch_mem_reserve(), where we added a modified check that only takes
EFI_BOOT_SERVICES_DATA regions into account.

This is reasonable, since it is the only memory type that requires this,
but doing so uncovered some unexpected behavior in the ESRT code, which
permits the ESRT table to reside in other types of memory than what the
UEFI spec mandates (i.e., EFI_BOOT_SERVICES_DATA), and unconditionally
calls efi_mem_reserve() on the region in question. This may result in
errors such as

  esrt: Reserving ESRT space from 0x000000009c810318 to 0x000000009c810350.
  efi: Failed to lookup EFI memory descriptor for 0x000000009c810318

when the ESRT table is not in EFI_BOOT_SERVICES_DATA memory, but we try
to reserve it nonetheless.

So make the call to efi_mem_reserve() conditional on the memory type.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Jones <pjones@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 drivers/firmware/efi/esrt.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
index 311c9d0e8cbb..241dd7c63d2c 100644
--- a/drivers/firmware/efi/esrt.c
+++ b/drivers/firmware/efi/esrt.c
@@ -333,7 +333,8 @@ void __init efi_esrt_init(void)
 
 	end = esrt_data + size;
 	pr_info("Reserving ESRT space from %pa to %pa.\n", &esrt_data, &end);
-	efi_mem_reserve(esrt_data, esrt_data_size);
+	if (md.type == EFI_BOOT_SERVICES_DATA)
+		efi_mem_reserve(esrt_data, esrt_data_size);
 
 	pr_debug("esrt-init: loaded.\n");
 err_memunmap:
-- 
2.17.1

  parent reply	other threads:[~2018-09-15  1:34 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-15  1:34 [PATCH AUTOSEL 4.9 01/34] binfmt_elf: Respect error return from `regset->active' Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 02/34] audit: fix use-after-free in audit_add_watch Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 03/34] mtdchar: fix overflows in adjustment of `count` Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 04/34] mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 05/34] evm: Don't deadlock if a crypto algorithm is unavailable Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 06/34] PM / devfreq: use put_device() instead of kfree() Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 07/34] MIPS: loongson64: cs5536: Fix PCI_OHCI_INT_REG reads Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 08/34] configfs: fix registered group removal Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 10/34] ARM: hisi: handle of_iomap and fix missing of_node_put Sasha Levin
2018-09-15  1:34 ` Sasha Levin [this message]
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 11/34] ARM: hisi: fix error handling and " Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 13/34] gpu: ipu-v3: csi: pass back mbus_code_to_bus_cfg error codes Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 12/34] ARM: hisi: check of_iomap and fix missing of_node_put Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 14/34] mmc: tegra: prevent HS200 on Tegra 3 Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 15/34] mmc: sdhci: do not try to use 3.3V signaling if not supported Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 16/34] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 18/34] coresight: Handle errors in finding input/output ports Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 17/34] parport: sunbpp: fix error return code Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 19/34] coresight: tpiu: Fix disabling timeouts Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 21/34] gpiolib: Mark gpio_suffixes array with __maybe_unused Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 20/34] gpio: pxa: Fix potential NULL dereference Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 22/34] mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT) Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 24/34] rcu: Fix grace-period hangs due to race with CPU offline Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 23/34] input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT) Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 25/34] drm/amdkfd: Fix error codes in kfd_get_process Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 27/34] ALSA: pcm: Fix snd_interval_refine first/last with open min/max Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 26/34] rtc: bq4802: add error handling for devm_ioremap Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 28/34] selftest: timers: Tweak raw_skew to SKIP when ADJ_OFFSET/other clock adjustments are in progress Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 29/34] drm/panel: type promotion bug in s6e8aa0_read_mtp_id() Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 30/34] dmaengine: hsu: Support dmaengine_terminate_sync() Sasha Levin
2018-09-20  0:38   ` Vinod
2018-09-24  0:55     ` Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 31/34] dmaengine: idma64: " Sasha Levin
2018-09-20  0:40   ` Vinod
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 32/34] IB/nes: Fix a compiler warning Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 34/34] pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant Sasha Levin
2018-09-15  1:34 ` [PATCH AUTOSEL 4.9 33/34] gpiolib: Respect error code of ->get_direction() Sasha Levin

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=20180915013422.180023-9-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=pjones@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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).