summaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorVitalii Demianets <vitas@nppfactor.kiev.ua>2013-06-20 16:36:00 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-24 16:31:21 -0700
commit34cb27528398738bea94852b99ef8fb05944ec41 (patch)
tree88a9e99282138bd21af563b98ab65ccc8ab088be /drivers/misc
parent077797117dfa209717e1f3f1416c1101c0e047f0 (diff)
downloadtalos-obmc-linux-34cb27528398738bea94852b99ef8fb05944ec41.tar.gz
talos-obmc-linux-34cb27528398738bea94852b99ef8fb05944ec41.zip
UIO: Fix concurrency issue
In a SMP case there was a race condition issue between uio_pdrv_genirq_irqcontrol() running on one CPU and irq handler on another CPU. Fix it by spin_locking shared resources access inside irq handler. Also: - Change disable_irq to disable_irq_nosync to avoid deadlock, because disable_irq waits for the completion of the irq handler; - Change atomic bit-manipulation routines to their non-atomic counterparts as we already are guarding the code by spinlock. Signed-off-by: Vitalii Demianets <vitas@nppfactor.kiev.ua> Reviewed-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud