• Milton Miller's avatar
    powerpc: rtas_flash needs to use rtas_data_buf · bd2b64a1
    Milton Miller authored
    When trying to flash a machine via the update_flash command, Anton received the
    following error:
    
        Restarting system.
        FLASH: kernel bug...flash list header addr above 4GB
    
    The code in question has a comment that the flash list should be in
    the kernel data and therefore under 4GB:
    
            /* NOTE: the "first" block list is a global var with no data
             * blocks in the kernel data segment.  We do this because
             * we want to ensure this block_list addr is under 4GB.
             */
    
    Unfortunately the Kconfig option is marked tristate which means the variable
    may not be in the kernel data and could be above 4GB.
    
    Instead of relying on the data segment being below 4GB, use the static
    data buffer allocated by the kernel for use by rtas.  Since we don't
    use the header struct directly anymore, convert it to a simple pointer.
    Reported-By: default avatarAnton Blanchard <anton@samba.org>
    Signed-Off-By: Milton Miller <miltonm@bga.com
    Tested-By: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    bd2b64a1
rtas_flash.c 22.2 KB