public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [tip:efi/core] efi/esrt: Only call efi_mem_reserve() for boot services memory
       [not found] <tip-61f0d55569463a1af897117ff47d202b0ccb2e24@git.kernel.org>
@ 2018-07-17  9:42 ` Ard Biesheuvel
  2018-07-17 11:50   ` Ingo Molnar
  0 siblings, 1 reply; 2+ messages in thread
From: Ard Biesheuvel @ 2018-07-17  9:42 UTC (permalink / raw)
  To: Linux Kernel Mailing List, Thomas Gleixner, Ingo Molnar

Hello Ingo,

Thanks for pulling this directly. I will have another batch for
efi/core by the end of the week (and another urgent patch as well).

There is one remaining issue with mixed mode that I cc'ed you and
Kirill on, but since that seems to be a v4.17 regression, I will keep
that as a separate thing.

-- 
Ard.


On 17 July 2018 at 17:24, tip-bot for Ard Biesheuvel <tipbot@zytor.com> wrote:
> Commit-ID:  61f0d55569463a1af897117ff47d202b0ccb2e24
> Gitweb:     https://git.kernel.org/tip/61f0d55569463a1af897117ff47d202b0ccb2e24
> Author:     Ard Biesheuvel <ard.biesheuvel@linaro.org>
> AuthorDate: Mon, 16 Jul 2018 23:25:07 +0800
> Committer:  Ingo Molnar <mingo@kernel.org>
> CommitDate: Tue, 17 Jul 2018 09:15:05 +0200
>
> efi/esrt: Only call efi_mem_reserve() for boot services memory
>
> 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>
> ---
>  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 375a77c1c6e5..5d06bd247d07 100644
> --- a/drivers/firmware/efi/esrt.c
> +++ b/drivers/firmware/efi/esrt.c
> @@ -329,7 +329,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");
>  }

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [tip:efi/core] efi/esrt: Only call efi_mem_reserve() for boot services memory
  2018-07-17  9:42 ` [tip:efi/core] efi/esrt: Only call efi_mem_reserve() for boot services memory Ard Biesheuvel
@ 2018-07-17 11:50   ` Ingo Molnar
  0 siblings, 0 replies; 2+ messages in thread
From: Ingo Molnar @ 2018-07-17 11:50 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: Linux Kernel Mailing List, Thomas Gleixner


* Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

> Hello Ingo,
> 
> Thanks for pulling this directly. I will have another batch for
> efi/core by the end of the week (and another urgent patch as well).
> 
> There is one remaining issue with mixed mode that I cc'ed you and
> Kirill on, but since that seems to be a v4.17 regression, I will keep
> that as a separate thing.

Sounds good to me!

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-07-17 11:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <tip-61f0d55569463a1af897117ff47d202b0ccb2e24@git.kernel.org>
2018-07-17  9:42 ` [tip:efi/core] efi/esrt: Only call efi_mem_reserve() for boot services memory Ard Biesheuvel
2018-07-17 11:50   ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox