----- Original Message ----- > This patch exports assignment flag of PCI device via sysfs, so user > space application could know if PCI device was assigned to guest OS > or not via interface as following from viewpoint of host device > management: > > PCI device was assigned to guest OS > $cat /sys/devices/pci0000:00/0000:00:1f.3/assigned > 1 > > PCI device isn't assigned to guest OS > $cat /sys/devices/pci0000:00/0000:00:1f.3/assigned > 0 > > Compiled and tested with v3.18.1 > > Signed-off-by: Ethan Zhao <ethan.zhao@xxxxxxxxxx> > --- > drivers/pci/pci-sysfs.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c > index 2c6643f..0ac3780 100644 > --- a/drivers/pci/pci-sysfs.c > +++ b/drivers/pci/pci-sysfs.c > @@ -547,6 +547,15 @@ static ssize_t driver_override_show(struct device *dev, > } > static DEVICE_ATTR_RW(driver_override); > > +static ssize_t assigned_show(struct device *dev, struct device_attribute > *attr, > + char *buf) > +{ > + struct pci_dev *pdev = to_pci_dev(dev); > + > + return sprintf(buf, "%d\n", pci_is_dev_assigned(pdev) ? 1 : 0); > +} > +static DEVICE_ATTR_RO(assigned); > + > static struct attribute *pci_dev_attrs[] = { > &dev_attr_resource.attr, > &dev_attr_vendor.attr, > @@ -573,6 +582,7 @@ static struct attribute *pci_dev_attrs[] = { > &dev_attr_devspec.attr, > #endif > &dev_attr_driver_override.attr, > + &dev_attr_assigned.attr, > NULL, > }; > NAK. The assigned attribute of a device is already in contention, it's racy and not universally used. If we can't even make it a consistent and reliable internal interface, we certainly shouldn't be exposing it to userspace. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html