[PATCH libpciaccess] PCI: set correct mask value when matching for bridges.
Egbert Eich
eich at freedesktop.org
Wed Dec 5 09:30:11 PST 2012
The mask must not be zero otherwise the matching condition will never
be true: ((val & mask) == set).
Signed-off-by: Egbert Eich <eich at freedesktop.org>
---
src/common_bridge.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
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;
--
1.7.7
More information about the xorg-devel
mailing list