Commit acf568ee859f "xfrm: Reinject transport-mode packets through tasklet"
adds an sk_buff_head queue, but never initializes trans->queue.lock, which
results in a "spinlock bad magic" BUG on skb_queue_tail() call in
xfrm_trans_queue.
Use skb_queue_head_init() instead of __skb_queue_head_init() to properly
initialize said lock.

Signed-off-by: Artem Savkov <asav...@redhat.com>
---
 net/xfrm/xfrm_input.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index 26b10eb7a206..d5389b9dbbb9 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -542,7 +542,7 @@ void __init xfrm_input_init(void)
                struct xfrm_trans_tasklet *trans;
 
                trans = &per_cpu(xfrm_trans_tasklet, i);
-               __skb_queue_head_init(&trans->queue);
+               skb_queue_head_init(&trans->queue);
                tasklet_init(&trans->tasklet, xfrm_trans_reinject,
                             (unsigned long)trans);
        }
-- 
2.13.6

Reply via email to