Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=01bd5e9ef2ead97059a1930de43942bdfc9e8755
Commit:     01bd5e9ef2ead97059a1930de43942bdfc9e8755
Parent:     a90f354709b372c8dcabe3cd6315a83da5927573
Author:     Paul Mundt <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 3 17:21:10 2007 +0900
Committer:  Paul Mundt <[EMAIL PROTECTED]>
CommitDate: Wed Oct 3 17:21:10 2007 +0900

    sh: Make kgdb i-cache flushing less inept.
    
    kgdb had its own ranged I-cache flushing routine that attempted to
    duplicate the flush_icache_range() functionality, but managed to do
    an explicit D-cache writeback & invalidate twice on SH-4. This is
    a no-op for SH-3, and the flush_icache_range() semantics already do
    what kgdb was feebly attempting to do already, so just move over to
    that and kill off the wrapper.
    
    Signed-off-by: Paul Mundt <[EMAIL PROTECTED]>
---
 arch/sh/kernel/kgdb_stub.c |    8 ++++----
 include/asm-sh/kgdb.h      |   12 ------------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c
index 27f64b9..2fdc700 100644
--- a/arch/sh/kernel/kgdb_stub.c
+++ b/arch/sh/kernel/kgdb_stub.c
@@ -609,7 +609,7 @@ static short *get_step_address(void)
        else
                addr = trap_registers.pc + 2;
 
-       kgdb_flush_icache_range(addr, addr + 2);
+       flush_icache_range(addr, addr + 2);
        return (short *) addr;
 }
 
@@ -632,7 +632,7 @@ static void do_single_step(void)
        *addr = STEP_OPCODE;
 
        /* Flush and return */
-       kgdb_flush_icache_range((long) addr, (long) addr + 2);
+       flush_icache_range((long) addr, (long) addr + 2);
 }
 
 /* Undo a single step */
@@ -642,7 +642,7 @@ static void undo_single_step(void)
        /* Use stepped_address in case we stopped elsewhere */
        if (stepped_opcode != 0) {
                *(short*)stepped_address = stepped_opcode;
-               kgdb_flush_icache_range(stepped_address, stepped_address + 2);
+               flush_icache_range(stepped_address, stepped_address + 2);
        }
        stepped_opcode = 0;
 }
@@ -728,7 +728,7 @@ static void write_mem_msg(int binary)
                                        ebin_to_mem(ptr, (char*)addr, length);
                                else
                                        hex_to_mem(ptr, (char*)addr, length);
-                               kgdb_flush_icache_range(addr, addr + length);
+                               flush_icache_range(addr, addr + length);
                                ptr = 0;
                                send_ok_msg();
                        }
diff --git a/include/asm-sh/kgdb.h b/include/asm-sh/kgdb.h
index 5334e86..4bc8cb1 100644
--- a/include/asm-sh/kgdb.h
+++ b/include/asm-sh/kgdb.h
@@ -17,7 +17,6 @@
 #define __KGDB_H
 
 #include <asm/ptrace.h>
-#include <asm/cacheflush.h>
 
 /* Same as pt_regs but has vbr in place of syscall_nr */
 struct kgdb_regs {
@@ -67,17 +66,6 @@ extern int     setjmp(jmp_buf __jmpb);
 /* Forced breakpoint */
 #define breakpoint()   __asm__ __volatile__("trapa   #0x3c")
 
-/* KGDB should be able to flush all kernel text space */
-#if defined(CONFIG_CPU_SH4)
-#define kgdb_flush_icache_range(start, end) \
-{                                                                      \
-       __flush_purge_region((void*)(start), (int)(end) - (int)(start));\
-       flush_icache_range((start), (end));                             \
-}
-#else
-#define kgdb_flush_icache_range(start, end)    do { } while (0)
-#endif
-
 /* Taken from sh-stub.c of GDB 4.18 */
 static const char hexchars[] = "0123456789abcdef";
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to