*/
 static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
 {
-       unsigned int sum, __dummy0, __dummy1;
+       __wsum sum;
+       unsigned int __dummy0, __dummy1;
 
        __asm__ __volatile__(
                "mov.l  @%1+, %0\n\t"
 {
        if (!access_ok(dst, len))
                return 0;
-       return csum_partial_copy_generic((__force const void *)src, dst, len);
+       return csum_partial_copy_generic(src, (__force void *)dst, len);
 }
 #endif /* __ASM_SH_CHECKSUM_H */
 
 ({                                                                     \
        long __gu_err = -EFAULT;                                        \
        unsigned long __gu_val = 0;                                     \
-       const __typeof__(*(ptr)) *__gu_addr = (ptr);                    \
+       const __typeof__(*(ptr)) __user *__gu_addr = (ptr);                     \
        if (likely(access_ok(__gu_addr, (size))))               \
                __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
        (x) = (__force __typeof__(*(ptr)))__gu_val;                     \
  * Clear the area and return remaining number of bytes
  * (on failure.  Usually it's 0.)
  */
-__kernel_size_t __clear_user(void *addr, __kernel_size_t size);
+__kernel_size_t __clear_user(void __user *addr, __kernel_size_t size);
 
 #define clear_user(addr,n)                                             \
 ({                                                                     \
 
                inc_unaligned_user_access();
 
                oldfs = force_uaccess_begin();
-               if (copy_from_user(&instruction, (insn_size_t *)(regs->pc & ~1),
+               if (copy_from_user(&instruction, (insn_size_t __user *)(regs->pc & ~1),
                                   sizeof(instruction))) {
                        force_uaccess_end(oldfs);
                        goto uspace_segv;
        unsigned short inst = 0;
        int err;
 
-       get_user(inst, (unsigned short*)regs->pc);
+       get_user(inst, (unsigned short __user *)regs->pc);
 
        err = do_fpu_inst(inst, regs);
        if (!err) {
                return;
 
 #ifdef CONFIG_SH_FPU_EMU
-       get_user(inst, (unsigned short *)regs->pc + 1);
+       get_user(inst, (unsigned short __user *)regs->pc + 1);
        if (!do_fpu_inst(inst, regs)) {
-               get_user(inst, (unsigned short *)regs->pc);
+               get_user(inst, (unsigned short __user *)regs->pc);
                if (!emulate_branch(inst, regs))
                        return;
                /* fault in branch.*/
 
 #define Rn     (regs->regs[n])
 #define Rm     (regs->regs[m])
 
-#define WRITE(d,a)     ({if(put_user(d, (typeof (d)*)a)) return -EFAULT;})
-#define READ(d,a)      ({if(get_user(d, (typeof (d)*)a)) return -EFAULT;})
+#define WRITE(d,a)     ({if(put_user(d, (typeof (d) __user *)a)) return -EFAULT;})
+#define READ(d,a)      ({if(get_user(d, (typeof (d) __user *)a)) return -EFAULT;})
 
 #define PACK_S(r,f)    FP_PACK_SP(&r,f)
 #define UNPACK_S(f,r)  FP_UNPACK_SP(f,&r)
 
        return 0;
 }
 
-__kernel_size_t __clear_user(void *to, __kernel_size_t n)
+__kernel_size_t __clear_user(void __user *to, __kernel_size_t n)
 {
-       memset(to, 0, n);
+       memset((__force void *)to, 0, n);
        return 0;
 }