Re: [PATCH v2 1/1] xfrm : lock input tasklet skb queue
From: Joerg Vehlow <hidden>
Date: 2019-10-25 09:38:04
Also in:
lkml
Hi, I always expected this to be applied to the RT patches. That's why I originally send my patch to to Sebastian, Thomas and Steven (I added them again now. The website of the rt patches says patches for the CONFIG_REEMPT_RT patchset should be send to lkml. I hope one of the rt patch maintainers will reply here. Jörg Am 24.10.2019 um 12:31 schrieb Steffen Klassert:
On Tue, Oct 22, 2019 at 05:22:04PM -0700, Tom Rix wrote:quoted
On PREEMPT_RT_FULL while running netperf, a corruption of the skb queue causes an oops. This appears to be caused by a race condition here __skb_queue_tail(&trans->queue, skb); tasklet_schedule(&trans->tasklet); Where the queue is changed before the tasklet is locked by tasklet_schedule. The fix is to use the skb queue lock. This is the original work of Joerg Vehlow [off-list ref] https://lkml.org/lkml/2019/9/9/111 xfrm_input: Protect queue with lock During the skb_queue_splice_init the tasklet could have been preempted and __skb_queue_tail called, which led to an inconsistent queue. ifdefs for CONFIG_PREEMPT_RT_FULL added to reduce runtime effects on the normal kernel.Has Herbert commented on your initial patch, please fix PREEMPT_RT_FULL instead. There are certainly many more codepaths that take such assumptions. You can not fix this by distributing a spin_lock_irqsave here and there.