diff options
author | Robin Getz <robin.getz@analog.com> | 2010-02-25 13:16:52 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-03-09 00:30:53 -0500 |
commit | 2943bff69e3728cfd69841537120125f9373bb28 (patch) | |
tree | 4c46452a7533c999c93f567a0f1163ea0adadc68 /arch/blackfin/mach-common/entry.S | |
parent | 6ba255f4a8a0785ea8a2b052837a7b91eeac1bb4 (diff) |
Blackfin: fix anomaly 283 handling with exact hardware error
The exact hardware error handling code was added before the workaround
for anomaly 283 which caused the anomaly to be triggered in some cases
(an infinite core stall). So re-order the code to avoid this.
Reported-by: Andrew Rook <andrew.rook@speakerbus.co.uk>
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common/entry.S')
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 6c20044c7f4c..a5847f5d67c7 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -482,6 +482,8 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ | |||
482 | [--sp] = ASTAT; | 482 | [--sp] = ASTAT; |
483 | [--sp] = (R7:6,P5:4); | 483 | [--sp] = (R7:6,P5:4); |
484 | 484 | ||
485 | ANOMALY_283_315_WORKAROUND(p5, r7) | ||
486 | |||
485 | #ifdef CONFIG_EXACT_HWERR | 487 | #ifdef CONFIG_EXACT_HWERR |
486 | /* Make sure all pending read/writes complete. This will ensure any | 488 | /* Make sure all pending read/writes complete. This will ensure any |
487 | * accesses which could cause hardware errors completes, and signal | 489 | * accesses which could cause hardware errors completes, and signal |
@@ -492,8 +494,6 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ | |||
492 | ssync; | 494 | ssync; |
493 | #endif | 495 | #endif |
494 | 496 | ||
495 | ANOMALY_283_315_WORKAROUND(p5, r7) | ||
496 | |||
497 | #ifdef CONFIG_DEBUG_DOUBLEFAULT | 497 | #ifdef CONFIG_DEBUG_DOUBLEFAULT |
498 | /* | 498 | /* |
499 | * Save these registers, as they are only valid in exception context | 499 | * Save these registers, as they are only valid in exception context |