From 21264136ce7c3c7032c42e7c2440f5d89039ca5a Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Tue, 12 Sep 2006 14:36:46 +0900 Subject: [PATCH] sh64: Trivial build fixes. While we've been sorting out the toolchain fiasco, some of the code has suffered a bit of bitrot. Building with GCC4 also brings up some more build warnings. Trivial fixes for both issues. Signed-off-by: Paul Mundt --- arch/sh64/mach-cayman/setup.c | 6 ++++-- arch/sh64/mm/ioremap.c | 4 +++- drivers/serial/sh-sci.c | 4 ++-- include/asm-sh64/byteorder.h | 4 ++-- include/asm-sh64/dma-mapping.h | 16 ++++++++++++---- include/asm-sh64/io.h | 7 +++++++ include/asm-sh64/ptrace.h | 2 +- include/asm-sh64/system.h | 2 +- include/asm-sh64/uaccess.h | 19 +++++++------------ 9 files changed, 39 insertions(+), 25 deletions(-) diff --git a/arch/sh64/mach-cayman/setup.c b/arch/sh64/mach-cayman/setup.c index d84895dda3..3ed87cd059 100644 --- a/arch/sh64/mach-cayman/setup.c +++ b/arch/sh64/mach-cayman/setup.c @@ -112,8 +112,10 @@ struct resource io_resources[] = { }; struct resource kram_resources[] = { - { "Kernel code", 0, 0 }, /* These must be last in the array */ - { "Kernel data", 0, 0 } /* These must be last in the array */ + /* These must be last in the array */ + { .name = "Kernel code", .start = 0, .end = 0 }, + /* These must be last in the array */ + { .name = "Kernel data", .start = 0, .end = 0 } }; struct resource xram_resources[] = { diff --git a/arch/sh64/mm/ioremap.c b/arch/sh64/mm/ioremap.c index fb1866fa2c..80c56754f5 100644 --- a/arch/sh64/mm/ioremap.c +++ b/arch/sh64/mm/ioremap.c @@ -449,7 +449,9 @@ ioremap_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, if (p + 32 >= e) /* Better than nothing */ break; if ((nm = r->name) == 0) nm = "???"; - p += sprintf(p, "%08lx-%08lx: %s\n", r->start, r->end, nm); + p += sprintf(p, "%08lx-%08lx: %s\n", + (unsigned long)r->start, + (unsigned long)r->end, nm); } return p-buf; diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 301573373c..cbede06cac 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c @@ -1579,7 +1579,7 @@ static int __init serial_console_setup(struct console *co, char *options) h8300_sci_enable(port, sci_enable); #endif #elif defined(CONFIG_SUPERH64) - port->uartclk = current_cpu_info.module_clock * 16; + port->uartclk = current_cpu_data.module_clock * 16; #else { struct clk *clk = clk_get("module_clk"); @@ -1720,7 +1720,7 @@ static int __init sci_init(void) #if defined(__H8300H__) || defined(__H8300S__) sciport->port.uartclk = CONFIG_CPU_CLOCK; #elif defined(CONFIG_SUPERH64) - sciport->port.uartclk = current_cpu_info.module_clock * 16; + sciport->port.uartclk = current_cpu_data.module_clock * 16; #else struct clk *clk = clk_get("module_clk"); sciport->port.uartclk = clk_get_rate(clk) * 16; diff --git a/include/asm-sh64/byteorder.h b/include/asm-sh64/byteorder.h index f602ebe334..7419d78820 100644 --- a/include/asm-sh64/byteorder.h +++ b/include/asm-sh64/byteorder.h @@ -14,7 +14,7 @@ #include -static __inline__ __const__ __u32 ___arch__swab32(__u32 x) +static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) { __asm__("byterev %0, %0\n\t" "shari %0, 32, %0" @@ -23,7 +23,7 @@ static __inline__ __const__ __u32 ___arch__swab32(__u32 x) return x; } -static __inline__ __const__ __u16 ___arch__swab16(__u16 x) +static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) { __asm__("byterev %0, %0\n\t" "shari %0, 48, %0" diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index a74a49e479..68e27a8fca 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h @@ -126,22 +126,30 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, static inline void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir) - __attribute__ ((alias("dma_sync_single"))); +{ + dma_sync_single(dev, dma_handle, size, dir); +} static inline void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir) - __attribute__ ((alias("dma_sync_single"))); +{ + dma_sync_single(dev, dma_handle, size, dir); +} static inline void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, enum dma_data_direction dir) - __attribute__ ((alias("dma_sync_sg"))); +{ + dma_sync_sg(dev, sg, nelems, dir); +} static inline void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, enum dma_data_direction dir) - __attribute__ ((alias("dma_sync_sg"))); +{ + dma_sync_sg(dev, sg, nelems, dir); +} static inline int dma_get_cache_alignment(void) { diff --git a/include/asm-sh64/io.h b/include/asm-sh64/io.h index dee4f77929..252fedbb66 100644 --- a/include/asm-sh64/io.h +++ b/include/asm-sh64/io.h @@ -123,6 +123,13 @@ void insw(unsigned long port, void *addr, unsigned long count); void outsl(unsigned long port, const void *addr, unsigned long count); void insl(unsigned long port, void *addr, unsigned long count); +#define __raw_readb readb +#define __raw_readw readw +#define __raw_readl readl +#define __raw_writeb writeb +#define __raw_writew writew +#define __raw_writel writel + void memcpy_toio(void __iomem *to, const void *from, long count); void memcpy_fromio(void *to, void __iomem *from, long count); diff --git a/include/asm-sh64/ptrace.h b/include/asm-sh64/ptrace.h index 56190f5215..a6d4da519d 100644 --- a/include/asm-sh64/ptrace.h +++ b/include/asm-sh64/ptrace.h @@ -28,7 +28,7 @@ struct pt_regs { #ifdef __KERNEL__ #define user_mode(regs) (((regs)->sr & 0x40000000)==0) #define instruction_pointer(regs) ((regs)->pc) -#define profile_pc(regs) instruction_pointer(regs) +#define profile_pc(regs) ((unsigned long)instruction_pointer(regs)) extern void show_regs(struct pt_regs *); #endif diff --git a/include/asm-sh64/system.h b/include/asm-sh64/system.h index 87ef6f1ad5..b1598c26fc 100644 --- a/include/asm-sh64/system.h +++ b/include/asm-sh64/system.h @@ -64,7 +64,7 @@ extern void __xchg_called_with_bad_pointer(void); #define smp_read_barrier_depends() do { } while (0) #endif /* CONFIG_SMP */ -#define set_rmb(var, value) do { xchg(&var, value); } while (0) +#define set_rmb(var, value) do { (void)xchg(&var, value); } while (0) #define set_mb(var, value) set_rmb(var, value) /* Interrupt Control */ diff --git a/include/asm-sh64/uaccess.h b/include/asm-sh64/uaccess.h index f4936d8fa6..644c67b65f 100644 --- a/include/asm-sh64/uaccess.h +++ b/include/asm-sh64/uaccess.h @@ -128,25 +128,20 @@ do { \ #define __get_user_nocheck(x,ptr,size) \ ({ \ - long __gu_addr = (long)(ptr); \ - long __gu_err; \ - __typeof(*(ptr)) __gu_val; \ - __asm__ ("":"=r" (__gu_val)); \ - __asm__ ("":"=r" (__gu_err)); \ - __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ - (x) = (__typeof__(*(ptr))) __gu_val; \ + long __gu_err, __gu_val; \ + __get_user_size((void *)&__gu_val, (long)(ptr), \ + (size), __gu_err); \ + (x) = (__typeof__(*(ptr)))__gu_val; \ __gu_err; \ }) #define __get_user_check(x,ptr,size) \ ({ \ long __gu_addr = (long)(ptr); \ - long __gu_err = -EFAULT; \ - __typeof(*(ptr)) __gu_val; \ - __asm__ ("":"=r" (__gu_val)); \ - __asm__ ("":"=r" (__gu_err)); \ + long __gu_err = -EFAULT, __gu_val; \ if (__access_ok(__gu_addr, (size))) \ - __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ + __get_user_size((void *)&__gu_val, __gu_addr, \ + (size), __gu_err); \ (x) = (__typeof__(*(ptr))) __gu_val; \ __gu_err; \ }) -- 2.39.5