Hi, the patch below removes the (unsigned long) casts from the io macros. All io related functions use void __iomem pointers since long. Signed-of-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> tglx --- a/include/asm-arm/arch-ep93xx/io.h Mon Jul 18 07:10:17 2005 +++ b/include/asm-arm/arch-ep93xx/io.h Mon Jul 18 10:00:18 2005 @@ -22,9 +22,9 @@ #define IO_SPACE_LIMIT 0xffffffff -#define __io(a) ((unsigned long) IO_ADDRESS(a)) -#define __mem_pci(a) ((unsigned long)(a)) -#define __mem_isa(a) ((unsigned long)(a)) +#define __io(a) (IO_ADDRESS(a)) +#define __mem_pci(a) (a) +#define __mem_isa(a) (a) /* * Generic virtual read/write