On Wed, Apr 20, 2016 at 04:10:42PM +0200, Andrew Jones wrote: > On Wed, Apr 20, 2016 at 03:18:54PM +0200, Alexander Gordeev wrote: > > This update also adds missing __iomem specificator which > > has been used by existing IO accessors. > > > > Cc: Andrew Jones <drjones@xxxxxxxxxx> > > Cc: Thomas Huth <thuth@xxxxxxxxxx> > > Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> > > Signed-off-by: Alexander Gordeev <agordeev@xxxxxxxxxx> > > --- > > lib/asm-generic/io.h | 4 ++-- > > lib/x86/asm/io.h | 2 ++ > > 2 files changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/lib/asm-generic/io.h b/lib/asm-generic/io.h > > index 5c29ece..1ac2b97 100644 > > --- a/lib/asm-generic/io.h > > +++ b/lib/asm-generic/io.h > > @@ -195,10 +195,10 @@ static inline void outl(uint32_t value, unsigned long port) > > #endif > > > > #ifndef ioremap > > -static inline void *ioremap(u64 phys_addr, size_t size __unused) > > +static inline void __iomem *ioremap(phys_addr_t phys_addr, size_t size __unused) > > { > > assert(sizeof(long) == 8 || !(phys_addr >> 32)); > > - return (void *)(unsigned long)phys_addr; > > + return (void __iomem *)phys_addr; > > Now that you've removed the unsigned long cast, what happens on 32bit builds > here? Doesn't it fail to compile due to a bad cast? Indeed, it does :/ > > } > > #endif > > > > diff --git a/lib/x86/asm/io.h b/lib/x86/asm/io.h > > index 03f41af..fe975ff 100644 > > --- a/lib/x86/asm/io.h > > +++ b/lib/x86/asm/io.h > > @@ -4,6 +4,8 @@ > > #include "asm/page.h" > > #include "asm/barrier.h" > > > > +#define __iomem > > + > > #define inb inb > > static inline uint8_t inb(unsigned long port) > > { > > -- > > 1.8.3.1 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe kvm" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html