[PATCH libpciaccess] PCI: set correct mask value when matching for bridges.
Egbert Eich
eich at freedesktop.org
Wed Sep 7 08:56:55 PDT 2011
On Wed, Sep 07, 2011 at 05:05:58PM +0200, Mark Kettenis wrote:
> > From: Egbert Eich <eich at freedesktop.org>
> > Date: Wed, 7 Sep 2011 16:44:48 +0200
> >
> > The mask must not be zero otherwise the matching condition will never
> > be true: ((val & mask) == set).
>
> > ---
> > src/common_bridge.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/common_bridge.c b/src/common_bridge.c
> > index 871c1f6..aea9435 100644
> > --- a/src/common_bridge.c
> > +++ b/src/common_bridge.c
> > @@ -328,7 +328,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_BRIDGE << 16) | (PCI_SUBCLASS_BRIDGE_PCI << 8)
>
> Shouldn't that be:
>
> - 0
> + (0xff << 16) | (0xff << 8)
>
> Unless I'm mistaken with your diff it will spuriously match stuff that
> isn't a PCI bridge either.
Yes, of course, you are right.
Cheers,
Egbert.
More information about the xorg-devel
mailing list