From 9c7b2b9cfa9251c6a170ca7d9e13145a7e0eb3ee Mon Sep 17 00:00:00 2001 From: Sonic Zhang Date: Wed, 17 Nov 2010 06:52:39 +0000 Subject: [PATCH] --- yaml --- r: 228456 b: refs/heads/master c: b68233e7f0126dfe59e1a064da9e37827c1f35ec h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/blackfin/kernel/kgdb.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index dcddf53b53a8..5fab2e08be30 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 900de05182d520ff66378e74a7b18f7d9971a32d +refs/heads/master: b68233e7f0126dfe59e1a064da9e37827c1f35ec diff --git a/trunk/arch/blackfin/kernel/kgdb.c b/trunk/arch/blackfin/kernel/kgdb.c index e89ef34f744f..eb92592fd80c 100644 --- a/trunk/arch/blackfin/kernel/kgdb.c +++ b/trunk/arch/blackfin/kernel/kgdb.c @@ -347,15 +347,20 @@ void kgdb_roundup_cpu(int cpu, unsigned long flags) #ifdef CONFIG_IPIPE static unsigned long kgdb_arch_imask; +#endif void kgdb_post_primary_code(struct pt_regs *regs, int e_vector, int err_code) { + if (kgdb_single_step) + preempt_enable(); + +#ifdef CONFIG_IPIPE if (kgdb_arch_imask) { cpu_pda[raw_smp_processor_id()].ex_imask = kgdb_arch_imask; kgdb_arch_imask = 0; } -} #endif +} int kgdb_arch_handle_exception(int vector, int signo, int err_code, char *remcom_in_buffer, @@ -401,6 +406,7 @@ int kgdb_arch_handle_exception(int vector, int signo, */ kgdb_single_step = i + 1; + preempt_disable(); #ifdef CONFIG_IPIPE kgdb_arch_imask = cpu_pda[raw_smp_processor_id()].ex_imask; cpu_pda[raw_smp_processor_id()].ex_imask = 0;