}
 #endif
        mask = 1UL << (nr & (BITS_PER_LONG - 1));
-       __atomic64_or(mask, addr);
+       __atomic64_or(mask, (long *)addr);
 }
 
 static inline void clear_bit(unsigned long nr, volatile unsigned long *ptr)
        }
 #endif
        mask = ~(1UL << (nr & (BITS_PER_LONG - 1)));
-       __atomic64_and(mask, addr);
+       __atomic64_and(mask, (long *)addr);
 }
 
 static inline void change_bit(unsigned long nr, volatile unsigned long *ptr)
        }
 #endif
        mask = 1UL << (nr & (BITS_PER_LONG - 1));
-       __atomic64_xor(mask, addr);
+       __atomic64_xor(mask, (long *)addr);
 }
 
 static inline int
        unsigned long old, mask;
 
        mask = 1UL << (nr & (BITS_PER_LONG - 1));
-       old = __atomic64_or_barrier(mask, addr);
+       old = __atomic64_or_barrier(mask, (long *)addr);
        return (old & mask) != 0;
 }
 
        unsigned long old, mask;
 
        mask = ~(1UL << (nr & (BITS_PER_LONG - 1)));
-       old = __atomic64_and_barrier(mask, addr);
+       old = __atomic64_and_barrier(mask, (long *)addr);
        return (old & ~mask) != 0;
 }
 
        unsigned long old, mask;
 
        mask = 1UL << (nr & (BITS_PER_LONG - 1));
-       old = __atomic64_xor_barrier(mask, addr);
+       old = __atomic64_xor_barrier(mask, (long *)addr);
        return (old & mask) != 0;
 }
 
 
        /* SMP info area */
        __u32   cpu_nr;                         /* 0x03a0 */
        __u32   softirq_pending;                /* 0x03a4 */
-       __u32   preempt_count;                  /* 0x03a8 */
+       __s32   preempt_count;                  /* 0x03a8 */
        __u32   spinlock_lockval;               /* 0x03ac */
        __u32   spinlock_index;                 /* 0x03b0 */
        __u32   fpu_flags;                      /* 0x03b4 */
 
 
 /* translate string from EBCDIC to ASCII */
 static inline void
-sclp_ebcasc_str(unsigned char *str, int nr)
+sclp_ebcasc_str(char *str, int nr)
 {
        (MACHINE_IS_VM) ? EBCASC(str, nr) : EBCASC_500(str, nr);
 }
 
 /* translate string from ASCII to EBCDIC */
 static inline void
-sclp_ascebc_str(unsigned char *str, int nr)
+sclp_ascebc_str(char *str, int nr)
 {
        (MACHINE_IS_VM) ? ASCEBC(str, nr) : ASCEBC_500(str, nr);
 }