lkml.org 
[lkml]   [2019]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 223/276] efifb: Omit memory map check on legacy boot
    Date
    [ Upstream commit c2999c281ea2d2ebbdfce96cecc7b52e2ae7c406 ]

    Since the following commit:

    38ac0287b7f4 ("fbdev/efifb: Honour UEFI memory map attributes when mapping the FB")

    efifb_probe() checks its memory range via efi_mem_desc_lookup(),
    and this leads to a spurious error message:

    EFI_MEMMAP is not enabled

    at every boot on KVM. This is quite annoying since the error message
    appears even if you set "quiet" boot option.

    Since this happens on legacy boot, which strangely enough exposes
    a EFI framebuffer via screen_info, let's double check that we are
    doing an EFI boot before attempting to access the EFI memory map.

    Reported-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Peter Jones <pjones@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/20190328193429.21373-3-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/video/fbdev/efifb.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
    index fd02e8a4841d6..9f39f0c360e0c 100644
    --- a/drivers/video/fbdev/efifb.c
    +++ b/drivers/video/fbdev/efifb.c
    @@ -464,7 +464,8 @@ static int efifb_probe(struct platform_device *dev)
    info->apertures->ranges[0].base = efifb_fix.smem_start;
    info->apertures->ranges[0].size = size_remap;

    - if (!efi_mem_desc_lookup(efifb_fix.smem_start, &md)) {
    + if (efi_enabled(EFI_BOOT) &&
    + !efi_mem_desc_lookup(efifb_fix.smem_start, &md)) {
    if ((efifb_fix.smem_start + efifb_fix.smem_len) >
    (md.phys_addr + (md.num_pages << EFI_PAGE_SHIFT))) {
    pr_err("efifb: video memory @ 0x%lx spans multiple EFI memory regions\n",
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-05-30 06:03    [W:4.068 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site