== IPMI frontend singleton-guard matrix (pass 2, GLM 5.3) ==
== global: sys/dev/misc/ipmi/ipmi.c:65  int ipmi_attached = 0;
== set:    sys/dev/misc/ipmi/ipmi.c:864 ipmi_attached = 1;  (inside ipmi_attach, NEVER checked there)

--- ipmi_pci.c probe/identify guards:
48:static int ipmi_pci_probe(device_t dev);
73:ipmi_pci_probe(device_t dev)
77:	if (ipmi_attached)
78:		return (ENXIO);
83:		return (BUS_PROBE_DEFAULT);
86:	return (ENXIO);
99:		return (ENXIO);
112:		return (ENXIO);
115:		return (ENXIO);
135:		return (ENXIO);
166:	DEVMETHOD(device_probe,     ipmi_pci_probe),
183:ipmi2_pci_probe(device_t dev)

--- ipmi_isa.c probe/identify guards:
59:	    device_find_child(parent, "ipmi", -1) == NULL) {
77:ipmi_isa_probe(device_t dev)
85:	if (ipmi_attached)
86:		return (ENXIO);
90:		return (ENXIO);
93:	return (BUS_PROBE_DEFAULT);
183:		return (ENXIO);
196:		return (ENXIO);
198:		return (ENXIO);
221:			return (ENXIO);
273:	DEVMETHOD(device_probe,		ipmi_isa_probe),

--- ipmi_acpi.c probe/identify guards:
54:static int ipmi_acpi_probe(device_t);
58:ipmi_acpi_probe(device_t dev)
62:	if (ipmi_attached)
63:		return (EBUSY);
67:		return (ENXIO);
87:		return (ENXIO);
90:		return (ENXIO);
103:		return (ENXIO);
106:			return (ENXIO);
111:		return (ENXIO);
120:		return (ENXIO);
130:		return (ENXIO);

--- ipmi_smbus.c probe/identify guards:
52:static int ipmi_smbus_probe(device_t dev);
61:	    device_find_child(parent, "ipmi", -1) == NULL)
66:ipmi_smbus_probe(device_t dev)
70:	return (BUS_PROBE_DEFAULT);
82:		return (ENXIO);
86:		return (ENXIO);
117:	DEVMETHOD(device_probe,		ipmi_smbus_probe),

--- ipmi_pci.c SECOND probe (ipmi2_pci_probe, DF-5076 site):
static int
ipmi2_pci_probe(device_t dev)
{

	if (pci_get_class(dev) == PCIC_SERIALBUS &&
	    pci_get_subclass(dev) == PCIS_SERIALBUS_IPMI) {
		device_set_desc(dev, "IPMI System Interface");
		return (BUS_PROBE_GENERIC);
	}

	return (ENXIO);
}

== RESULT: 'ipmi_attached' guard present at:
sys/dev/misc/ipmi/ipmi_pci.c
sys/dev/misc/ipmi/ipmi_isa.c
sys/dev/misc/ipmi/ipmi_acpi.c
sys/dev/misc/ipmi/ipmi.c
== 'ipmi_attached' NEVER appears in sys/dev/misc/ipmi/ipmi_smbus.c:
0

== child-creation guard is per-parent only (ipmi_smbus.c:55-63):
static void
ipmi_smbus_identify(driver_t *driver, device_t parent)
{
	struct ipmi_get_info info;

	if (ipmi_smbios_identify(&info) && info.iface_type == SSIF_MODE &&
	    device_find_child(parent, "ipmi", -1) == NULL)
		BUS_ADD_CHILD(parent, parent, 0, "ipmi", -1);
}

== second-attach consequence chain ==
ipmi_smbus_attach -> ipmi_ssif_attach (ipmi_ssif.c:361-374, returns 0 unconditionally)
                  -> ipmi_attach    (ipmi.c:841-866, no singleton check, sets ipmi_attached=1, config_intrhook at 859)
intrhook ipmi_startup (ipmi.c:708) -> sc->ipmi_startup = ssif_startup (ipmi_ssif.c:353-359) -> kthread_create(ssif_loop)
ipmi_startup -> make_dev ipmi%d (ipmi.c:831)
