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

Commit 1de765c1 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[ARM] remove pc_pointer()



pc_pointer() was a function to mask the PC for 26-bit ARMs, which
we no longer support.  Remove it.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 09d9bae0
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@
#define PSR_C_BIT	0x20000000
#define PSR_Z_BIT	0x40000000
#define PSR_N_BIT	0x80000000
#define PCMASK		0

/*
 * Groups of PSR bits
@@ -139,11 +138,7 @@ static inline int valid_user_regs(struct pt_regs *regs)
	return 0;
}

#define pc_pointer(v) \
	((v) & ~PCMASK)

#define instruction_pointer(regs) \
	(pc_pointer((regs)->ARM_pc))
#define instruction_pointer(regs)	(regs)->ARM_pc

#ifdef CONFIG_SMP
extern unsigned long profile_pc(struct pt_regs *regs);
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ static inline struct thread_info *current_thread_info(void)
}

#define thread_saved_pc(tsk)	\
	((unsigned long)(pc_pointer(task_thread_info(tsk)->cpu_context.pc)))
	((unsigned long)(task_thread_info(tsk)->cpu_context.pc))
#define thread_saved_fp(tsk)	\
	((unsigned long)(task_thread_info(tsk)->cpu_context.fp))

+1 −1
Original line number Diff line number Diff line
@@ -385,7 +385,7 @@ unsigned long get_wchan(struct task_struct *p)
	do {
		if (fp < stack_start || fp > stack_end)
			return 0;
		lr = pc_pointer (((unsigned long *)fp)[-1]);
		lr = ((unsigned long *)fp)[-1];
		if (!in_sched_functions(lr))
			return lr;
		fp = *(unsigned long *) (fp - 12);
+3 −5
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ ptrace_getrn(struct task_struct *child, unsigned long insn)

	val = get_user_reg(child, reg);
	if (reg == 15)
		val = pc_pointer(val + 8);
		val += 8;

	return val;
}
@@ -278,8 +278,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in
				else
					base -= aluop2;
			}
			if (read_u32(child, base, &alt) == 0)
				alt = pc_pointer(alt);
			read_u32(child, base, &alt);
		}
		break;

@@ -305,8 +304,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in

			base = ptrace_getrn(child, insn);

			if (read_u32(child, base + nr_regs, &alt) == 0)
				alt = pc_pointer(alt);
			read_u32(child, base + nr_regs, &alt);
			break;
		}
		break;
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ unsigned long profile_pc(struct pt_regs *regs)

	if (in_lock_functions(pc)) {
		fp = regs->ARM_fp;
		pc = pc_pointer(((unsigned long *)fp)[-1]);
		pc = ((unsigned long *)fp)[-1];
	}

	return pc;