Commit cae683dc authored by Laurent Dufour's avatar Laurent Dufour Committed by Pavel Emelyanov

ppc64: Fix build regressions

The build on powerPC has been broken when doing some code cleanup
recently.

This patch fixes these regressions.

Fixes: f8a1a1d8d95e ("parasite-syscall: get rid of code_syscall{,size} globals")
Fixes: 69d88241584e ("sigframe: move setup_sas & make it inliner")
Signed-off-by: 's avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
Acked-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 227068c8
...@@ -78,7 +78,7 @@ int syscall_seized(struct parasite_ctl *ctl, int nr, unsigned long *ret, ...@@ -78,7 +78,7 @@ int syscall_seized(struct parasite_ctl *ctl, int nr, unsigned long *ret,
regs.gpr[7] = arg5; regs.gpr[7] = arg5;
regs.gpr[8] = arg6; regs.gpr[8] = arg6;
err = __parasite_execute_syscall(ctl, &regs, code_syscall); err = __parasite_execute_syscall(ctl, &regs, (char*)code_syscall);
*ret = regs.gpr[3]; *ret = regs.gpr[3];
return err; return err;
......
...@@ -101,7 +101,7 @@ struct rt_sigframe { ...@@ -101,7 +101,7 @@ struct rt_sigframe {
"r"(&thread_args[i]) /* %6 */ \ "r"(&thread_args[i]) /* %6 */ \
: "memory","0","3","4","5","6","7","14","15") : "memory","0","3","4","5","6","7","14","15")
#define RT_SIGFRAME_UC(rt_sigframe) (&rt_sigframe->uc) #define RT_SIGFRAME_UC(rt_sigframe) (&(rt_sigframe)->uc)
#define RT_SIGFRAME_REGIP(rt_sigframe) ((long unsigned int)(rt_sigframe)->uc.uc_mcontext.gp_regs[PT_NIP]) #define RT_SIGFRAME_REGIP(rt_sigframe) ((long unsigned int)(rt_sigframe)->uc.uc_mcontext.gp_regs[PT_NIP])
#define RT_SIGFRAME_HAS_FPU(rt_sigframe) (1) #define RT_SIGFRAME_HAS_FPU(rt_sigframe) (1)
#define RT_SIGFRAME_FPU(rt_sigframe) ((rt_sigframe)->uc.uc_mcontext) #define RT_SIGFRAME_FPU(rt_sigframe) ((rt_sigframe)->uc.uc_mcontext)
......
...@@ -9,11 +9,12 @@ ...@@ -9,11 +9,12 @@
static inline void setup_sas(struct rt_sigframe* sigframe, ThreadSasEntry *sas) static inline void setup_sas(struct rt_sigframe* sigframe, ThreadSasEntry *sas)
{ {
if (sas) { if (sas) {
struct rt_ucontext *uc = RT_SIGFRAME_UC(sigframe); #define UC RT_SIGFRAME_UC(sigframe)
uc->uc_stack.ss_sp = (void *)decode_pointer((sas)->ss_sp); UC->uc_stack.ss_sp = (void *)decode_pointer((sas)->ss_sp);
uc->uc_stack.ss_flags = (int)(sas)->ss_flags; UC->uc_stack.ss_flags = (int)(sas)->ss_flags;
uc->uc_stack.ss_size = (size_t)(sas)->ss_size; UC->uc_stack.ss_size = (size_t)(sas)->ss_size;
#undef UC
} }
} }
...@@ -21,7 +22,7 @@ int construct_sigframe(struct rt_sigframe *sigframe, ...@@ -21,7 +22,7 @@ int construct_sigframe(struct rt_sigframe *sigframe,
struct rt_sigframe *rsigframe, struct rt_sigframe *rsigframe,
CoreEntry *core) CoreEntry *core)
{ {
k_rtsigset_t *blk_sigset = &RT_SIGFRAME_UC(sigframe)->uc_sigmask; k_rtsigset_t *blk_sigset = (k_rtsigset_t*)&RT_SIGFRAME_UC(sigframe)->uc_sigmask;
if (core->tc) if (core->tc)
memcpy(blk_sigset, &core->tc->blk_sigset, sizeof(k_rtsigset_t)); memcpy(blk_sigset, &core->tc->blk_sigset, sizeof(k_rtsigset_t));
......
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