diff options
author | John Rigby <john.rigby@linaro.org> | 2011-10-21 11:34:34 -0600 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2012-05-02 19:44:07 -0600 |
commit | 72e4f52a227776c9e5b328d63b098863e4871d9c (patch) | |
tree | 54282525abb967c464dcc456cec1c8e074ed2f2a /arch/arm | |
parent | 3fb6072b3628f0d5b540ac3b03f245bbfbdfca94 (diff) |
OMAP4: avoid null pointer access in save_boot_params
When booting via spl the parameter layout is apparently different
and this leads to following bad pointers.
For now just work around the issue by checking pointers before
following them.
Signed-off-by: John Rigby <john.rigby@linaro.org>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S index 35f38acf5..bc0e66a9a 100644 --- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S +++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S @@ -65,7 +65,13 @@ save_boot_params: bgt 2f /* Store the boot mode (raw/FAT) in omap_boot_mode */ ldr r2, [r0, #DEV_DESC_PTR_OFFSET] @ get the device descriptor ptr + bic r3, r2, #255 + cmp r3, #0 + beq 1f ldr r2, [r2, #DEV_DATA_PTR_OFFSET] @ get the pDeviceData ptr + bic r3, r2, #255 + cmp r3, #0 + beq 1f ldr r2, [r2, #BOOT_MODE_OFFSET] @ get the boot mode ldr r3, =omap_bootmode str r2, [r3] |