On Wed, 9 Jun 2021 19:38:10 +0100 Alexandru Elisei <alexandru.elisei@xxxxxxx> wrote: > Print a more helpful warning when a MMIO device hasn't set a function to > generate an FDT instead of causing a segmentation fault by dereferencing a > NULL pointer. Not calling generate_mmio_fdt_nodes() if it's NULL is certainly a good idea, but how did you trigger it? Because I am wondering whether every MMIO device needs to have an DT generator? And if that's not the case, a warning might be already too much. So either just drop a print at all or use pr_info()/pr_debug()? Cheers, Andre > > Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> > --- > arm/fdt.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arm/fdt.c b/arm/fdt.c > index 02091e9e0bee..06287a13e395 100644 > --- a/arm/fdt.c > +++ b/arm/fdt.c > @@ -171,7 +171,12 @@ static int setup_fdt(struct kvm *kvm) > 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_warning("Missing FDT node generator for MMIO device %d", > + dev_hdr->dev_num); > + } > dev_hdr = device__next_dev(dev_hdr); > } >