Re: [PATCH] device property: Track owner device of device property

From: Jarkko Nikula
Date: Tue Oct 24 2017 - 09:43:42 EST


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