← Back to team overview

ubuntu-x-swat team mailing list archive

Re: [Bug 681207] Re: PCI device header type doesn't include bit7

 

Thanks, Bryce.

About the bridge.pci pointer, as it stands the function will not go pass
that pointer checking and always return with ENODEV. You see priv is a
local variable (structure) and only its first member "base", which is a
pci_device structure, gets filled in with valid data from caller by type
casting (from pci_device* to pci_device_priv). The union member
"bridge", which is a pointer, is not part of the pci_device structure.
As such, the value will be null every time the function is called. So
without fixing this pointer checking thing, the code below it will never
get executed.


-----Original Message-----
From: bounces@xxxxxxxxxxxxx [mailto:bounces@xxxxxxxxxxxxx] On Behalf Of
Bryce Harrington
Sent: Wednesday, December 01, 2010 6:57 PM
To: Chihpin Wu
Subject: [Bug 681207] Re: PCI device header type doesn't include bit7

Chih-Pin Wu thank you, I've incorporated your change into Ubuntu.

I've also forwarded the patch upstream.  I left out the removal of the
bridge.pci since it appears this was deliberately added; instead I've
emailed Jesse Barnes for clarification as to why that was added.  I may
follow up on this bug report later depending on his advice.

-- 
You received this bug notification because you are a direct subscriber
of the bug.
https://bugs.launchpad.net/bugs/681207

Title:
  PCI device header type doesn't include bit7

Status in "libpciaccess" package in Ubuntu:
  Fix Released

Bug description:
  Within the function pci_device_get_bridge_buses() in file
common_bridge.c, "priiv->header_type" is used to detect the bridge type
without bit 7 (indicating multi-function or not) stripped. As a result
the detection would always fail for multi-function card. I see this
error in both versions 0.10.6 and 0.12.0.

Beside this problem, version 0.12.0 has a pointer check
"priv->bridge.pci" upon fuction entrance and just return "ENODEV" if it
is null. The problem is that the pointer never got initialized in the
first place and will always be null. This checking should be removed.

To unsubscribe from this bug, go to:
https://bugs.launchpad.net/ubuntu/+source/libpciaccess/+bug/681207/+subs
cribe

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to libpciaccess in ubuntu.
https://bugs.launchpad.net/bugs/681207

Title:
  PCI device header type doesn't include bit7



Follow ups

References