|
|
@@ -43,6 +43,9 @@
|
|
|
andi. r11, r11, MSR_PR; /* check whether user or kernel */\
|
|
|
mr r11, r1; \
|
|
|
beq 1f; \
|
|
|
+START_BTB_FLUSH_SECTION \
|
|
|
+ BTB_FLUSH(r11) \
|
|
|
+END_BTB_FLUSH_SECTION \
|
|
|
/* if from user, start at top of this thread's kernel stack */ \
|
|
|
lwz r11, THREAD_INFO-THREAD(r10); \
|
|
|
ALLOC_STACK_FRAME(r11, THREAD_SIZE); \
|
|
|
@@ -128,6 +131,9 @@
|
|
|
stw r9,_CCR(r8); /* save CR on stack */\
|
|
|
mfspr r11,exc_level_srr1; /* check whether user or kernel */\
|
|
|
DO_KVM BOOKE_INTERRUPT_##intno exc_level_srr1; \
|
|
|
+START_BTB_FLUSH_SECTION \
|
|
|
+ BTB_FLUSH(r10) \
|
|
|
+END_BTB_FLUSH_SECTION \
|
|
|
andi. r11,r11,MSR_PR; \
|
|
|
mfspr r11,SPRN_SPRG_THREAD; /* if from user, start at top of */\
|
|
|
lwz r11,THREAD_INFO-THREAD(r11); /* this thread's kernel stack */\
|