diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-05 15:06:59 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-05 15:06:59 -0400 |
| commit | e8d809c61325a2f799dc753b0ac72ace6958b92c (patch) | |
| tree | 21c1dc8935445335e8ee62be12488b73a2376049 | |
| parent | ef790fe022916a225f7ba7fc565ffc51404655f7 (diff) | |
| parent | 131e4e97bfee809dc64febe8accef2f042a92722 (diff) | |
Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze
* 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze: Clear sticky FSR register after saving it to func parametr
microblaze: UMS is used only for MMU kernel
| -rw-r--r-- | arch/microblaze/kernel/entry.S | 2 | ||||
| -rw-r--r-- | arch/microblaze/kernel/hw_exception_handler.S | 2 | ||||
| -rw-r--r-- | arch/microblaze/kernel/process.c | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index acc1f05d1e2..e3ecb36dd55 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
| @@ -592,6 +592,8 @@ C_ENTRY(full_exception_trap): | |||
| 592 | nop | 592 | nop |
| 593 | mfs r7, rfsr; /* save FSR */ | 593 | mfs r7, rfsr; /* save FSR */ |
| 594 | nop | 594 | nop |
| 595 | mts rfsr, r0; /* Clear sticky fsr */ | ||
| 596 | nop | ||
| 595 | la r12, r0, full_exception | 597 | la r12, r0, full_exception |
| 596 | set_vms; | 598 | set_vms; |
| 597 | rtbd r12, 0; | 599 | rtbd r12, 0; |
diff --git a/arch/microblaze/kernel/hw_exception_handler.S b/arch/microblaze/kernel/hw_exception_handler.S index 6b0288ebccd..2b86c03aa84 100644 --- a/arch/microblaze/kernel/hw_exception_handler.S +++ b/arch/microblaze/kernel/hw_exception_handler.S | |||
| @@ -384,7 +384,7 @@ handle_other_ex: /* Handle Other exceptions here */ | |||
| 384 | addk r8, r17, r0; /* Load exception address */ | 384 | addk r8, r17, r0; /* Load exception address */ |
| 385 | bralid r15, full_exception; /* Branch to the handler */ | 385 | bralid r15, full_exception; /* Branch to the handler */ |
| 386 | nop; | 386 | nop; |
| 387 | mts r0, rfsr; /* Clear sticky fsr */ | 387 | mts rfsr, r0; /* Clear sticky fsr */ |
| 388 | nop | 388 | nop |
| 389 | 389 | ||
| 390 | /* | 390 | /* |
diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c index 4201c743cc9..c592d475b3d 100644 --- a/arch/microblaze/kernel/process.c +++ b/arch/microblaze/kernel/process.c | |||
| @@ -235,7 +235,9 @@ void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long usp) | |||
| 235 | regs->pc = pc; | 235 | regs->pc = pc; |
| 236 | regs->r1 = usp; | 236 | regs->r1 = usp; |
| 237 | regs->pt_mode = 0; | 237 | regs->pt_mode = 0; |
| 238 | #ifdef CONFIG_MMU | ||
| 238 | regs->msr |= MSR_UMS; | 239 | regs->msr |= MSR_UMS; |
| 240 | #endif | ||
| 239 | } | 241 | } |
| 240 | 242 | ||
| 241 | #ifdef CONFIG_MMU | 243 | #ifdef CONFIG_MMU |
