Details
[Home]
Issue of the Implementation # L0010
Brief
drivers/net/irda/ali-ircc.c: Get spin_lock twice
Detailed Description
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);
Component
linux-kernel 2.6.31
Accepted
http://lkml.org/lkml/2009/10/8/113
https://lkml.org/lkml/2015/9/11/613
commit
Status
Fixed in kernel 4.3-rc3
List of traces
[Home]
»