of/unittest: Add test that of_address_to_resource() fails on non-translatable address

BugLink: https://bugs.launchpad.net/bugs/2109640

[ Upstream commit 44748065ed321041db6e18cdcaa8c2a9554768ac ]

of_address_to_resource() on a non-translatable address should return an
error. Additionally, this case also triggers a spurious WARN for
missing #address-cells/#size-cells.

Link: https://lore.kernel.org/r/20250110215030.3637845-1-robh@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
Rob Herring (Arm)
2025-01-10 15:50:28 -06:00
committed by Stefan Bader
parent b59210bafc
commit 80df0a0cb1
2 changed files with 27 additions and 0 deletions
@@ -34,5 +34,18 @@
};
};
};
platform-tests-2 {
// No #address-cells or #size-cells
node {
#address-cells = <1>;
#size-cells = <1>;
test-device@100 {
compatible = "test-sub-device";
reg = <0x100 1>;
};
};
};
};
};
+14
View File
@@ -1186,6 +1186,7 @@ static void __init of_unittest_bus_3cell_ranges(void)
static void __init of_unittest_reg(void)
{
struct device_node *np;
struct resource res;
int ret;
u64 addr, size;
@@ -1202,6 +1203,19 @@ static void __init of_unittest_reg(void)
np, addr);
of_node_put(np);
np = of_find_node_by_path("/testcase-data/platform-tests-2/node/test-device@100");
if (!np) {
pr_err("missing testcase data\n");
return;
}
ret = of_address_to_resource(np, 0, &res);
unittest(ret == -EINVAL, "of_address_to_resource(%pOF) expected error on untranslatable address\n",
np);
of_node_put(np);
}
struct of_unittest_expected_res {