Message ID | 1305147577-1812-1-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 99f9aa7..58b13f1 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -814,13 +814,14 @@ static __always_inline bool __is_kfree_rcu_offset(unsigned long offset) return offset < 4096; } +/* + * Intended to be called only from the kfree_rcu() macro. + */ static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); - BUILD_BUG_ON(!__builtin_constant_p(offset)); - /* See the kfree_rcu() header comment. */ BUILD_BUG_ON(!__is_kfree_rcu_offset(offset));
The initial definition of __kfree_rcu() checked a static inline function argument to see if it was a compile-time constant. Apparently not all compilers are willing to put up with this at all optimization levels. Add a nasty comment and remove the warning, relying on the fact that __kfree_rcu() is called only from kfree_rcu(), which always passes in a compile-time constant. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> --- include/linux/rcupdate.h | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)