diff options
author | Vitalii Demianets <vitas@nppfactor.kiev.ua> | 2013-06-20 16:36:00 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-24 16:31:21 -0700 |
commit | 34cb27528398738bea94852b99ef8fb05944ec41 (patch) | |
tree | 88a9e99282138bd21af563b98ab65ccc8ab088be /COPYING | |
parent | 077797117dfa209717e1f3f1416c1101c0e047f0 (diff) | |
download | linux-34cb27528398738bea94852b99ef8fb05944ec41.tar.bz2 |
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 'COPYING')
0 files changed, 0 insertions, 0 deletions