Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

thread_info: move function declarations to linux/thread_info.h

There are a few __weak functions in kernel/fork.c, which architectures
can override. If there is no prototype, the compiler warns about them:

kernel/fork.c:164:13: error: no previous prototype for 'arch_release_task_struct' [-Werror=missing-prototypes]
kernel/fork.c:991:20: error: no previous prototype for 'arch_task_cache_init' [-Werror=missing-prototypes]
kernel/fork.c:1086:12: error: no previous prototype for 'arch_dup_task_struct' [-Werror=missing-prototypes]

There are already prototypes in a number of architecture specific headers
that have addressed those warnings before, but it's much better to have
these in a single place so the warning no longer shows up anywhere.

Link: https://lkml.kernel.org/r/20230517131102.934196-14-arnd@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Eric Paris <eparis@redhat.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Moore <paul@paul-moore.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rafael J. Wysocki <rafael@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Waiman Long <longman@redhat.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Arnd Bergmann and committed by
Andrew Morton
af0a76e1 73648e6f

+5 -13
-4
arch/arm64/include/asm/thread_info.h
··· 55 55 void arch_setup_new_exec(void); 56 56 #define arch_setup_new_exec arch_setup_new_exec 57 57 58 - void arch_release_task_struct(struct task_struct *tsk); 59 - int arch_dup_task_struct(struct task_struct *dst, 60 - struct task_struct *src); 61 - 62 58 #endif 63 59 64 60 #define TIF_SIGPENDING 0 /* signal pending */
-3
arch/s390/include/asm/thread_info.h
··· 52 52 53 53 struct task_struct; 54 54 55 - void arch_release_task_struct(struct task_struct *tsk); 56 - int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); 57 - 58 55 void arch_setup_new_exec(void); 59 56 #define arch_setup_new_exec arch_setup_new_exec 60 57
-3
arch/sh/include/asm/thread_info.h
··· 84 84 85 85 #define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT) 86 86 87 - extern void arch_task_cache_init(void); 88 - extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); 89 - extern void arch_release_task_struct(struct task_struct *tsk); 90 87 extern void init_thread_xstate(void); 91 88 92 89 #endif /* __ASSEMBLY__ */
-3
arch/x86/include/asm/thread_info.h
··· 232 232 current_thread_info()->status & TS_COMPAT) 233 233 #endif 234 234 235 - extern void arch_task_cache_init(void); 236 - extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); 237 - extern void arch_release_task_struct(struct task_struct *tsk); 238 235 extern void arch_setup_new_exec(void); 239 236 #define arch_setup_new_exec arch_setup_new_exec 240 237 #endif /* !__ASSEMBLY__ */
+5
include/linux/thread_info.h
··· 256 256 static inline void arch_setup_new_exec(void) { } 257 257 #endif 258 258 259 + void arch_task_cache_init(void); /* for CONFIG_SH */ 260 + void arch_release_task_struct(struct task_struct *tsk); 261 + int arch_dup_task_struct(struct task_struct *dst, 262 + struct task_struct *src); 263 + 259 264 #endif /* __KERNEL__ */ 260 265 261 266 #endif /* _LINUX_THREAD_INFO_H */