diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2013-04-13 18:52:04 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-04-22 10:08:30 -0300 |
commit | 5ddfbbb9ca2e74d4b392ccef675641babba6b7f8 (patch) | |
tree | 8e2be3b14c057112be5d5d9fb8a708df2f06cc1e /lib/genalloc.c | |
parent | cdcfe40a5fee6a3300632b9a6e7f9de596f0b450 (diff) | |
download | linux-next-5ddfbbb9ca2e74d4b392ccef675641babba6b7f8.tar.gz |
[media] cx88: Fix unsafe locking in suspend-resume
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: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'lib/genalloc.c')
0 files changed, 0 insertions, 0 deletions