diff options
author | Grzegorz Sygieda <grzegorz.sygieda@tieto.com> | 2010-05-20 18:28:30 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-05-25 02:23:14 -0400 |
commit | 4a12404ddaa06e8ec5e2c0d8ece4d821281e6024 (patch) | |
tree | 934a15de476cc21fd245bcf97eb78fc07c7b39a1 /drivers/spi/amba-pl022.c | |
parent | 781c7b129b1beb876905f7212927aa0ee1b022e5 (diff) |
spi/pl022: fix stop queue procedure
This fix prevents queue being marked as "stopped", if data exists
in the queue list.
Signed-off-by: Grzegorz Sygieda <grzegorz.sygieda@tieto.com>
Signed-off-by: Lukasz Baj <lukasz.baj@tieto.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/spi/amba-pl022.c')
-rw-r--r-- | drivers/spi/amba-pl022.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c index c75831c1deda..f0a1418ce660 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c | |||
@@ -1211,7 +1211,6 @@ static int stop_queue(struct pl022 *pl022) | |||
1211 | * A wait_queue on the pl022->busy could be used, but then the common | 1211 | * A wait_queue on the pl022->busy could be used, but then the common |
1212 | * execution path (pump_messages) would be required to call wake_up or | 1212 | * execution path (pump_messages) would be required to call wake_up or |
1213 | * friends on every SPI message. Do this instead */ | 1213 | * friends on every SPI message. Do this instead */ |
1214 | pl022->run = QUEUE_STOPPED; | ||
1215 | while (!list_empty(&pl022->queue) && pl022->busy && limit--) { | 1214 | while (!list_empty(&pl022->queue) && pl022->busy && limit--) { |
1216 | spin_unlock_irqrestore(&pl022->queue_lock, flags); | 1215 | spin_unlock_irqrestore(&pl022->queue_lock, flags); |
1217 | msleep(10); | 1216 | msleep(10); |
@@ -1220,6 +1219,7 @@ static int stop_queue(struct pl022 *pl022) | |||
1220 | 1219 | ||
1221 | if (!list_empty(&pl022->queue) || pl022->busy) | 1220 | if (!list_empty(&pl022->queue) || pl022->busy) |
1222 | status = -EBUSY; | 1221 | status = -EBUSY; |
1222 | else pl022->run = QUEUE_STOPPED; | ||
1223 | 1223 | ||
1224 | spin_unlock_irqrestore(&pl022->queue_lock, flags); | 1224 | spin_unlock_irqrestore(&pl022->queue_lock, flags); |
1225 | 1225 | ||