spi-xilinx: Remove ISR race condition
commitc0a9d1e4be5c4619f9e7d2c27d7455799f269a4d
authorPeter Crosthwaite <peter.crosthwaite@petalogix.com>
Sat, 29 Sep 2012 01:45:36 +0000 (29 11:45 +1000)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 25 Oct 2012 16:41:23 +0000 (25 18:41 +0200)
treee7969e011f03ee54e523435bce3233f0cf09812c
parent61addcfc54ea39e1c8ce5723ffc813405d2a644f
spi-xilinx: Remove ISR race condition

The ISR currently consumes the rx buffer data and re-enables transmission
from within interrupt context. This is bad because if the interrupt
occurs again before the ISR exits, the new interrupt will be erroneously
cleared by the still completing ISR.

Simplified the ISR by just setting the completion variable and exiting with
no action. Then just looped the transmit functionality in
xilinx_spi_txrx_bufs().

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
drivers/spi/spi-xilinx.c