Thread (20 messages) 20 messages, 7 authors, 2015-09-28

[PATCH V4 1/2] ACPI / EC: Fix broken 64bit big-endian users of 'global_lock'

From: johannes@sipsolutions.net (Johannes Berg)
Date: 2015-09-25 18:49:19
Also in: alsa-devel, linux-acpi, linux-bluetooth, linux-iommu, linux-mm, linux-scsi, linux-wireless, lkml, netdev

Possibly related (same subject, not in this thread)

Rafael wrote:
quoted
Actually, what about adding a local u32 variable, say val, here and 
doing
quoted
 	if (!debugfs_create_x32("gpe", 0444, dev_dir, (u32 
*)&first_ec->gpe))
 		goto error;
 	if (!debugfs_create_bool("use_global_lock", 0444, 
dev_dir,
-				 (u32 *)&first_ec->global_lock))
+				 &first_ec->global_lock))
	if (!debugfs_create_bool("use_global_lock", 0444, dev_dir, 
&val))
quoted
 		goto error;
	first_ec->global_lock = val;

And then you can turn val into bool just fine without changing the 
structure
definition.
Ok, then, but that means Rafael is completely wrong ...
debugfs_create_bool() takes a *pointer* and it needs to be long-lived,
it can't be on the stack. You also don't get a call when it changes.

If you cannot change the struct definition then you must implement a
debugfs file with its own read/write handlers.

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