From: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@osdl.org> --- arch/m32r/boot/compressed/m32r_sio.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff -puN arch/m32r/boot/compressed/m32r_sio.c~m32r-support-m3a-2170mappi-iii-platform-fix arch/m32r/boot/compressed/m32r_sio.c --- 25/arch/m32r/boot/compressed/m32r_sio.c~m32r-support-m3a-2170mappi-iii-platform-fix 2005-06-03 00:51:02.000000000 -0700 +++ 25-akpm/arch/m32r/boot/compressed/m32r_sio.c 2005-06-03 00:51:02.000000000 -0700 @@ -6,6 +6,7 @@ */ #include <linux/config.h> +#include <asm/processor.h> static void putc(char c); @@ -38,10 +39,12 @@ static int puts(const char *s) static void putc(char c) { - while ((*BOOT_SIO0STS & 0x3) != 0x3) ; + while ((*BOOT_SIO0STS & 0x3) != 0x3) + cpu_relax(); if (c == '\n') { *BOOT_SIO0TXB = '\r'; - while ((*BOOT_SIO0STS & 0x3) != 0x3) ; + while ((*BOOT_SIO0STS & 0x3) != 0x3) + cpu_relax(); } *BOOT_SIO0TXB = c; } @@ -56,10 +59,12 @@ static void putc(char c) static void putc(char c) { - while ((*SIO0STS & 0x1) == 0) ; + while ((*SIO0STS & 0x1) == 0) + cpu_relax(); if (c == '\n') { *SIO0TXB = '\r'; - while ((*SIO0STS & 0x1) == 0) ; + while ((*SIO0STS & 0x1) == 0) + cpu_relax(); } *SIO0TXB = c; } _