mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 01:51:34 +00:00
mtd: rawnand: Fix probe failure due to of_get_nand_secure_regions()
Due to14f97f0b8e
, the rawnand platforms without "secure-regions" property defined in DT fails to probe. The issue is, of_get_nand_secure_regions() errors out if of_property_count_elems_of_size() returns a negative error code. If the "secure-regions" property is not present in DT, then also we'll get -EINVAL from of_property_count_elems_of_size() but it should not be treated as an error for platforms not declaring "secure-regions" in DT. So fix this behaviour by checking for the existence of that property in DT and return 0 if it is not present. Fixes:14f97f0b8e
("mtd: rawnand: Add a check in of_get_nand_secure_regions()") Reported-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Martin Kaiser <martin@kaiser.cx> Tested-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20210727062813.32619-1-manivannan.sadhasivam@linaro.org
This commit is contained in:
parent
b7abb05168
commit
b48027083a
@ -5228,8 +5228,14 @@ static bool of_get_nand_on_flash_bbt(struct device_node *np)
|
||||
static int of_get_nand_secure_regions(struct nand_chip *chip)
|
||||
{
|
||||
struct device_node *dn = nand_get_flash_node(chip);
|
||||
struct property *prop;
|
||||
int nr_elem, i, j;
|
||||
|
||||
/* Only proceed if the "secure-regions" property is present in DT */
|
||||
prop = of_find_property(dn, "secure-regions", NULL);
|
||||
if (!prop)
|
||||
return 0;
|
||||
|
||||
nr_elem = of_property_count_elems_of_size(dn, "secure-regions", sizeof(u64));
|
||||
if (nr_elem <= 0)
|
||||
return nr_elem;
|
||||
|
Loading…
Reference in New Issue
Block a user