Skip to content

Commit

Permalink
spi/pl022: fix stop queue procedure
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Grzegorz Sygieda authored and Grant Likely committed May 25, 2010
1 parent 781c7b1 commit 4a12404
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/spi/amba-pl022.c
Original file line number Diff line number Diff line change
Expand Up @@ -1211,7 +1211,6 @@ static int stop_queue(struct pl022 *pl022)
* A wait_queue on the pl022->busy could be used, but then the common
* execution path (pump_messages) would be required to call wake_up or
* friends on every SPI message. Do this instead */
pl022->run = QUEUE_STOPPED;
while (!list_empty(&pl022->queue) && pl022->busy && limit--) {
spin_unlock_irqrestore(&pl022->queue_lock, flags);
msleep(10);
Expand All @@ -1220,6 +1219,7 @@ static int stop_queue(struct pl022 *pl022)

if (!list_empty(&pl022->queue) || pl022->busy)
status = -EBUSY;
else pl022->run = QUEUE_STOPPED;

spin_unlock_irqrestore(&pl022->queue_lock, flags);

Expand Down

0 comments on commit 4a12404

Please sign in to comment.