]> git.hungrycats.org Git - linux/commit
powerpc: rtas_flash needs to use rtas_data_buf
authorMilton Miller <miltonm@us.ibm.com>
Sat, 12 Jun 2010 03:48:47 +0000 (03:48 +0000)
committerWilly Tarreau <w@1wt.eu>
Sat, 30 Apr 2011 14:53:20 +0000 (16:53 +0200)
commit1b885e0d037814e383599b0832be19ecf20e37d1
treef45b3d8ede4ad0a24116a879326324629f0e5632
parentf52768e3984e393d7bc1c6461ae8224abdcbd91d
powerpc: rtas_flash needs to use rtas_data_buf

commit bd2b64a12bf55bec0d1b949e3dca3f8863409646 upstream.

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: Anton Blanchard <anton@samba.org>
Signed-Off-By: Milton Miller <miltonm@bga.com>
Tested-By: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/powerpc/kernel/rtas_flash.c