mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 15:20:58 +07:00
powerpc: Use correct ccr bit for syscall error status
The powerpc implementations of syscall_get_error and syscall_set_return_value should use CCR0:S0 (0x10000000) for testing and setting syscall error status. Fortunately these APIs don't seem to be used at the moment. Signed-off-by: Nathan Lynch <ntl@pobox.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
d6a8536a93
commit
409d241b7b
@ -30,7 +30,7 @@ static inline void syscall_rollback(struct task_struct *task,
|
||||
static inline long syscall_get_error(struct task_struct *task,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
return (regs->ccr & 0x1000) ? -regs->gpr[3] : 0;
|
||||
return (regs->ccr & 0x10000000) ? -regs->gpr[3] : 0;
|
||||
}
|
||||
|
||||
static inline long syscall_get_return_value(struct task_struct *task,
|
||||
@ -44,10 +44,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
|
||||
int error, long val)
|
||||
{
|
||||
if (error) {
|
||||
regs->ccr |= 0x1000L;
|
||||
regs->ccr |= 0x10000000L;
|
||||
regs->gpr[3] = -error;
|
||||
} else {
|
||||
regs->ccr &= ~0x1000L;
|
||||
regs->ccr &= ~0x10000000L;
|
||||
regs->gpr[3] = val;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user