lkml.org 
[lkml]   [2016]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/4] x86/platform/UV: Fix problem with iounmap UV4 EFI System Table causing panic
    Save the size field from the uv_systab struct before doing the iounmap
    of the struct pointer, to avoid a null dereference error.

    Reviewed-by: Dimitri Sivanich <sivanich@sgi.com>
    Reviewed-by: Nathan Zimmer <nzimmer@sgi.com>
    Tested-by: Frank Ramsay <framsay@sgi.com>
    Tested-by: John Estabrook <estabrook@sgi.com>
    Signed-off-by: Mike Travis <travis@sgi.com>
    ---
    v2: modify description and changelog.
    ---
    arch/x86/platform/uv/bios_uv.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    --- linux.orig/arch/x86/platform/uv/bios_uv.c
    +++ linux/arch/x86/platform/uv/bios_uv.c
    @@ -200,12 +200,14 @@ void uv_bios_init(void)
    return;
    }

    + /* Starting with UV4 the UV systab size is variable */
    if (uv_systab->revision >= UV_SYSTAB_VERSION_UV4) {
    + int size = uv_systab->size;
    +
    iounmap(uv_systab);
    - uv_systab = ioremap(efi.uv_systab, uv_systab->size);
    + uv_systab = ioremap(efi.uv_systab, size);
    if (!uv_systab) {
    - pr_err("UV: UVsystab: ioremap(%d) failed!\n",
    - uv_systab->size);
    + pr_err("UV: UVsystab: ioremap(%d) failed!\n", size);
    return;
    }
    }
    --

    \
     
     \ /
      Last update: 2016-08-01 21:41    [W:5.306 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site