Skip to content

Commit

Permalink
microblaze: Fix _interrupt function
Browse files Browse the repository at this point in the history
Save instructions by using delay slot and
clear UMS only if kernel comes from user space.

Signed-off-by: Michal Simek <monstr@monstr.eu>
  • Loading branch information
Michal Simek committed Aug 4, 2010
1 parent 25f6e59 commit 80c5ff6
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions arch/microblaze/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -747,15 +747,13 @@ C_ENTRY(_interrupt):
swi r0, r1, PTO + PT_MODE;
lwi r11, r0, TOPHYS(PER_CPU(ENTRY_SP));
swi r11, r1, PTO+PT_R1;
clear_ums;
2:
lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
tovirt(r1,r1)
addik r5, r1, PTO;
set_vms;
addik r11, r0, do_IRQ;
addik r15, r0, irq_call;
irq_call:rtbd r11, 0;
nop;
irq_call:rtbd r0, do_IRQ;
addik r5, r1, PTO;

/* MS: we are in virtual mode */
ret_from_irq:
Expand Down

0 comments on commit 80c5ff6

Please sign in to comment.