Browse Source

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>
main
Rob Herring 3 years ago committed by David Gibson
parent
commit
8fd24744e3
  1. 14
      checks.c

14
checks.c

@ -1573,14 +1573,20 @@ static void check_interrupt_provider(struct check *c, @@ -1573,14 +1573,20 @@ static void check_interrupt_provider(struct check *c,
struct node *node)
{
struct property *prop;
bool irq_provider = node_is_interrupt_provider(node);

if (!node_is_interrupt_provider(node))
prop = get_property(node, "#interrupt-cells");
if (irq_provider && !prop) {
FAIL(c, dti, node,
"Missing '#interrupt-cells' in interrupt provider");
return;
}

prop = get_property(node, "#interrupt-cells");
if (!prop)
if (!irq_provider && prop) {
FAIL(c, dti, node,
"Missing #interrupt-cells in interrupt provider");
"'#interrupt-cells' found, but node is not an interrupt provider");
return;
}
}
WARNING(interrupt_provider, check_interrupt_provider, NULL, &interrupts_extended_is_cell);


Loading…
Cancel
Save