Message ID | 20220520181432.149904-1-dmitry.osipenko@collabora.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b64b3b2f1d81f83519582e1feee87d77f51f5f17 |
Headers | show |
Series | [v1] dmaengine: pl330: Fix lockdep warning about non-static key | expand |
On 20-05-22, 21:14, Dmitry Osipenko wrote: > The DEFINE_SPINLOCK() macro shouldn't be used for dynamically allocated > spinlocks. The lockdep warns about this and disables locking validator. > Fix the warning by making lock static. > > INFO: trying to register non-static key. > The code is fine but needs lockdep annotation, or maybe > you didn't initialize this object before use? > turning off the locking correctness validator. > Hardware name: Radxa ROCK Pi 4C (DT) > Call trace: > dump_backtrace.part.0+0xcc/0xe0 > show_stack+0x18/0x6c > dump_stack_lvl+0x8c/0xb8 > dump_stack+0x18/0x34 > register_lock_class+0x4a8/0x4cc > __lock_acquire+0x78/0x20cc > lock_acquire.part.0+0xe0/0x230 > lock_acquire+0x68/0x84 > _raw_spin_lock_irqsave+0x84/0xc4 > add_desc+0x44/0xc0 > pl330_get_desc+0x15c/0x1d0 > pl330_prep_dma_cyclic+0x100/0x270 > snd_dmaengine_pcm_trigger+0xec/0x1c0 > dmaengine_pcm_trigger+0x18/0x24 > ... Applied, thanks
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 858400e42ec0..09915a5cba3e 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2589,7 +2589,7 @@ static struct dma_pl330_desc *pl330_get_desc(struct dma_pl330_chan *pch) /* If the DMAC pool is empty, alloc new */ if (!desc) { - DEFINE_SPINLOCK(lock); + static DEFINE_SPINLOCK(lock); LIST_HEAD(pool); if (!add_desc(&pool, &lock, GFP_ATOMIC, 1))
The DEFINE_SPINLOCK() macro shouldn't be used for dynamically allocated spinlocks. The lockdep warns about this and disables locking validator. Fix the warning by making lock static. INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. Hardware name: Radxa ROCK Pi 4C (DT) Call trace: dump_backtrace.part.0+0xcc/0xe0 show_stack+0x18/0x6c dump_stack_lvl+0x8c/0xb8 dump_stack+0x18/0x34 register_lock_class+0x4a8/0x4cc __lock_acquire+0x78/0x20cc lock_acquire.part.0+0xe0/0x230 lock_acquire+0x68/0x84 _raw_spin_lock_irqsave+0x84/0xc4 add_desc+0x44/0xc0 pl330_get_desc+0x15c/0x1d0 pl330_prep_dma_cyclic+0x100/0x270 snd_dmaengine_pcm_trigger+0xec/0x1c0 dmaengine_pcm_trigger+0x18/0x24 ... Fixes: e588710311ee ("dmaengine: pl330: fix descriptor allocation fail") Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> --- drivers/dma/pl330.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)