• Jisheng Zhang's avatar
    i3c: master: dw: fix deadlock · f36c1f9a
    Jisheng Zhang authored
    In dw_i3c_master_irq_handler(), we already have gotten
    &master->xferqueue.lock, if we try to get the same lock again in
    dw_i3c_master_dequeue_xfer(), deadlock happens.
    
    We fix this issue by introduing dw_i3c_master_dequeue_xfer_locked()
    which does all what dw_i3c_master_dequeue_xfer() does without trying
    to lock &master->xferqueue.lock.
    Signed-off-by: default avatarJisheng Zhang <Jisheng.Zhang@synaptics.com>
    Acked-by: Vitor Soares <vitor.soares@synopsys.com>
    Signed-off-by: default avatarBoris Brezillon <bbrezillon@kernel.org>
    f36c1f9a
dw-i3c-master.c 32 KB