Thread (16 messages) 16 messages, 5 authors, 2021-01-15

Re: [PATCH v2 1/3] software node: Introduce device_add_software_node()

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2021-01-13 15:31:07
Also in: linux-acpi, lkml

On Wed, Jan 13, 2021 at 01:39:18PM +0200, Heikki Krogerus wrote:
On Wed, Jan 13, 2021 at 12:40:03AM +0000, Daniel Scally wrote:
quoted
On 11/01/2021 14:10, Heikki Krogerus wrote:
...
quoted
quoted
+/**
+ * device_remove_software_node - Remove device's software node
+ * @dev: The device with the software node.
+ *
+ * This function will unregister the software node of @dev.
+ */
+void device_remove_software_node(struct device *dev)
+{
+	struct swnode *swnode;
+
+	swnode = dev_to_swnode(dev);
+	if (!swnode)
+		return;
+
+	kobject_put(&swnode->kobj);
+}
+EXPORT_SYMBOL_GPL(device_remove_software_node);
I wonder if this also ought to set dev_fwnode(dev)->secondary back to
ERR_PTR(-ENODEV)?
Actually it's a good question.
We can't do that here unfortunately. Other places still have a
reference to the swnode at this point and they may still need to
access it using the dev_fwnode(dev)->secondary pointer.
Yeah, but in this case we potentially leave a dangling pointer when last of the
user gone and kobject_put() will call for release.

-- 
With Best Regards,
Andy Shevchenko

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