Commit 2262a65f authored by Icenowy Zheng's avatar Icenowy Zheng Committed by Chen-Yu Tsai

drivers: soc: sunxi: fix error processing on base address when claiming

When claiming SRAM, if the base is set to an error, it means that the
SRAM controller has been probed, but failed to remap the controller
memory zone. If the base is zero, thus the SRAM controller should be not
probed at all, and it should return -EPROBE_DEFER. However, currently we
returned -EPROBE_DEFER in the former situation, and ignored the latter
situation (which will lead to the kernel to panic).

Fix the behavior on abnormal base address processing when claiming.
Signed-off-by: default avatarIcenowy Zheng <icenowy@aosc.io>
Fixes: 4af34b57 ("drivers: soc: sunxi: Introduce SoC driver to map
		      SRAMs")
Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
parent 189f0282
...@@ -190,6 +190,9 @@ int sunxi_sram_claim(struct device *dev) ...@@ -190,6 +190,9 @@ int sunxi_sram_claim(struct device *dev)
u32 val, mask; u32 val, mask;
if (IS_ERR(base)) if (IS_ERR(base))
return PTR_ERR(base);
if (!base)
return -EPROBE_DEFER; return -EPROBE_DEFER;
if (!dev || !dev->of_node) if (!dev || !dev->of_node)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment