diff options
author | Albert Herranz <albert_herranz@yahoo.es> | 2009-12-17 03:33:41 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-12-17 23:13:57 -0500 |
commit | 698cd335a782561b79504d4e98c7df62b08e7abd (patch) | |
tree | 44b3056c81ff1032ffd6c6681cf9e08c12746af8 /arch/powerpc/boot | |
parent | 38e1313fc753482b93aa6c6f11cfbd43a5bcd963 (diff) |
powerpc/gamecube/wii: Fix off-by-one error in ugecon/usbgecko_udbg
The retry logic in ug_putc() is broken.
If the TX fifo is not ready and the counter runs out it will have a
value of -1 and no transfer should be attempted. Also, a counter
with a value of 0 means that the TX fifo got ready in the last try
and the transfer should be attempted.
Reported-by: "Juha Leppanen" <juha_motorsportcom@luukku.com>
Signed-off-by: "Juha Leppanen" <juha_motorsportcom@luukku.com>
Signed-off-by: Albert Herranz <albert_herranz@yahoo.es>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/boot')
-rw-r--r-- | arch/powerpc/boot/ugecon.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/boot/ugecon.c b/arch/powerpc/boot/ugecon.c index 50609ea6ddf8..8f2a6b311534 100644 --- a/arch/powerpc/boot/ugecon.c +++ b/arch/powerpc/boot/ugecon.c | |||
@@ -86,7 +86,7 @@ static void ug_putc(char ch) | |||
86 | 86 | ||
87 | while (!ug_is_txfifo_ready() && count--) | 87 | while (!ug_is_txfifo_ready() && count--) |
88 | barrier(); | 88 | barrier(); |
89 | if (count) | 89 | if (count >= 0) |
90 | ug_raw_putc(ch); | 90 | ug_raw_putc(ch); |
91 | } | 91 | } |
92 | 92 | ||