diff options
Diffstat (limited to 'arch/microblaze/kernel/exceptions.c')
-rw-r--r-- | arch/microblaze/kernel/exceptions.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/microblaze/kernel/exceptions.c b/arch/microblaze/kernel/exceptions.c index 478f2943ede7..a7fa6ae76d89 100644 --- a/arch/microblaze/kernel/exceptions.c +++ b/arch/microblaze/kernel/exceptions.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
26 | #include <linux/ptrace.h> | 26 | #include <linux/ptrace.h> |
27 | #include <asm/current.h> | 27 | #include <asm/current.h> |
28 | #include <asm/cacheflush.h> | ||
28 | 29 | ||
29 | #define MICROBLAZE_ILL_OPCODE_EXCEPTION 0x02 | 30 | #define MICROBLAZE_ILL_OPCODE_EXCEPTION 0x02 |
30 | #define MICROBLAZE_IBUS_EXCEPTION 0x03 | 31 | #define MICROBLAZE_IBUS_EXCEPTION 0x03 |
@@ -52,6 +53,8 @@ void die(const char *str, struct pt_regs *fp, long err) | |||
52 | void sw_exception(struct pt_regs *regs) | 53 | void sw_exception(struct pt_regs *regs) |
53 | { | 54 | { |
54 | _exception(SIGTRAP, regs, TRAP_BRKPT, regs->r16); | 55 | _exception(SIGTRAP, regs, TRAP_BRKPT, regs->r16); |
56 | flush_dcache_range(regs->r16, regs->r16 + 0x4); | ||
57 | flush_icache_range(regs->r16, regs->r16 + 0x4); | ||
55 | } | 58 | } |
56 | 59 | ||
57 | void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) | 60 | void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) |