Thread (8 messages) 8 messages, 3 authors, 2014-08-29

Re: [PATCH] ACPI: Add GPIO-signaled event emulator.

From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: 2014-08-21 14:54:43
Also in: lkml

On Thu, Aug 21, 2014 at 04:39:46PM +0200, Tomasz Nowicki wrote:
quoted
quoted
+{
+	struct gpio_pin_data *pin_data, *temp;
+
+	list_for_each_entry_safe(pin_data, temp, &pin_data_list, list)
+		kfree(pin_data);
I suppose you want to first remove the directory entries and then the
pin data. Otherwise if you get pre-empted at this point and someone
tries to use your debugfs files, bad things might happen.
Good catch!
quoted
quoted
+
+	debugfs_remove_recursive(acpi_evt_debugfs_dir);
Since this already removes everything below this dentry, why do you need
to store the pointer in gpio_pin_parent_data?
Not sure I got the question.

GPIO device instance (debugfs dir) is parent for all its pins (debugfs
nodes). I am using gpio_pin_parent_data as container to pass info for all
children so I can create debugfs node inside of parent related debugfs dir.

pin_data_list, however, is used to keep pointers to allocated memory (one
for each pins). debugfs_remove_recursive won't free it.
Yes but it removes the debugfs entries below so you don't need to store
the children debugfs dentries.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help