From 0ad7b5c548ecf409a1fdd835bde52a8cf5371b7a Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Mon, 4 Jul 2011 07:38:33 +0200 Subject: PCI: set correct mask value when matching for bridges. The mask must not be zero otherwise the matching condition will never be true: ((val & mask) == set). Signed-off-by: Egbert Eich Reviewed-by: Guillem Jover --- src/common_bridge.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common_bridge.c b/src/common_bridge.c index 4a067b9..82a13fd 100644 --- a/src/common_bridge.c +++ b/src/common_bridge.c @@ -321,6 +321,8 @@ pci_device_get_bridge_buses(struct pci_device * dev, int *primary_bus, #define PCI_CLASS_BRIDGE 0x06 #define PCI_SUBCLASS_BRIDGE_PCI 0x04 +#define PCI_CLASS_MASK 0xFF +#define PCI_SUBCLASS_MASK 0xFF struct pci_device * pci_device_get_parent_bridge(struct pci_device *dev) @@ -328,7 +330,7 @@ pci_device_get_parent_bridge(struct pci_device *dev) struct pci_id_match bridge_match = { PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, (PCI_CLASS_BRIDGE << 16) | (PCI_SUBCLASS_BRIDGE_PCI << 8), - 0 + (PCI_CLASS_MASK << 16) | (PCI_SUBCLASS_MASK << 8) }; struct pci_device *bridge; -- cgit v1.2.3