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