diff options
author | David Howells <dhowells@redhat.com> | 2010-10-27 12:28:46 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2010-10-27 12:28:46 -0400 |
commit | b478491f2628114b2eae76587f22ce3789b66012 (patch) | |
tree | 038580a05fa1a3c8c9cbee0fa8743af2bba650b9 /arch/mn10300/kernel | |
parent | 9731d23710736b96786d68c2e63148ff3f22e6eb (diff) |
MN10300: Allow some cacheflushes to be avoided if cache snooping is available
The AM34 core is able to do cache snooping, and so can skip some of the cache
flushing.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/mn10300/kernel')
-rw-r--r-- | arch/mn10300/kernel/kprobes.c | 4 | ||||
-rw-r--r-- | arch/mn10300/kernel/traps.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/kprobes.c b/arch/mn10300/kernel/kprobes.c index 67e6389d625a..0311a7fcea16 100644 --- a/arch/mn10300/kernel/kprobes.c +++ b/arch/mn10300/kernel/kprobes.c | |||
@@ -377,8 +377,10 @@ void __kprobes arch_arm_kprobe(struct kprobe *p) | |||
377 | 377 | ||
378 | void __kprobes arch_disarm_kprobe(struct kprobe *p) | 378 | void __kprobes arch_disarm_kprobe(struct kprobe *p) |
379 | { | 379 | { |
380 | #ifndef CONFIG_MN10300_CACHE_SNOOP | ||
380 | mn10300_dcache_flush(); | 381 | mn10300_dcache_flush(); |
381 | mn10300_icache_inv(); | 382 | mn10300_icache_inv(); |
383 | #endif | ||
382 | } | 384 | } |
383 | 385 | ||
384 | void arch_remove_kprobe(struct kprobe *p) | 386 | void arch_remove_kprobe(struct kprobe *p) |
@@ -390,8 +392,10 @@ void __kprobes disarm_kprobe(struct kprobe *p, struct pt_regs *regs) | |||
390 | { | 392 | { |
391 | *p->addr = p->opcode; | 393 | *p->addr = p->opcode; |
392 | regs->pc = (unsigned long) p->addr; | 394 | regs->pc = (unsigned long) p->addr; |
395 | #ifndef CONFIG_MN10300_CACHE_SNOOP | ||
393 | mn10300_dcache_flush(); | 396 | mn10300_dcache_flush(); |
394 | mn10300_icache_inv(); | 397 | mn10300_icache_inv(); |
398 | #endif | ||
395 | } | 399 | } |
396 | 400 | ||
397 | static inline | 401 | static inline |
diff --git a/arch/mn10300/kernel/traps.c b/arch/mn10300/kernel/traps.c index a64604b512d5..c7257a1304a9 100644 --- a/arch/mn10300/kernel/traps.c +++ b/arch/mn10300/kernel/traps.c | |||
@@ -533,8 +533,10 @@ void __init set_intr_stub(enum exception_code code, void *handler) | |||
533 | vector[6] = 0xcb; | 533 | vector[6] = 0xcb; |
534 | vector[7] = 0xcb; | 534 | vector[7] = 0xcb; |
535 | 535 | ||
536 | #ifndef CONFIG_MN10300_CACHE_SNOOP | ||
536 | mn10300_dcache_flush_inv(); | 537 | mn10300_dcache_flush_inv(); |
537 | mn10300_icache_inv(); | 538 | mn10300_icache_inv(); |
539 | #endif | ||
538 | } | 540 | } |
539 | 541 | ||
540 | /* | 542 | /* |