Messages in this thread | | | Date | Thu, 8 Jun 2006 09:28:02 +0200 | From | Heiko Carstens <> | Subject | Re: 2.6.17-rc5-mm2 link issues on s390 |
| |
> This patch adds __raw_writeq required by __iowrite64_copy. > > It also adds all the related quad routines. > > Signed-off-by: Cedric Le Goater <clg@fr.ibm.com> > > --- > include/asm-s390/io.h | 5 +++++ > 1 files changed, 5 insertions(+) > > Index: 2.6.17-rc5-mm2/include/asm-s390/io.h > =================================================================== > --- 2.6.17-rc5-mm2.orig/include/asm-s390/io.h > +++ 2.6.17-rc5-mm2/include/asm-s390/io.h > @@ -86,20 +86,25 @@ > #define readb(addr) (*(volatile unsigned char *) __io_virt(addr)) > #define readw(addr) (*(volatile unsigned short *) __io_virt(addr)) > #define readl(addr) (*(volatile unsigned int *) __io_virt(addr)) > +#define readq(addr) (*(volatile unsigned long *) __io_virt(addr)) > > #define readb_relaxed(addr) readb(addr) > #define readw_relaxed(addr) readw(addr) > #define readl_relaxed(addr) readl(addr) > +#define readq_relaxed(addr) readq(addr) > #define __raw_readb readb > #define __raw_readw readw > #define __raw_readl readl > +#define __raw_readq readq > > #define writeb(b,addr) (*(volatile unsigned char *) __io_virt(addr) = (b)) > #define writew(b,addr) (*(volatile unsigned short *) __io_virt(addr) = (b)) > #define writel(b,addr) (*(volatile unsigned int *) __io_virt(addr) = (b)) > +#define writeq(b,addr) (*(volatile unsigned long *) __io_virt(addr) = (b))
This looks wrong: "b" is a u64 and you write it to something that is an unsigned long. We're going to miss a few bits on 31 bit platforms... - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |