|
@@ -3121,7 +3121,9 @@ __call_rcu(struct rcu_head *head, rcu_callback_t func,
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
struct rcu_data *rdp;
|
|
struct rcu_data *rdp;
|
|
|
|
|
|
- WARN_ON_ONCE((unsigned long)head & 0x1); /* Misaligned rcu_head! */
|
|
|
|
|
|
+ /* Misaligned rcu_head! */
|
|
|
|
+ WARN_ON_ONCE((unsigned long)head & (sizeof(void *) - 1));
|
|
|
|
+
|
|
if (debug_rcu_head_queue(head)) {
|
|
if (debug_rcu_head_queue(head)) {
|
|
/* Probable double call_rcu(), so leak the callback. */
|
|
/* Probable double call_rcu(), so leak the callback. */
|
|
WRITE_ONCE(head->func, rcu_leak_callback);
|
|
WRITE_ONCE(head->func, rcu_leak_callback);
|