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

Commit 6717c282 authored by David S. Miller's avatar David S. Miller
Browse files

sparc: Add __KERNEL__ ifdef protection to pt_regs helpers.



Some of them use 'bool' and whatnot and therefore are not
kosher for userspace, so don't export them there.

Reported by Roland McGrath.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9c636e30
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -40,16 +40,6 @@ struct pt_regs {
#define UREG_FP        UREG_I6
#define UREG_RETPC     UREG_I7

static inline bool pt_regs_is_syscall(struct pt_regs *regs)
{
	return (regs->psr & PSR_SYSCALL);
}

static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
{
	return (regs->psr &= ~PSR_SYSCALL);
}

/* A register window */
struct reg_window {
	unsigned long locals[8];
@@ -72,6 +62,16 @@ struct sparc_stackf {

#ifdef __KERNEL__

static inline bool pt_regs_is_syscall(struct pt_regs *regs)
{
	return (regs->psr & PSR_SYSCALL);
}

static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
{
	return (regs->psr &= ~PSR_SYSCALL);
}

#define user_mode(regs) (!((regs)->psr & PSR_PS))
#define instruction_pointer(regs) ((regs)->pc)
#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
+15 −16
Original line number Diff line number Diff line
@@ -37,21 +37,6 @@ struct pt_regs {
	unsigned int magic;
};

static inline int pt_regs_trap_type(struct pt_regs *regs)
{
	return regs->magic & 0x1ff;
}

static inline bool pt_regs_is_syscall(struct pt_regs *regs)
{
	return (regs->tstate & TSTATE_SYSCALL);
}

static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
{
	return (regs->tstate &= ~TSTATE_SYSCALL);
}

struct pt_regs32 {
	unsigned int psr;
	unsigned int pc;
@@ -128,6 +113,21 @@ struct sparc_trapf {

#ifdef __KERNEL__

static inline int pt_regs_trap_type(struct pt_regs *regs)
{
	return regs->magic & 0x1ff;
}

static inline bool pt_regs_is_syscall(struct pt_regs *regs)
{
	return (regs->tstate & TSTATE_SYSCALL);
}

static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
{
	return (regs->tstate &= ~TSTATE_SYSCALL);
}

struct global_reg_snapshot {
	unsigned long		tstate;
	unsigned long		tpc;
@@ -154,7 +154,6 @@ extern unsigned long profile_pc(struct pt_regs *);
#define profile_pc(regs) instruction_pointer(regs)
#endif
extern void show_regs(struct pt_regs *);
extern void __show_regs(struct pt_regs *);
#endif

#else /* __ASSEMBLY__ */