[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180104103628.9461-1-asavkov@redhat.com>
Date: Thu, 4 Jan 2018 11:36:28 +0100
From: Artem Savkov <asavkov@...hat.com>
To: Herbert Xu <herbert@...dor.apana.org.au>
Cc: Steffen Klassert <steffen.klassert@...unet.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
Artem Savkov <asavkov@...hat.com>
Subject: [PATCH] xfrm: init skb_head lock for transport-mode packets
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 <asavkov@...hat.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
Powered by blists - more mailing lists