DragonFly BSD
DragonFly kernel List (threaded) for 2006-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

CardBus patch


From: Chuck Tuffli <ctuffli@xxxxxxxxx>
Date: Thu, 11 May 2006 20:47:25 -0700

Tripped across this today. cbb_probe() assumes that the subclass field is unique. This patch further qualifies the check to verify that the device belongs to the bus class as well before claiming the device.

---chuck
Index: sys/dev/pccard/pccbb/pccbb.c
===================================================================
RCS file: /local/dcvs/src/sys/dev/pccard/pccbb/pccbb.c,v
retrieving revision 1.12
diff -u -r1.12 pccbb.c
--- sys/dev/pccard/pccbb/pccbb.c	19 Dec 2005 01:18:58 -0000	1.12
+++ sys/dev/pccard/pccbb/pccbb.c	12 May 2006 03:39:02 -0000
@@ -373,6 +373,7 @@
 	const char *name;
 	uint32_t progif;
 	uint32_t subclass;
+	uint32_t class;
 
 	/*
 	 * Do we know that we support the chipset?  If so, then we
@@ -391,9 +392,10 @@
 	 * are supported by the pcic driver.  This should help us be more
 	 * future proof.
 	 */
+	class = pci_get_class(brdev);
 	subclass = pci_get_subclass(brdev);
 	progif = pci_get_progif(brdev);
-	if (subclass == PCIS_BRIDGE_CARDBUS && progif == 0) {
+	if (class == PCIC_BRIDGE && subclass == PCIS_BRIDGE_CARDBUS && progif == 0) {
 		device_set_desc(brdev, "PCI-CardBus Bridge");
 		return (0);
 	}


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]