powerpc/signal: Move inline functions in signal.h
To really be inlined, the functions need to be defined in the
same C file as the caller, or in an included header.
Move functions defined inline from signal .c in signal.h
Fixes: 3dd4eb83a9
("powerpc: move common register copy functions from signal_32.c to signal.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/35b1bd44a1a66f5bcf9b457a1c480ac8d5ef50b2.1597770847.git.christophe.leroy@csgroup.eu
This commit is contained in:
Родитель
d0e3fc69d0
Коммит
95593e930d
|
@ -133,36 +133,6 @@ unsigned long copy_ckvsx_from_user(struct task_struct *task,
|
|||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
|
||||
#else
|
||||
inline unsigned long copy_fpr_to_user(void __user *to,
|
||||
struct task_struct *task)
|
||||
{
|
||||
return __copy_to_user(to, task->thread.fp_state.fpr,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
inline unsigned long copy_fpr_from_user(struct task_struct *task,
|
||||
void __user *from)
|
||||
{
|
||||
return __copy_from_user(task->thread.fp_state.fpr, from,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
|
||||
inline unsigned long copy_ckfpr_to_user(void __user *to,
|
||||
struct task_struct *task)
|
||||
{
|
||||
return __copy_to_user(to, task->thread.ckfp_state.fpr,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
inline unsigned long copy_ckfpr_from_user(struct task_struct *task,
|
||||
void __user *from)
|
||||
{
|
||||
return __copy_from_user(task->thread.ckfp_state.fpr, from,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
|
||||
#endif
|
||||
|
||||
/* Log an error when sending an unhandled signal to a process. Controlled
|
||||
|
|
|
@ -19,14 +19,6 @@ extern int handle_signal32(struct ksignal *ksig, sigset_t *oldset,
|
|||
extern int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
|
||||
struct task_struct *tsk);
|
||||
|
||||
extern unsigned long copy_fpr_to_user(void __user *to,
|
||||
struct task_struct *task);
|
||||
extern unsigned long copy_ckfpr_to_user(void __user *to,
|
||||
struct task_struct *task);
|
||||
extern unsigned long copy_fpr_from_user(struct task_struct *task,
|
||||
void __user *from);
|
||||
extern unsigned long copy_ckfpr_from_user(struct task_struct *task,
|
||||
void __user *from);
|
||||
extern unsigned long get_tm_stackpointer(struct task_struct *tsk);
|
||||
|
||||
#ifdef CONFIG_VSX
|
||||
|
@ -38,6 +30,39 @@ extern unsigned long copy_vsx_from_user(struct task_struct *task,
|
|||
void __user *from);
|
||||
extern unsigned long copy_ckvsx_from_user(struct task_struct *task,
|
||||
void __user *from);
|
||||
unsigned long copy_fpr_to_user(void __user *to, struct task_struct *task);
|
||||
unsigned long copy_ckfpr_to_user(void __user *to, struct task_struct *task);
|
||||
unsigned long copy_fpr_from_user(struct task_struct *task, void __user *from);
|
||||
unsigned long copy_ckfpr_from_user(struct task_struct *task, void __user *from);
|
||||
#else
|
||||
static inline unsigned long
|
||||
copy_fpr_to_user(void __user *to, struct task_struct *task)
|
||||
{
|
||||
return __copy_to_user(to, task->thread.fp_state.fpr,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
static inline unsigned long
|
||||
copy_fpr_from_user(struct task_struct *task, void __user *from)
|
||||
{
|
||||
return __copy_from_user(task->thread.fp_state.fpr, from,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
|
||||
inline unsigned long copy_ckfpr_to_user(void __user *to, struct task_struct *task)
|
||||
{
|
||||
return __copy_to_user(to, task->thread.ckfp_state.fpr,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
|
||||
static inline unsigned long
|
||||
copy_ckfpr_from_user(struct task_struct *task, void __user *from)
|
||||
{
|
||||
return __copy_from_user(task->thread.ckfp_state.fpr, from,
|
||||
ELF_NFPREG * sizeof(double));
|
||||
}
|
||||
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
|
|
Загрузка…
Ссылка в новой задаче