• Alexey Khoroshilov's avatar
    [media] cx88: Fix unsafe locking in suspend-resume · 5ddfbbb9
    Alexey Khoroshilov authored
    Legacy PCI suspend-resume handlers are called with interrupts enabled.
    
    But cx8800_suspend/cx8800_resume and
    cx8802_suspend_common/cx8802_resume_common use spin_lock/spin_unlock
    functions to acquire dev->slock, while the same lock is acquired in the
    corresponding irq-handlers: cx8800_irq and cx8802_irq.
    
    That means a deadlock is possible if an interrupt happens while suspend
    or resume owns the lock. The patch replaces spin_lock/spin_unlock with
    spin_lock_irqsave/spin_unlock_irqrestore.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    [mchehab@redhat.com: Fix CodingStyle]
    Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    5ddfbbb9
cx88-mpeg.c 24.3 KB