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;
 }
_