⬢ DragonFlyBSD Kernel Audit
DF-2306 / fix.diff
← back to finding ↓ download raw
--- a/sys/bus/firewire/fwohci_pci.c
+++ b/sys/bus/firewire/fwohci_pci.c
@@ -187,8 +187,9 @@
 	if (pci_get_class(dev) == PCIC_SERIALBUS
 			&& pci_get_subclass(dev) == PCIS_SERIALBUS_FW
 			&& pci_get_progif(dev) == PCI_INTERFACE_OHCI) {
-		device_printf(dev, "vendor=%x, dev=%x\n", pci_get_vendor(dev),
-			pci_get_device(dev));
+		if (bootverbose)
+			device_printf(dev, "vendor=%x, dev=%x\n",
+			    pci_get_vendor(dev), pci_get_device(dev));
 		device_set_desc(dev, "1394 Open Host Controller Interface");
 		return 0;
 	}
@@ -320,6 +321,7 @@
 	if (err != 0) {
 		kprintf("fwohci_pci_attach: Could not allocate DMA tag "
 			"- error %d\n", err);
+		fwohci_pci_detach(self);
 			return (ENOMEM);
 	}
 
@@ -444,7 +446,6 @@
 		device_printf(parent, "probe_and_attach failed with err=%d\n",
 		    err);
 		fwohci_pci_detach(parent);
-		device_delete_child(parent, child);
 		return NULL;
 	}