* [PATCH] soc: renesas: Add missing check for non-zero product register address
@ 2019-10-16 14:33 Geert Uytterhoeven
2019-11-01 13:34 ` Geert Uytterhoeven
0 siblings, 1 reply; 2+ messages in thread
From: Geert Uytterhoeven @ 2019-10-16 14:33 UTC (permalink / raw)
To: Magnus Damm, Chris Brandt
Cc: linux-renesas-soc, Geert Uytterhoeven, linux-arm-kernel
If the DTB for a device with an RZ/A2 SoC lacks a device node for the
BSID register, the ID validation code falls back to using a register at
address 0x0, which leads to undefined behavior (e.g. reading back a
random value).
This could be fixed by letting fam_rza2.reg point to the actual BSID
register. However, the hardcoded fallbacks were meant for backwards
compatibility with old DTBs only, not for new SoCs. Hence fix this by
validating renesas_family.reg before using it.
Fixes: 175f435f44b724e3 ("soc: renesas: identify RZ/A2")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
drivers/soc/renesas/renesas-soc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index 5dc2ae55f746a48a..85aaf85ce6b192d9 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -337,7 +337,7 @@ static int __init renesas_soc_init(void)
if (np) {
chipid = of_iomap(np, 0);
of_node_put(np);
- } else if (soc->id) {
+ } else if (soc->id && family->reg) {
chipid = ioremap(family->reg, 4);
}
if (chipid) {
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] soc: renesas: Add missing check for non-zero product register address
2019-10-16 14:33 [PATCH] soc: renesas: Add missing check for non-zero product register address Geert Uytterhoeven
@ 2019-11-01 13:34 ` Geert Uytterhoeven
0 siblings, 0 replies; 2+ messages in thread
From: Geert Uytterhoeven @ 2019-11-01 13:34 UTC (permalink / raw)
To: Geert Uytterhoeven; +Cc: Linux-Renesas, Chris Brandt, Magnus Damm, Linux ARM
On Wed, Oct 16, 2019 at 4:33 PM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
> If the DTB for a device with an RZ/A2 SoC lacks a device node for the
> BSID register, the ID validation code falls back to using a register at
> address 0x0, which leads to undefined behavior (e.g. reading back a
> random value).
>
> This could be fixed by letting fam_rza2.reg point to the actual BSID
> register. However, the hardcoded fallbacks were meant for backwards
> compatibility with old DTBs only, not for new SoCs. Hence fix this by
> validating renesas_family.reg before using it.
>
> Fixes: 175f435f44b724e3 ("soc: renesas: identify RZ/A2")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Queuing in renesas-devel for v5.5.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-11-01 13:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-16 14:33 [PATCH] soc: renesas: Add missing check for non-zero product register address Geert Uytterhoeven
2019-11-01 13:34 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).