Thread (1 message) 1 message, 1 author, 2008-11-18

Re: [PATCH 15/16 v6] PCI: document the SR-IOV sysfs entries

From: Kay Sievers <hidden>
Date: 2008-11-18 16:49:05

On Mon, Nov 17, 2008 at 09:09, Yu Zhao [off-list ref] wrote:
On Fri, Nov 14, 2008 at 08:55:38AM +0800, Greg KH wrote:
quoted
There are also "conditional" attributes, which get only displayed if
some kind of condition is met, I think you want to use those.
The problem is the sysfs directory of the PCI device is created by the
kobject_add() in the device_add() as follows. And the static entries
bundled with the 'pci_bus_type' are created by the bus_add_device().
Between the kobject_add() and the kobject_uevent(), we don't have any
other choice to add the dynamic entries.

In device_add():

       error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev->bus_id);
       ...
       error = bus_add_device(dev);
       ...
       kobject_uevent(&dev->kobj, KOBJ_ADD);


So looks like the only way is to make the dynamic entries bundled with
the 'pci_bus_type', which means they would become static no matter the
device supports the entries (i.e. corresponding capabilities) or not.
There is device_add_attrs() which is just called between the calls you
mention above. Like Greg said, it can add groups, and groups have an
is_visible() callback, which can be used to conditionally create
attributes out of of predefined list.

Kay
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help