Merge tag 'rtc-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
[linux-2.6-microblaze.git] / arch / powerpc / kernel / kgdb.c
index c485657..bdee726 100644 (file)
@@ -147,7 +147,7 @@ static int kgdb_handle_breakpoint(struct pt_regs *regs)
                return 0;
 
        if (*(u32 *)regs->nip == BREAK_INSTR)
-               regs->nip += BREAK_INSTR_SIZE;
+               regs_add_return_ip(regs, BREAK_INSTR_SIZE);
 
        return 1;
 }
@@ -372,7 +372,7 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)
 
 void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
 {
-       regs->nip = pc;
+       regs_set_return_ip(regs, pc);
 }
 
 /*
@@ -394,7 +394,7 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code,
        case 'c':
                /* handle the optional parameter */
                if (kgdb_hex2long(&ptr, &addr))
-                       linux_regs->nip = addr;
+                       regs_set_return_ip(linux_regs, addr);
 
                atomic_set(&kgdb_cpu_doing_single_step, -1);
                /* set the trace bit if we're stepping */
@@ -402,9 +402,9 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code,
 #ifdef CONFIG_PPC_ADV_DEBUG_REGS
                        mtspr(SPRN_DBCR0,
                              mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
-                       linux_regs->msr |= MSR_DE;
+                       regs_set_return_msr(linux_regs, linux_regs->msr | MSR_DE);
 #else
-                       linux_regs->msr |= MSR_SE;
+                       regs_set_return_msr(linux_regs, linux_regs->msr | MSR_SE);
 #endif
                        atomic_set(&kgdb_cpu_doing_single_step,
                                   raw_smp_processor_id());