On Wed, Dec 11, 2013 at 12:23:59PM +0000, Daniel P. Berrange wrote:
On Tue, Dec 10, 2013 at 07:57:01AM -0200, Thadeu Lima de Souza
Cascardo wrote:
> When determining if a device is behind a PCI bridge, the PCI device
> class is checked by reading the config space. However, there are some
> devices which have the wrong class on the config space, but the class is
> initialized by Linux correctly as a PCI BRIDGE. This class can be read
> by the sysfs file '/sys/bus/pci/devices/xxxx:xx:xx.x/class'.
Do you have any idea how long this file has been present in sysfs ? Hopefully
it is a fairly ancient feature, so we can rely on it existing ? Otherwise
we'll need to fallback to reading the config space when the sysfs file does
not exist.
At least 10 years, and before the config file was available (also more
than 10 years). :-)
> One example of such bridge is IBM PCI Bridge 1014:03b9, which
is
> identified as a Host Bridge when reading the config space.
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo(a)linux.vnet.ibm.com>
> ---
> src/util/virpci.c | 38 +++++++++++++++++++++++++++++++++++---
> 1 files changed, 35 insertions(+), 3 deletions(-)
Looks reasonable to me, though prefer Laine to ACK it since he knows
the PCI code best of anyone
Thanks for your review.
Cascardo.