summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRobin Getz <robin.getz@analog.com>2009-07-07 04:47:14 +0200
committerMike Frysinger <vapier@gentoo.org>2009-07-16 07:52:38 +0200
commitad863a9dc9887330b2ab753323063865c59d8db6 (patch)
tree43a6d72c0a89f22028fbaa34aab2ad27123ea2df /arch
parentBlackfin: drop duplicate runtime checking of anomaly 05000448 (diff)
downloadlinux-ad863a9dc9887330b2ab753323063865c59d8db6.tar.xz
linux-ad863a9dc9887330b2ab753323063865c59d8db6.zip
Blackfin: fix handling of IPEND in interrupt context save
The interrupt context save logic incorrectly stored the address of the IPEND register rather than its value due to a missing dereference. While we're here, also enable this code for all kernel debugging scenarios and not just when KGDB is enabled. Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/include/asm/context.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/blackfin/include/asm/context.S b/arch/blackfin/include/asm/context.S
index 16561ab18b38..f8a664f022b1 100644
--- a/arch/blackfin/include/asm/context.S
+++ b/arch/blackfin/include/asm/context.S
@@ -223,9 +223,10 @@
[--sp] = RETN;
[--sp] = RETE;
[--sp] = SEQSTAT;
-#ifdef CONFIG_KGDB
- r1.l = lo(IPEND);
- r1.h = hi(IPEND);
+#ifdef CONFIG_DEBUG_KERNEL
+ p1.l = lo(IPEND);
+ p1.h = hi(IPEND);
+ r1 = [p1];
[--sp] = r1;
#else
[--sp] = r0; /* Skip IPEND as well. */