diff --git a/sys/dev/ofw/ofw_firmware.c b/sys/dev/ofw/ofw_firmware.c index 7d62fc317c1..8723965f74b 100644 --- a/sys/dev/ofw/ofw_firmware.c +++ b/sys/dev/ofw/ofw_firmware.c @@ -101,16 +101,21 @@ static int ofw_firmware_probe(device_t dev) { const char *name, *compat; + phandle_t root, parent; name = ofw_bus_get_name(dev); if (name == NULL || strcmp(name, "firmware") != 0) return (ENXIO); + parent = OF_parent(ofw_bus_get_node(dev)); + root = OF_finddevice("/"); + if (parent != root) + return (ENXIO); compat = ofw_bus_get_compat(dev); if (compat != NULL) return (ENXIO); device_set_desc(dev, "OFW Firmware Group"); - return (0); + return (BUS_PROBE_GENERIC); } static int