lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 034/186] x86/sysfb: Fix check for bad VRAM size
    Date
    From: Arvind Sankar <nivedita@alum.mit.edu>

    [ Upstream commit dacc9092336be20b01642afe1a51720b31f60369 ]

    When checking whether the reported lfb_size makes sense, the height
    * stride result is page-aligned before seeing whether it exceeds the
    reported size.

    This doesn't work if height * stride is not an exact number of pages.
    For example, as reported in the kernel bugzilla below, an 800x600x32 EFI
    framebuffer gets skipped because of this.

    Move the PAGE_ALIGN to after the check vs size.

    Reported-by: Christopher Head <chead@chead.ca>
    Tested-by: Christopher Head <chead@chead.ca>
    Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=206051
    Link: https://lkml.kernel.org/r/20200107230410.2291947-1-nivedita@alum.mit.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/kernel/sysfb_simplefb.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c
    index 85195d447a922..f3215346e47fd 100644
    --- a/arch/x86/kernel/sysfb_simplefb.c
    +++ b/arch/x86/kernel/sysfb_simplefb.c
    @@ -94,11 +94,11 @@ __init int create_simplefb(const struct screen_info *si,
    if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
    size <<= 16;
    length = mode->height * mode->stride;
    - length = PAGE_ALIGN(length);
    if (length > size) {
    printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n");
    return -EINVAL;
    }
    + length = PAGE_ALIGN(length);

    /* setup IORESOURCE_MEM as framebuffer memory */
    memset(&res, 0, sizeof(res));
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 17:57    [W:4.157 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site