diff --git a/include/asm-ppc/io.h b/include/asm-ppc/io.h
index 00b7ec57e40968624b87287a8324cd619c8612c5..7cc28bfe3a25c3bc048e46b0aa933b257184de4b 100644
--- a/include/asm-ppc/io.h
+++ b/include/asm-ppc/io.h
@@ -251,7 +251,7 @@ extern inline void out_be32(volatile unsigned __iomem *addr, int val)
 static inline void *
 map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
 {
-	return (void *)paddr;
+	return (void *)((unsigned long)paddr);
 }
 
 /*