34cb275283
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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
uio.c | ||
uio_aec.c | ||
uio_cif.c | ||
uio_dmem_genirq.c | ||
uio_netx.c | ||
uio_pci_generic.c | ||
uio_pdrv.c | ||
uio_pdrv_genirq.c | ||
uio_pruss.c | ||
uio_sercos3.c |