From c56519a0451250455a193574807587b845c0bb1e Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Fri, 11 Dec 2009 08:43:20 -0600 Subject: [PATCH] --- yaml --- r: 174879 b: refs/heads/master c: 7f8b7ed6f825c729332b8190aca55c6bf95b158e h: refs/heads/master i: 174877: b5d1ac7ec1fd72908ac03b3c86d403b2848aefde 174875: 274bd96c54d6f0010a78e835e10526aecf223f56 174871: fbf86b9f69f66e4c20a0a4ef1a659b8d0e96840c 174863: 1d36aada42cb642279eb10c7ba91d82d7fa2944e 174847: e0e0ec017ac4bff85eaa6db2c218923279f8c896 v: v3 --- [refs] | 2 +- trunk/kernel/kgdb.c | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 3a1f7ffe7b20..43525098f251 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d625e9c0d706eb43afbf52634d5cecacae1d57cc +refs/heads/master: 7f8b7ed6f825c729332b8190aca55c6bf95b158e diff --git a/trunk/kernel/kgdb.c b/trunk/kernel/kgdb.c index 8584eac55e30..2eb517e23514 100644 --- a/trunk/kernel/kgdb.c +++ b/trunk/kernel/kgdb.c @@ -625,7 +625,8 @@ static void kgdb_flush_swbreak_addr(unsigned long addr) static int kgdb_activate_sw_breakpoints(void) { unsigned long addr; - int error = 0; + int error; + int ret = 0; int i; for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) { @@ -635,13 +636,16 @@ static int kgdb_activate_sw_breakpoints(void) addr = kgdb_break[i].bpt_addr; error = kgdb_arch_set_breakpoint(addr, kgdb_break[i].saved_instr); - if (error) - return error; + if (error) { + ret = error; + printk(KERN_INFO "KGDB: BP install failed: %lx", addr); + continue; + } kgdb_flush_swbreak_addr(addr); kgdb_break[i].state = BP_ACTIVE; } - return 0; + return ret; } static int kgdb_set_sw_break(unsigned long addr) @@ -688,7 +692,8 @@ static int kgdb_set_sw_break(unsigned long addr) static int kgdb_deactivate_sw_breakpoints(void) { unsigned long addr; - int error = 0; + int error; + int ret = 0; int i; for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) { @@ -697,13 +702,15 @@ static int kgdb_deactivate_sw_breakpoints(void) addr = kgdb_break[i].bpt_addr; error = kgdb_arch_remove_breakpoint(addr, kgdb_break[i].saved_instr); - if (error) - return error; + if (error) { + printk(KERN_INFO "KGDB: BP remove failed: %lx\n", addr); + ret = error; + } kgdb_flush_swbreak_addr(addr); kgdb_break[i].state = BP_SET; } - return 0; + return ret; } static int kgdb_remove_sw_break(unsigned long addr)