powerpc: Move C prototypes out of asm-prototypes.h
We originally added asm-prototypes.h in commit42f5b4cacd
("powerpc: Introduce asm-prototypes.h"). It's purpose was for prototypes of C functions that are only called from asm, in order to fix sparse warnings about missing prototypes. A few months later Nick added a different use case in commit4efca4ed05
("kbuild: modversions for EXPORT_SYMBOL() for asm") for C prototypes for exported asm functions. This is basically the inverse of our original usage. Since then we've added various prototypes to asm-prototypes.h for both reasons, meaning we now need to unstitch it all. Dispatch prototypes of C functions into relevant headers and keep only the prototypes for functions defined in assembly. For the time being, leave prom_init() there because moving it into asm/prom.h or asm/setup.h conflicts with drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.o This will be fixed later by untaggling asm/pci.h and asm/prom.h or by renaming the function in shadowrom.c Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/62d46904eca74042097acf4cb12c175e3067f3d1.1646413435.git.christophe.leroy@csgroup.eu
This commit is contained in:
Родитель
a4abd55a24
Коммит
76222808fc
|
@ -19,19 +19,6 @@
|
|||
|
||||
#include <uapi/asm/ucontext.h>
|
||||
|
||||
/* SMP */
|
||||
extern struct task_struct *secondary_current;
|
||||
void start_secondary(void *unused);
|
||||
|
||||
/* kexec */
|
||||
struct kimage;
|
||||
void kexec_copy_flush(struct kimage *image);
|
||||
|
||||
/* pseries hcall tracing */
|
||||
extern struct static_key hcall_tracepoint_key;
|
||||
void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
|
||||
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
|
||||
|
||||
/* Ultravisor */
|
||||
#if defined(CONFIG_PPC_POWERNV) || defined(CONFIG_PPC_SVM)
|
||||
long ucall_norets(unsigned long opcode, ...);
|
||||
|
@ -47,43 +34,12 @@ int64_t __opal_call(int64_t a0, int64_t a1, int64_t a2, int64_t a3,
|
|||
int64_t a4, int64_t a5, int64_t a6, int64_t a7,
|
||||
int64_t opcode, uint64_t msr);
|
||||
|
||||
/* VMX copying */
|
||||
int enter_vmx_usercopy(void);
|
||||
int exit_vmx_usercopy(void);
|
||||
int enter_vmx_ops(void);
|
||||
void *exit_vmx_ops(void *dest);
|
||||
|
||||
/* signals, syscalls and interrupts */
|
||||
#ifdef CONFIG_PPC32
|
||||
int
|
||||
ppc_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||
struct __kernel_old_timeval __user *tvp);
|
||||
unsigned long __init early_init(unsigned long dt_ptr);
|
||||
void __init machine_init(u64 dt_ptr);
|
||||
#endif
|
||||
long system_call_exception(long r3, long r4, long r5, long r6, long r7, long r8, unsigned long r0, struct pt_regs *regs);
|
||||
notrace unsigned long syscall_exit_prepare(unsigned long r3, struct pt_regs *regs, long scv);
|
||||
notrace unsigned long interrupt_exit_user_prepare(struct pt_regs *regs);
|
||||
notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs);
|
||||
#ifdef CONFIG_PPC64
|
||||
unsigned long syscall_exit_restart(unsigned long r3, struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_user_restart(struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_kernel_restart(struct pt_regs *regs);
|
||||
#endif
|
||||
|
||||
long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low,
|
||||
u32 len_high, u32 len_low);
|
||||
|
||||
/* prom_init (OpenFirmware) */
|
||||
unsigned long __init prom_init(unsigned long r3, unsigned long r4,
|
||||
unsigned long pp,
|
||||
unsigned long r6, unsigned long r7,
|
||||
unsigned long kbase);
|
||||
|
||||
/* setup */
|
||||
void __init early_setup(unsigned long dt_ptr);
|
||||
void early_setup_secondary(void);
|
||||
|
||||
/* misc runtime */
|
||||
extern u64 __bswapdi2(u64);
|
||||
extern s64 __lshrdi3(s64, int);
|
||||
|
@ -94,11 +50,6 @@ extern int __ucmpdi2(u64, u64);
|
|||
|
||||
/* tracing */
|
||||
void _mcount(void);
|
||||
unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip,
|
||||
unsigned long sp);
|
||||
|
||||
void pnv_power9_force_smt4_catch(void);
|
||||
void pnv_power9_force_smt4_release(void);
|
||||
|
||||
/* Transaction memory related */
|
||||
void tm_enable(void);
|
||||
|
|
|
@ -19,6 +19,9 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr)
|
|||
return addr;
|
||||
}
|
||||
|
||||
unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip,
|
||||
unsigned long sp);
|
||||
|
||||
struct dyn_arch_ftrace {
|
||||
struct module *mod;
|
||||
};
|
||||
|
|
|
@ -501,6 +501,11 @@ long plpar_hcall_raw(unsigned long opcode, unsigned long *retbuf, ...);
|
|||
long plpar_hcall9(unsigned long opcode, unsigned long *retbuf, ...);
|
||||
long plpar_hcall9_raw(unsigned long opcode, unsigned long *retbuf, ...);
|
||||
|
||||
/* pseries hcall tracing */
|
||||
extern struct static_key hcall_tracepoint_key;
|
||||
void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
|
||||
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
|
||||
|
||||
struct hvcall_mpp_data {
|
||||
unsigned long entitled_mem;
|
||||
unsigned long mapped_mem;
|
||||
|
|
|
@ -636,6 +636,17 @@ static inline void interrupt_cond_local_irq_enable(struct pt_regs *regs)
|
|||
local_irq_enable();
|
||||
}
|
||||
|
||||
long system_call_exception(long r3, long r4, long r5, long r6, long r7, long r8,
|
||||
unsigned long r0, struct pt_regs *regs);
|
||||
notrace unsigned long syscall_exit_prepare(unsigned long r3, struct pt_regs *regs, long scv);
|
||||
notrace unsigned long interrupt_exit_user_prepare(struct pt_regs *regs);
|
||||
notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs);
|
||||
#ifdef CONFIG_PPC64
|
||||
unsigned long syscall_exit_restart(unsigned long r3, struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_user_restart(struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_kernel_restart(struct pt_regs *regs);
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _ASM_POWERPC_INTERRUPT_H */
|
||||
|
|
|
@ -96,6 +96,8 @@ static inline bool kdump_in_progress(void)
|
|||
void relocate_new_kernel(unsigned long indirection_page, unsigned long reboot_code_buffer,
|
||||
unsigned long start_address) __noreturn;
|
||||
|
||||
void kexec_copy_flush(struct kimage *image);
|
||||
|
||||
#ifdef CONFIG_KEXEC_FILE
|
||||
extern const struct kexec_file_ops kexec_elf64_ops;
|
||||
|
||||
|
|
|
@ -411,6 +411,8 @@ extern int powersave_nap; /* set if nap mode can be used in idle loop */
|
|||
extern void power7_idle_type(unsigned long type);
|
||||
extern void arch300_idle_type(unsigned long stop_psscr_val,
|
||||
unsigned long stop_psscr_mask);
|
||||
void pnv_power9_force_smt4_catch(void);
|
||||
void pnv_power9_force_smt4_release(void);
|
||||
|
||||
extern int fix_alignment(struct pt_regs *);
|
||||
|
||||
|
@ -427,6 +429,12 @@ extern int fix_alignment(struct pt_regs *);
|
|||
|
||||
int do_mathemu(struct pt_regs *regs);
|
||||
|
||||
/* VMX copying */
|
||||
int enter_vmx_usercopy(void);
|
||||
int exit_vmx_usercopy(void);
|
||||
int enter_vmx_ops(void);
|
||||
void *exit_vmx_ops(void *dest);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* _ASM_POWERPC_PROCESSOR_H */
|
||||
|
|
|
@ -76,6 +76,13 @@ static inline void setup_spectre_v2(void) {}
|
|||
#endif
|
||||
void __init do_btb_flush_fixups(void);
|
||||
|
||||
#ifdef CONFIG_PPC32
|
||||
unsigned long __init early_init(unsigned long dt_ptr);
|
||||
void __init machine_init(u64 dt_ptr);
|
||||
#endif
|
||||
void __init early_setup(unsigned long dt_ptr);
|
||||
void early_setup_secondary(void);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* _ASM_POWERPC_SETUP_H */
|
||||
|
|
|
@ -60,6 +60,9 @@ struct smp_ops_t {
|
|||
#endif
|
||||
};
|
||||
|
||||
extern struct task_struct *secondary_current;
|
||||
|
||||
void start_secondary(void *unused);
|
||||
extern int smp_send_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us);
|
||||
extern int smp_send_safe_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us);
|
||||
extern void smp_send_debugger_break(void);
|
||||
|
|
|
@ -18,6 +18,10 @@ asmlinkage long sys_mmap2(unsigned long addr, size_t len,
|
|||
unsigned long fd, unsigned long pgoff);
|
||||
asmlinkage long ppc64_personality(unsigned long personality);
|
||||
asmlinkage long sys_rtas(struct rtas_args __user *uargs);
|
||||
int ppc_select(int n, fd_set __user *inp, fd_set __user *outp,
|
||||
fd_set __user *exp, struct __kernel_old_timeval __user *tvp);
|
||||
long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low,
|
||||
u32 len_high, u32 len_low);
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
unsigned long compat_sys_mmap2(unsigned long addr, size_t len,
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
/*
|
||||
* We're called here very early in the boot.
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include <linux/compat.h>
|
||||
#include <linux/sched/debug.h> /* for show_regs */
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/kup.h>
|
||||
#include <asm/cputime.h>
|
||||
#include <asm/hw_irq.h>
|
||||
|
|
|
@ -64,7 +64,6 @@
|
|||
#include <asm/udbg.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/livepatch.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <asm/softirq_stack.h>
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <asm/machdep.h>
|
||||
#include <asm/mce.h>
|
||||
#include <asm/nmi.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/syscalls.h>
|
||||
|
||||
#include <asm/switch_to.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/debug.h>
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
#include <asm/kup.h>
|
||||
#include <asm/early_ioremap.h>
|
||||
#include <asm/pgalloc.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
|
|
|
@ -57,7 +57,6 @@
|
|||
#include <asm/vdso.h>
|
||||
#include <asm/debug.h>
|
||||
#include <asm/kexec.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/cpu_has_feature.h>
|
||||
#include <asm/ftrace.h>
|
||||
#include <asm/kup.h>
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include <asm/syscalls.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/unistd.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
static inline long do_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <asm/cache.h>
|
||||
#include <asm/8xx_immap.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
|
|
|
@ -69,7 +69,6 @@
|
|||
#include <asm/smp.h>
|
||||
#include <asm/vdso_datapage.h>
|
||||
#include <asm/firmware.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/mce.h>
|
||||
|
||||
/* powerpc clocksource/clockevent code */
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/list.h>
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/code-patching.h>
|
||||
#include <asm/ftrace.h>
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <asm/prom.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/hw_breakpoint.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/svm.h>
|
||||
#include <asm/ultravisor.h>
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <linux/cma.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/cputable.h>
|
||||
#include <asm/interrupt.h>
|
||||
#include <asm/kvm_ppc.h>
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include <asm/pnv-pci.h>
|
||||
#include <asm/opal.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/xive.h>
|
||||
#include <asm/xive-regs.h>
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include <linux/uaccess.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <asm/switch_to.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
int enter_vmx_usercopy(void)
|
||||
{
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
* Copyright (C) 2002 Anton Blanchard <anton@au.ibm.com>, IBM
|
||||
*/
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/interrupt.h>
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/mmu_context.h>
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include <linux/kfence.h>
|
||||
#include <linux/pkeys.h>
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/firmware.h>
|
||||
#include <asm/interrupt.h>
|
||||
#include <asm/page.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/cpu.h>
|
||||
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/firmware.h>
|
||||
#include <asm/interrupt.h>
|
||||
#include <asm/machdep.h>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include <linux/percpu.h>
|
||||
#include <linux/jump_label.h>
|
||||
#include <asm/trace.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
|
||||
#ifdef CONFIG_JUMP_LABEL
|
||||
struct static_key opal_tracepoint_key = STATIC_KEY_INIT;
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include <asm/plpar_wrappers.h>
|
||||
#include <asm/kexec.h>
|
||||
#include <asm/fadump.h>
|
||||
#include <asm/asm-prototypes.h>
|
||||
#include <asm/dtl.h>
|
||||
|
||||
#include "pseries.h"
|
||||
|
|
Загрузка…
Ссылка в новой задаче