spi: pxa2xx: limit reaches -1
On line 944 the return value of flush() is considered as a boolean, but limit reaches -1 upon timeout which evaluates to true. On 540, 594, 720 the same occurs for wait_ssp_rx_stall() On 536 the same occurs for wait_dma_channel_stop() Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Eric Miao <eric.miao@marvell.com> Cc: David Brownell <david-b@pacbell.net> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
dc8c7f8919
Коммит
306c68aaa7
|
@ -213,7 +213,7 @@ static int flush(struct driver_data *drv_data)
|
|||
while (read_SSSR(reg) & SSSR_RNE) {
|
||||
read_SSDR(reg);
|
||||
}
|
||||
} while ((read_SSSR(reg) & SSSR_BSY) && limit--);
|
||||
} while ((read_SSSR(reg) & SSSR_BSY) && --limit);
|
||||
write_SSSR(SSSR_ROR, reg);
|
||||
|
||||
return limit;
|
||||
|
@ -484,7 +484,7 @@ static int wait_ssp_rx_stall(void const __iomem *ioaddr)
|
|||
{
|
||||
unsigned long limit = loops_per_jiffy << 1;
|
||||
|
||||
while ((read_SSSR(ioaddr) & SSSR_BSY) && limit--)
|
||||
while ((read_SSSR(ioaddr) & SSSR_BSY) && --limit)
|
||||
cpu_relax();
|
||||
|
||||
return limit;
|
||||
|
@ -494,7 +494,7 @@ static int wait_dma_channel_stop(int channel)
|
|||
{
|
||||
unsigned long limit = loops_per_jiffy << 1;
|
||||
|
||||
while (!(DCSR(channel) & DCSR_STOPSTATE) && limit--)
|
||||
while (!(DCSR(channel) & DCSR_STOPSTATE) && --limit)
|
||||
cpu_relax();
|
||||
|
||||
return limit;
|
||||
|
|
Загрузка…
Ссылка в новой задаче