Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 409d241b authored by Nathan Lynch's avatar Nathan Lynch Committed by Benjamin Herrenschmidt
Browse files

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: default avatarNathan Lynch <ntl@pobox.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent d6a8536a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
	}
}