diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 7e190d15c60e98be1b2a68f191e33f19b5ed42d8..584cbce358c5aedeff87fb780bf5f9c4b99e95ed 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -25,7 +25,7 @@
 #define readw(addr) \
   ({ unsigned short __v = (*(volatile unsigned short *) (addr)); __v; })
 #define readl(addr) \
-  ({ unsigned long __v = (*(volatile unsigned long *) (addr)); __v; })
+	({ unsigned int __v = (*(volatile unsigned int *) (addr)); __v; })
 
 #define writeb(b, addr) \
   (void)((*(volatile unsigned char *) (addr)) = (b))