[PATCH libpciaccess] PCI: set correct mask value when matching for bridges.

Guillem Jover guillem at hadrons.org
Wed Dec 12 03:20:28 PST 2012


On Wed, 2012-12-05 at 12:30:11 -0500, Egbert Eich wrote:
> 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;

Reviewed-by: Guillem Jover <guillem at hadrons.org>

Regards,
Guillem


More information about the xorg-devel mailing list