alistair23-linux/drivers/uio
Vitalii Demianets 34cb275283 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>
2013-06-24 16:31:21 -07:00
..
Kconfig uio: UIO_DMEM_GENIRQ should depend on HAS_DMA 2013-05-21 10:13:23 -07:00
Makefile Add new uio device for dynamic memory allocation 2012-10-24 15:39:08 -07:00
uio.c drivers: uio: Fix UIO device registration failure 2013-03-29 09:08:22 -07:00
uio_aec.c uio/uio_aec: Use module_pci_driver to register driver 2013-05-21 10:10:41 -07:00
uio_cif.c uio/uio_cif: Use module_pci_driver to register driver 2013-05-21 10:10:41 -07:00
uio_dmem_genirq.c drivers: uio_dmem_genirq: Use of_match_ptr() macro 2013-06-24 16:29:59 -07:00
uio_netx.c uio/uio_netx: Use module_pci_driver to register driver 2013-05-21 10:10:41 -07:00
uio_pci_generic.c uio/uio_pci_generic: Use module_pci_driver to register driver 2013-05-21 13:59:25 -07:00
uio_pdrv.c uio_pdrv: set memory mapping name 2012-11-15 17:29:07 -08:00
uio_pdrv_genirq.c UIO: Fix concurrency issue 2013-06-24 16:31:21 -07:00
uio_pruss.c uio: uio_pruss: Fix potential NULL pointer dereference 2013-06-06 12:54:09 -07:00
uio_sercos3.c uio/uio_sercos3: Use module_pci_driver to register driver 2013-05-21 10:10:41 -07:00