Commit 4ae98789 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Martin Schwidefsky

s390: fix clang -Wpointer-sign warnigns in boot code

The arch/s390/boot directory is built with its own set of compiler
options that does not include -Wno-pointer-sign like the rest of
the kernel does, this causes a lot of harmless but correct warnings
when building with clang.

For the atomics, we can add type casts to avoid the warnings, for
everything else the easiest way is to slightly adapt the types
to be more consistent.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 964d06b4
...@@ -56,7 +56,7 @@ void store_ipl_parmblock(void) ...@@ -56,7 +56,7 @@ void store_ipl_parmblock(void)
ipl_block_valid = 1; ipl_block_valid = 1;
} }
static size_t scpdata_length(const char *buf, size_t count) static size_t scpdata_length(const u8 *buf, size_t count)
{ {
while (count) { while (count) {
if (buf[count - 1] != '\0' && buf[count - 1] != ' ') if (buf[count - 1] != '\0' && buf[count - 1] != ' ')
......
...@@ -73,7 +73,7 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -73,7 +73,7 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *ptr)
} }
#endif #endif
mask = 1UL << (nr & (BITS_PER_LONG - 1)); 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) static inline void clear_bit(unsigned long nr, volatile unsigned long *ptr)
...@@ -94,7 +94,7 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -94,7 +94,7 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *ptr)
} }
#endif #endif
mask = ~(1UL << (nr & (BITS_PER_LONG - 1))); 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) static inline void change_bit(unsigned long nr, volatile unsigned long *ptr)
...@@ -115,7 +115,7 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -115,7 +115,7 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *ptr)
} }
#endif #endif
mask = 1UL << (nr & (BITS_PER_LONG - 1)); mask = 1UL << (nr & (BITS_PER_LONG - 1));
__atomic64_xor(mask, addr); __atomic64_xor(mask, (long *)addr);
} }
static inline int static inline int
...@@ -125,7 +125,7 @@ test_and_set_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -125,7 +125,7 @@ test_and_set_bit(unsigned long nr, volatile unsigned long *ptr)
unsigned long old, mask; unsigned long old, mask;
mask = 1UL << (nr & (BITS_PER_LONG - 1)); mask = 1UL << (nr & (BITS_PER_LONG - 1));
old = __atomic64_or_barrier(mask, addr); old = __atomic64_or_barrier(mask, (long *)addr);
return (old & mask) != 0; return (old & mask) != 0;
} }
...@@ -136,7 +136,7 @@ test_and_clear_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -136,7 +136,7 @@ test_and_clear_bit(unsigned long nr, volatile unsigned long *ptr)
unsigned long old, mask; unsigned long old, mask;
mask = ~(1UL << (nr & (BITS_PER_LONG - 1))); mask = ~(1UL << (nr & (BITS_PER_LONG - 1)));
old = __atomic64_and_barrier(mask, addr); old = __atomic64_and_barrier(mask, (long *)addr);
return (old & ~mask) != 0; return (old & ~mask) != 0;
} }
...@@ -147,7 +147,7 @@ test_and_change_bit(unsigned long nr, volatile unsigned long *ptr) ...@@ -147,7 +147,7 @@ test_and_change_bit(unsigned long nr, volatile unsigned long *ptr)
unsigned long old, mask; unsigned long old, mask;
mask = 1UL << (nr & (BITS_PER_LONG - 1)); mask = 1UL << (nr & (BITS_PER_LONG - 1));
old = __atomic64_xor_barrier(mask, addr); old = __atomic64_xor_barrier(mask, (long *)addr);
return (old & mask) != 0; return (old & mask) != 0;
} }
......
...@@ -20,7 +20,7 @@ extern __u8 _ebc_tolower[256]; /* EBCDIC -> lowercase */ ...@@ -20,7 +20,7 @@ extern __u8 _ebc_tolower[256]; /* EBCDIC -> lowercase */
extern __u8 _ebc_toupper[256]; /* EBCDIC -> uppercase */ extern __u8 _ebc_toupper[256]; /* EBCDIC -> uppercase */
static inline void static inline void
codepage_convert(const __u8 *codepage, volatile __u8 * addr, unsigned long nr) codepage_convert(const __u8 *codepage, volatile char *addr, unsigned long nr)
{ {
if (nr-- <= 0) if (nr-- <= 0)
return; return;
......
...@@ -129,7 +129,7 @@ struct lowcore { ...@@ -129,7 +129,7 @@ struct lowcore {
/* SMP info area */ /* SMP info area */
__u32 cpu_nr; /* 0x03a0 */ __u32 cpu_nr; /* 0x03a0 */
__u32 softirq_pending; /* 0x03a4 */ __u32 softirq_pending; /* 0x03a4 */
__u32 preempt_count; /* 0x03a8 */ __s32 preempt_count; /* 0x03a8 */
__u32 spinlock_lockval; /* 0x03ac */ __u32 spinlock_lockval; /* 0x03ac */
__u32 spinlock_index; /* 0x03b0 */ __u32 spinlock_index; /* 0x03b0 */
__u32 fpu_flags; /* 0x03b4 */ __u32 fpu_flags; /* 0x03b4 */
......
...@@ -367,14 +367,14 @@ sclp_ascebc(unsigned char ch) ...@@ -367,14 +367,14 @@ sclp_ascebc(unsigned char ch)
/* translate string from EBCDIC to ASCII */ /* translate string from EBCDIC to ASCII */
static inline void 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); (MACHINE_IS_VM) ? EBCASC(str, nr) : EBCASC_500(str, nr);
} }
/* translate string from ASCII to EBCDIC */ /* translate string from ASCII to EBCDIC */
static inline void 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); (MACHINE_IS_VM) ? ASCEBC(str, nr) : ASCEBC_500(str, nr);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment