Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc: Fix another bug in move of altivec code to vector.S powerpc: Fix booke user_disable_single_step()
This commit is contained in:
commit
a132ebcb45
@ -736,15 +736,16 @@ void user_disable_single_step(struct task_struct *task)
|
|||||||
{
|
{
|
||||||
struct pt_regs *regs = task->thread.regs;
|
struct pt_regs *regs = task->thread.regs;
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONFIG_BOOKE)
|
|
||||||
/* If DAC then do not single step, skip */
|
|
||||||
if (task->thread.dabr)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (regs != NULL) {
|
if (regs != NULL) {
|
||||||
#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
|
#if defined(CONFIG_BOOKE)
|
||||||
|
/* If DAC don't clear DBCRO_IDM or MSR_DE */
|
||||||
|
if (task->thread.dabr)
|
||||||
|
task->thread.dbcr0 &= ~(DBCR0_IC | DBCR0_BT);
|
||||||
|
else {
|
||||||
|
task->thread.dbcr0 &= ~(DBCR0_IC | DBCR0_BT | DBCR0_IDM);
|
||||||
|
regs->msr &= ~MSR_DE;
|
||||||
|
}
|
||||||
|
#elif defined(CONFIG_40x)
|
||||||
task->thread.dbcr0 &= ~(DBCR0_IC | DBCR0_BT | DBCR0_IDM);
|
task->thread.dbcr0 &= ~(DBCR0_IC | DBCR0_BT | DBCR0_IDM);
|
||||||
regs->msr &= ~MSR_DE;
|
regs->msr &= ~MSR_DE;
|
||||||
#else
|
#else
|
||||||
|
@ -80,10 +80,10 @@ _GLOBAL(load_up_altivec)
|
|||||||
mtvscr vr0
|
mtvscr vr0
|
||||||
REST_32VRS(0,r4,r5)
|
REST_32VRS(0,r4,r5)
|
||||||
#ifndef CONFIG_SMP
|
#ifndef CONFIG_SMP
|
||||||
/* Update last_task_used_math to 'current' */
|
/* Update last_task_used_altivec to 'current' */
|
||||||
subi r4,r5,THREAD /* Back to 'current' */
|
subi r4,r5,THREAD /* Back to 'current' */
|
||||||
fromreal(r4)
|
fromreal(r4)
|
||||||
PPC_STL r4,ADDROFF(last_task_used_math)(r3)
|
PPC_STL r4,ADDROFF(last_task_used_altivec)(r3)
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
/* restore registers and return */
|
/* restore registers and return */
|
||||||
blr
|
blr
|
||||||
@ -172,7 +172,7 @@ _GLOBAL(load_up_vsx)
|
|||||||
oris r12,r12,MSR_VSX@h
|
oris r12,r12,MSR_VSX@h
|
||||||
std r12,_MSR(r1)
|
std r12,_MSR(r1)
|
||||||
#ifndef CONFIG_SMP
|
#ifndef CONFIG_SMP
|
||||||
/* Update last_task_used_math to 'current' */
|
/* Update last_task_used_vsx to 'current' */
|
||||||
ld r4,PACACURRENT(r13)
|
ld r4,PACACURRENT(r13)
|
||||||
std r4,0(r3)
|
std r4,0(r3)
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user