e8684c8877
ali_ircc_sir_change_speed() is always called with self->lock held, so acquiring the lock inside it leads to unavoidable deadlock. Call graph: ali_ircc_sir_change_speed() is called from ali_ircc_change_speed() ali_ircc_fir_hard_xmit() under spin_lock_irqsave(&self->lock, flags); ali_ircc_sir_hard_xmit() under spin_lock_irqsave(&self->lock, flags); ali_ircc_net_ioctl() under spin_lock_irqsave(&self->lock, flags); ali_ircc_dma_xmit_complete() ali_ircc_fir_interrupt() ali_ircc_interrupt() under spin_lock(&self->lock); ali_ircc_sir_write_wakeup() ali_ircc_sir_interrupt() ali_ircc_interrupt() under spin_lock(&self->lock); The patch removes spin_lock/unlock from ali_ircc_sir_change_speed(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
act200l-sir.c | ||
actisys-sir.c | ||
ali-ircc.c | ||
ali-ircc.h | ||
au1k_ir.c | ||
bfin_sir.c | ||
bfin_sir.h | ||
donauboe.c | ||
donauboe.h | ||
esi-sir.c | ||
girbil-sir.c | ||
irda-usb.c | ||
irda-usb.h | ||
irtty-sir.c | ||
irtty-sir.h | ||
Kconfig | ||
kingsun-sir.c | ||
ks959-sir.c | ||
ksdazzle-sir.c | ||
litelink-sir.c | ||
ma600-sir.c | ||
Makefile | ||
mcp2120-sir.c | ||
mcs7780.c | ||
mcs7780.h | ||
nsc-ircc.c | ||
nsc-ircc.h | ||
old_belkin-sir.c | ||
pxaficp_ir.c | ||
sa1100_ir.c | ||
sh_irda.c | ||
sh_sir.c | ||
sir_dev.c | ||
sir_dongle.c | ||
sir-dev.h | ||
smsc-ircc2.c | ||
smsc-ircc2.h | ||
smsc-sio.h | ||
stir4200.c | ||
tekram-sir.c | ||
toim3232-sir.c | ||
via-ircc.c | ||
via-ircc.h | ||
vlsi_ir.c | ||
vlsi_ir.h | ||
w83977af_ir.c | ||
w83977af_ir.h | ||
w83977af.h |