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

Commit 9f0b0793 authored by Michael Ellerman's avatar Michael Ellerman Committed by Benjamin Herrenschmidt
Browse files

powerpc: Use MSR_64BIT in places



Use the new MSR_64BIT in a few places. Some of these are already ifdef'ed
for BOOKE vs BOOKS, but it's still clearer, MSR_SF does not immediately
parse as "MSR bit for 64bit".

Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 9d4a2925
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -655,7 +655,7 @@ _GLOBAL(enable_64b_mode)
	oris	r11,r11,0x8000		/* CM bit set, we'll set ICM later */
	oris	r11,r11,0x8000		/* CM bit set, we'll set ICM later */
	mtmsr	r11
	mtmsr	r11
#else /* CONFIG_PPC_BOOK3E */
#else /* CONFIG_PPC_BOOK3E */
	li	r12,(MSR_SF | MSR_ISF)@highest
	li	r12,(MSR_64BIT | MSR_ISF)@highest
	sldi	r12,r12,48
	sldi	r12,r12,48
	or	r11,r11,r12
	or	r11,r11,r12
	mtmsrd	r11
	mtmsrd	r11
+2 −2
Original line number Original line Diff line number Diff line
@@ -381,7 +381,7 @@ int sys_rt_sigreturn(unsigned long r3, unsigned long r4, unsigned long r5,
	       regs, uc, &uc->uc_mcontext);
	       regs, uc, &uc->uc_mcontext);
#endif
#endif
	if (show_unhandled_signals && printk_ratelimit())
	if (show_unhandled_signals && printk_ratelimit())
		printk(regs->msr & MSR_SF ? fmt64 : fmt32,
		printk(regs->msr & MSR_64BIT ? fmt64 : fmt32,
			current->comm, current->pid, "rt_sigreturn",
			current->comm, current->pid, "rt_sigreturn",
			(long)uc, regs->nip, regs->link);
			(long)uc, regs->nip, regs->link);


@@ -469,7 +469,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
	       regs, frame, newsp);
	       regs, frame, newsp);
#endif
#endif
	if (show_unhandled_signals && printk_ratelimit())
	if (show_unhandled_signals && printk_ratelimit())
		printk(regs->msr & MSR_SF ? fmt64 : fmt32,
		printk(regs->msr & MSR_64BIT ? fmt64 : fmt32,
			current->comm, current->pid, "setup_rt_frame",
			current->comm, current->pid, "setup_rt_frame",
			(long)frame, regs->nip, regs->link);
			(long)frame, regs->nip, regs->link);


+1 −1
Original line number Original line Diff line number Diff line
@@ -199,7 +199,7 @@ void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr)
	} else if (show_unhandled_signals &&
	} else if (show_unhandled_signals &&
		    unhandled_signal(current, signr) &&
		    unhandled_signal(current, signr) &&
		    printk_ratelimit()) {
		    printk_ratelimit()) {
			printk(regs->msr & MSR_SF ? fmt64 : fmt32,
			printk(regs->msr & MSR_64BIT ? fmt64 : fmt32,
				current->comm, current->pid, signr,
				current->comm, current->pid, signr,
				addr, regs->nip, regs->link, code);
				addr, regs->nip, regs->link, code);
		}
		}
+7 −7
Original line number Original line Diff line number Diff line
@@ -399,7 +399,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
	cpu_set(cpu, cpus_in_xmon);
	cpu_set(cpu, cpus_in_xmon);


	bp = NULL;
	bp = NULL;
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) == (MSR_IR|MSR_SF))
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) == (MSR_IR|MSR_64BIT))
		bp = at_breakpoint(regs->nip);
		bp = at_breakpoint(regs->nip);
	if (bp || unrecoverable_excp(regs))
	if (bp || unrecoverable_excp(regs))
		fromipi = 0;
		fromipi = 0;
@@ -529,7 +529,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
		}
		}
	}
	}
#else
#else
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) == (MSR_IR|MSR_SF)) {
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) == (MSR_IR|MSR_64BIT)) {
		bp = at_breakpoint(regs->nip);
		bp = at_breakpoint(regs->nip);
		if (bp != NULL) {
		if (bp != NULL) {
			int stepped = emulate_step(regs, bp->instr[0]);
			int stepped = emulate_step(regs, bp->instr[0]);
@@ -578,7 +578,7 @@ static int xmon_bpt(struct pt_regs *regs)
	struct bpt *bp;
	struct bpt *bp;
	unsigned long offset;
	unsigned long offset;


	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) != (MSR_IR|MSR_SF))
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) != (MSR_IR|MSR_64BIT))
		return 0;
		return 0;


	/* Are we at the trap at bp->instr[1] for some bp? */
	/* Are we at the trap at bp->instr[1] for some bp? */
@@ -609,7 +609,7 @@ static int xmon_sstep(struct pt_regs *regs)


static int xmon_dabr_match(struct pt_regs *regs)
static int xmon_dabr_match(struct pt_regs *regs)
{
{
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) != (MSR_IR|MSR_SF))
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) != (MSR_IR|MSR_64BIT))
		return 0;
		return 0;
	if (dabr.enabled == 0)
	if (dabr.enabled == 0)
		return 0;
		return 0;
@@ -619,7 +619,7 @@ static int xmon_dabr_match(struct pt_regs *regs)


static int xmon_iabr_match(struct pt_regs *regs)
static int xmon_iabr_match(struct pt_regs *regs)
{
{
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) != (MSR_IR|MSR_SF))
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) != (MSR_IR|MSR_64BIT))
		return 0;
		return 0;
	if (iabr == NULL)
	if (iabr == NULL)
		return 0;
		return 0;
@@ -644,7 +644,7 @@ static int xmon_fault_handler(struct pt_regs *regs)
	if (in_xmon && catch_memory_errors)
	if (in_xmon && catch_memory_errors)
		handle_fault(regs);	/* doesn't return */
		handle_fault(regs);	/* doesn't return */


	if ((regs->msr & (MSR_IR|MSR_PR|MSR_SF)) == (MSR_IR|MSR_SF)) {
	if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) == (MSR_IR|MSR_64BIT)) {
		bp = in_breakpoint_table(regs->nip, &offset);
		bp = in_breakpoint_table(regs->nip, &offset);
		if (bp != NULL) {
		if (bp != NULL) {
			regs->nip = bp->address + offset;
			regs->nip = bp->address + offset;
@@ -929,7 +929,7 @@ static int do_step(struct pt_regs *regs)
	int stepped;
	int stepped;


	/* check we are in 64-bit kernel mode, translation enabled */
	/* check we are in 64-bit kernel mode, translation enabled */
	if ((regs->msr & (MSR_SF|MSR_PR|MSR_IR)) == (MSR_SF|MSR_IR)) {
	if ((regs->msr & (MSR_64BIT|MSR_PR|MSR_IR)) == (MSR_64BIT|MSR_IR)) {
		if (mread(regs->nip, &instr, 4) == 4) {
		if (mread(regs->nip, &instr, 4) == 4) {
			stepped = emulate_step(regs, instr);
			stepped = emulate_step(regs, instr);
			if (stepped < 0) {
			if (stepped < 0) {