git: 81b41b2ef5bf - main - ofw_firmware: Return BUS_PROBE_GENERIC instead of 0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Aug 2023 06:45:53 UTC
The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=81b41b2ef5bfd571123919e93d37624d53d4f589 commit 81b41b2ef5bfd571123919e93d37624d53d4f589 Author: Emmanuel Vadot <manu@FreeBSD.org> AuthorDate: 2023-08-15 05:59:09 +0000 Commit: Emmanuel Vadot <manu@FreeBSD.org> CommitDate: 2023-08-15 06:45:22 +0000 ofw_firmware: Return BUS_PROBE_GENERIC instead of 0 While here make it only probe if the node is directly under the root one. If it's not it's likely a device node named 'firmware' and not the firmware group we're interested in. Suggested by: jhb Sponsored by: Beckhoff Automation GmbH & Co. KG --- sys/dev/ofw/ofw_firmware.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dev/ofw/ofw_firmware.c b/sys/dev/ofw/ofw_firmware.c index 7d62fc317c1d..8723965f74be 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