On 10/20/2017 05:34 PM, Greg Kroah-Hartman wrote:
@@ -938,6 +940,7 @@ int device_add_properties(struct device *dev,
p->fwnode.ops = &pset_fwnode_ops;
        set_secondary_fwnode(dev, &p->fwnode);
+       p->dev = dev;

Don't you also need to increment the reference counter here?  Or how is
it assured that it will not go away?

I need to scratch my head on this. It sounds more robust to track references and remove properties when last reference is dropped in device_remove_properties(). What I don't know are properties be expected to be copied and be usable for another device for instance by ACPI_COMPANION_SET().

I can figure out case where properties are added to one device, another device gets reference to them via ACPI_COMPANION_SET() and properties get freed when the first device is removed. But should the second device be able to use those properties at first place?

Rafael: What's you opinion: should there be reference counting for device properties? Initial increment in device_add_properties(), other around ACPI_COMPANION_SET()/set_primary_fwnode() and decrementing in device_remove_properties().

--
Jarkko

Reply via email to