]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/blackfin/kernel/kgdb.c
Blackfin arch: Fix bug - hardware breakpoint doesn't always work in kgdb
[linux-2.6-omap-h63xx.git] / arch / blackfin / kernel / kgdb.c
index ab4022131a2a9edb4fbecf46413e591682dae4a7..0c4c53fa723e7d3bd88320bce1bb5ae880a7f599 100644 (file)
@@ -219,6 +219,7 @@ int bfin_set_hw_break(unsigned long addr, int len, enum kgdb_bptype type)
                if (bfin_type == breakinfo[breakno].type
                        && !breakinfo[breakno].occupied) {
                        breakinfo[breakno].occupied = 1;
+                       breakinfo[breakno].skip = 0;
                        breakinfo[breakno].enabled = 1;
                        breakinfo[breakno].addr = addr;
                        breakinfo[breakno].dataacc = dataacc;
@@ -426,17 +427,6 @@ int kgdb_arch_handle_exception(int vector, int signo,
                        kgdb_single_step = i + 1;
                }
 
-               if (vector == VEC_WATCH) {
-                       wp_status = bfin_read_WPSTAT();
-                       for (breakno = 0; breakno < HW_WATCHPOINT_NUM; breakno++) {
-                               if (wp_status & (1 << breakno)) {
-                                       breakinfo->skip = 1;
-                                       break;
-                               }
-                       }
-                       bfin_write_WPSTAT(0);
-               }
-
                bfin_correct_hw_break();
 
                return 0;