checks: Ensure '#interrupt-cells' only exists in interrupt providers
The interrupt provider check currently checks if an interrupt provider has #interrupt-cells, but not whether #interrupt-cells is present outside of interrupt-providers. Rework the check to cover the latter case. Cc: Andre Przywara <andre.przywara@arm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Rob Herring <robh@kernel.org> Message-Id: <20211011191245.1009682-4-robh@kernel.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
d8d1a9a778
commit
8fd24744e3
1 changed files with 11 additions and 5 deletions
16
checks.c
16
checks.c
|
@ -1573,14 +1573,20 @@ static void check_interrupt_provider(struct check *c,
|
|||
struct node *node)
|
||||
{
|
||||
struct property *prop;
|
||||
|
||||
if (!node_is_interrupt_provider(node))
|
||||
return;
|
||||
bool irq_provider = node_is_interrupt_provider(node);
|
||||
|
||||
prop = get_property(node, "#interrupt-cells");
|
||||
if (!prop)
|
||||
if (irq_provider && !prop) {
|
||||
FAIL(c, dti, node,
|
||||
"Missing #interrupt-cells in interrupt provider");
|
||||
"Missing '#interrupt-cells' in interrupt provider");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!irq_provider && prop) {
|
||||
FAIL(c, dti, node,
|
||||
"'#interrupt-cells' found, but node is not an interrupt provider");
|
||||
return;
|
||||
}
|
||||
}
|
||||
WARNING(interrupt_provider, check_interrupt_provider, NULL, &interrupts_extended_is_cell);
|
||||
|
||||
|
|
Loading…
Reference in a new issue