ARM: 8182/1: l2c: Make l2x0_cache_size_of_parse() return 'int'
authorFabio Estevam <festevam@gmail.com>
Wed, 29 Oct 2014 11:06:31 +0000 (12:06 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 29 Oct 2014 11:13:02 +0000 (11:13 +0000)
commitd0b92845e54590f0b59fccc0e10159f3b84825bd
treefd3233ccb3a41692ebebfc978468c52d6e8ca50e
parent2d605a3029726b881fc9df7fae75e6bf08d8a526
ARM: 8182/1: l2c: Make l2x0_cache_size_of_parse() return 'int'

Since commit f3354ab67476dc80 ("ARM: 8169/1: l2c: parse cache properties from
ePAPR definitions") the following error is seen on imx6q:

[    0.000000] PL310 OF: cache setting yield illegal associativity
[    0.000000] PL310 OF: -2147097556 calculated, only 8 and 16 legal

As imx6q does not pass the "cache-size" and "cache-sets" properties in DT, the function l2x0_cache_size_of_parse() returns early and keep the 'associativity' pointer uninitialized.

To fix this problem, return error codes inside l2x0_cache_size_of_parse() and only use the 'associativity' pointer result if l2x0_cache_size_of_parse() succeeds.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/cache-l2x0.c