OrangePi_CM5/arch/arm/mach-davinci
Nathan Chancellor 0a312ec66a ARM: davinci: da850-evm: Avoid NULL pointer dereference
commit 83a1cde5c74bfb44b49cb2a940d044bb2380f4ea upstream.

With newer versions of GCC, there is a panic in da850_evm_config_emac()
when booting multi_v5_defconfig in QEMU under the palmetto-bmc machine:

Unable to handle kernel NULL pointer dereference at virtual address 00000020
pgd = (ptrval)
[00000020] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper Not tainted 5.15.0 #1
Hardware name: Generic DT based system
PC is at da850_evm_config_emac+0x1c/0x120
LR is at do_one_initcall+0x50/0x1e0

The emac_pdata pointer in soc_info is NULL because davinci_soc_info only
gets populated on davinci machines but da850_evm_config_emac() is called
on all machines via device_initcall().

Move the rmii_en assignment below the machine check so that it is only
dereferenced when running on a supported SoC.

Fixes: bae105879f ("davinci: DA850/OMAP-L138 EVM: implement autodetect of RMII PHY")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/YcS4xVWs6bQlQSPC@archlinux-ax161/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-20 09:23:29 +02:00
..
include/mach ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
Kconfig ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
Makefile
…
Makefile.boot
…
asp.h
…
board-da830-evm.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-da850-evm.c ARM: davinci: da850-evm: Avoid NULL pointer dereference 2022-04-20 09:23:29 +02:00
board-dm355-evm.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-dm355-leopard.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-dm365-evm.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-dm644x-evm.c ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
board-dm646x-evm.c ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
board-mityomapl138.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-neuros-osd2.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-omapl138-hawk.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
board-sffsdr.c
…
clock.h
…
common.c
…
cpuidle.c ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
cpuidle.h ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
da8xx-dt.c ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
da830.c
…
da850.c ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
davinci.h
…
ddr2.h
…
devices-da8xx.c dma-mapping: merge <linux/dma-contiguous.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:04 +02:00
devices.c
…
dm355.c
…
dm365.c
…
dm644x.c
…
dm646x.c
…
irqs.h
…
mux.c
…
mux.h
…
pdata-quirks.c
…
pm.c ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
pm_domain.c
…
psc.h
…
serial.c
…
sleep.S ARM: davinci: Replace HTTP links with HTTPS ones 2020-07-21 20:21:33 +05:30
sram.c
…
sram.h
…
usb-da8xx.c
…
usb.c
…