arm/fdt.c: Don't generate the node if generator function is NULL
Print a more helpful debugging message when a MMIO device hasn't set a
function to generate an FDT node instead of causing a segmentation fault by
dereferencing a NULL pointer.
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Link: https://lore.kernel.org/r/20210713170631.155595-3-alexandru.elisei@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
diff --git a/arm/fdt.c b/arm/fdt.c
index 02091e9..7032985 100644
--- a/arm/fdt.c
+++ b/arm/fdt.c
@@ -171,7 +171,12 @@
dev_hdr = device__first_dev(DEVICE_BUS_MMIO);
while (dev_hdr) {
generate_mmio_fdt_nodes = dev_hdr->data;
- generate_mmio_fdt_nodes(fdt, dev_hdr, generate_irq_prop);
+ if (generate_mmio_fdt_nodes) {
+ generate_mmio_fdt_nodes(fdt, dev_hdr, generate_irq_prop);
+ } else {
+ pr_debug("Missing FDT node generator for MMIO device %d",
+ dev_hdr->dev_num);
+ }
dev_hdr = device__next_dev(dev_hdr);
}