Re: [PATCH] ia64: Depend on non-static printk for cmpxchg debug

From: Matthew Wilcox
Date: Fri Feb 26 2021 - 08:01:56 EST


On Fri, Feb 26, 2021 at 12:47:58PM +0000, Chris Down wrote:
> > ./include/linux/printk.h:219:5: error: static declaration of 'printk' follows non-static declaration
> > 219 | int printk(const char *s, ...)
> > | ^~~~~~
> > ./arch/ia64/include/uapi/asm/cmpxchg.h:142:14: note: previous declaration of 'printk' was here
> > 142 | extern int printk(const char *fmt, ...); \
> > | ^~~~~~
> >
> > Make CONFIG_IA64_DEBUG_CMPXCHG dependent on CONFIG_PRINTK to avoid this.

Why not just fix it?

diff --git a/arch/ia64/include/uapi/asm/cmpxchg.h b/arch/ia64/include/uapi/asm/cmpxchg.h
index 5d90307fd6e0..d955a8e3ebde 100644
--- a/arch/ia64/include/uapi/asm/cmpxchg.h
+++ b/arch/ia64/include/uapi/asm/cmpxchg.h
@@ -139,7 +139,7 @@ extern long ia64_cmpxchg_called_with_bad_pointer(void);
do { \
if (_cmpxchg_bugcheck_count-- <= 0) { \
void *ip; \
- extern int printk(const char *fmt, ...); \
+ int printk(const char *fmt, ...); \
ip = (void *) ia64_getreg(_IA64_REG_IP); \
printk("CMPXCHG_BUGCHECK: stuck at %p on word %p\n", ip, (v));\
break; \