aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <michael.frysinger@analog.com>2007-10-21 12:19:31 -0400
committerBryan Wu <bryan.wu@analog.com>2007-10-21 12:19:31 -0400
commita99bbccd8738c0d8df270391284db2fae28d8a82 (patch)
tree3fbcd0e8fe9a025dfa8c45dbfb7af6f6d5ed8a55
parent876a6682aac9b22cf24e0a3a7fea648fd64e112b (diff)
Blackfin arch: force irq_flags into the .data section
force irq_flags into the .data section by initializing it to the hardware masks that cannot be disabled. this way if we use irq enable/disable functions before the .bss has been zeroed out (as does our l1 relocate/dma functions), we dont hit a problem where bss contains bogus crap. Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
-rw-r--r--arch/blackfin/mach-common/ints-priority-dc.c8
-rw-r--r--arch/blackfin/mach-common/ints-priority-sc.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/arch/blackfin/mach-common/ints-priority-dc.c b/arch/blackfin/mach-common/ints-priority-dc.c
index 2db3546fc874..c2f05fabedc1 100644
--- a/arch/blackfin/mach-common/ints-priority-dc.c
+++ b/arch/blackfin/mach-common/ints-priority-dc.c
@@ -52,7 +52,13 @@
52 * - 52 * -
53 */ 53 */
54 54
55unsigned long irq_flags = 0; 55/* Initialize this to an actual value to force it into the .data
56 * section so that we know it is properly initialized at entry into
57 * the kernel but before bss is initialized to zero (which is where
58 * it would live otherwise). The 0x1f magic represents the IRQs we
59 * cannot actually mask out in hardware.
60 */
61unsigned long irq_flags = 0x1f;
56 62
57/* The number of spurious interrupts */ 63/* The number of spurious interrupts */
58atomic_t num_spurious; 64atomic_t num_spurious;
diff --git a/arch/blackfin/mach-common/ints-priority-sc.c b/arch/blackfin/mach-common/ints-priority-sc.c
index e06fe96b6fc3..7da5a0a134cc 100644
--- a/arch/blackfin/mach-common/ints-priority-sc.c
+++ b/arch/blackfin/mach-common/ints-priority-sc.c
@@ -58,7 +58,13 @@
58 * - 58 * -
59 */ 59 */
60 60
61unsigned long irq_flags = 0; 61/* Initialize this to an actual value to force it into the .data
62 * section so that we know it is properly initialized at entry into
63 * the kernel but before bss is initialized to zero (which is where
64 * it would live otherwise). The 0x1f magic represents the IRQs we
65 * cannot actually mask out in hardware.
66 */
67unsigned long irq_flags = 0x1f;
62 68
63/* The number of spurious interrupts */ 69/* The number of spurious interrupts */
64atomic_t num_spurious; 70atomic_t num_spurious;