Messages in this thread | | | Date | Tue, 5 Oct 2021 11:15:12 -0400 (EDT) | From | Mathieu Desnoyers <> | Subject | Re: [RFC][PATCH] rcu: Use typeof(p) instead of typeof(*p) * |
| |
----- On Oct 5, 2021, at 9:47 AM, rostedt rostedt@goodmis.org wrote: [...] > #define rcu_dereference_raw(p) \ > ({ \ > /* Dependency order vs. p above. */ \ > typeof(p) ________p1 = READ_ONCE(p); \ > - ((typeof(*p) __force __kernel *)(________p1)); \ > + ((typeof(p) __force __kernel)(________p1)); \ > })
AFAIU doing so removes validation that @p is indeed a pointer, so a user might mistakenly try to use rcu_dereference() on an integer, and get away with it. I'm not sure we want to loosen this check. I wonder if there might be another way to achieve the same check without requiring the structure to be declared, e.g. with __builtin_types_compatible_p ?
Thanks,
Mathieu
-- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com
| |