aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-02-25 17:07:25 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-02-25 17:07:25 -0500
commit186f93ea1f274f4cde4a356401c1786c818ff881 (patch)
treede28f076c823d5423a5b4780f0d37554c242c982 /arch/arm/kernel
parent3560adf62075829393743667ff338dd8fd26a5c2 (diff)
parent4e6d488af37980d224cbf298224db6173673f362 (diff)
Merge branch 'tmpreg' into devel
Conflicts: arch/arm/Kconfig arch/arm/mach-ux500/include/mach/debug-macro.S
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/debug.S30
-rw-r--r--arch/arm/kernel/elf.c9
2 files changed, 25 insertions, 14 deletions
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S
index b121b6053cce..a38b4879441d 100644
--- a/arch/arm/kernel/debug.S
+++ b/arch/arm/kernel/debug.S
@@ -24,7 +24,7 @@
24 24
25#if defined(CONFIG_CPU_V6) 25#if defined(CONFIG_CPU_V6)
26 26
27 .macro addruart, rx 27 .macro addruart, rx, tmp
28 .endm 28 .endm
29 29
30 .macro senduart, rd, rx 30 .macro senduart, rd, rx
@@ -49,9 +49,29 @@
491002: 491002:
50 .endm 50 .endm
51 51
52#elif defined(CONFIG_CPU_V7)
53
54 .macro addruart, rx, tmp
55 .endm
56
57 .macro senduart, rd, rx
58 mcr p14, 0, \rd, c0, c5, 0
59 .endm
60
61 .macro busyuart, rd, rx
62busy: mrc p14, 0, pc, c0, c1, 0
63 bcs busy
64 .endm
65
66 .macro waituart, rd, rx
67wait: mrc p14, 0, pc, c0, c1, 0
68 bcs wait
69
70 .endm
71
52#elif defined(CONFIG_CPU_XSCALE) 72#elif defined(CONFIG_CPU_XSCALE)
53 73
54 .macro addruart, rx 74 .macro addruart, rx, tmp
55 .endm 75 .endm
56 76
57 .macro senduart, rd, rx 77 .macro senduart, rd, rx
@@ -78,7 +98,7 @@
78 98
79#else 99#else
80 100
81 .macro addruart, rx 101 .macro addruart, rx, tmp
82 .endm 102 .endm
83 103
84 .macro senduart, rd, rx 104 .macro senduart, rd, rx
@@ -144,7 +164,7 @@ ENDPROC(printhex2)
144 .ltorg 164 .ltorg
145 165
146ENTRY(printascii) 166ENTRY(printascii)
147 addruart r3 167 addruart r3, r1
148 b 2f 168 b 2f
1491: waituart r2, r3 1691: waituart r2, r3
150 senduart r1, r3 170 senduart r1, r3
@@ -160,7 +180,7 @@ ENTRY(printascii)
160ENDPROC(printascii) 180ENDPROC(printascii)
161 181
162ENTRY(printch) 182ENTRY(printch)
163 addruart r3 183 addruart r3, r1
164 mov r1, r0 184 mov r1, r0
165 mov r0, #0 185 mov r0, #0
166 b 1b 186 b 1b
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c
index 950391f194c4..d4a0da1e48f4 100644
--- a/arch/arm/kernel/elf.c
+++ b/arch/arm/kernel/elf.c
@@ -78,15 +78,6 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
78 return 1; 78 return 1;
79 if (cpu_architecture() < CPU_ARCH_ARMv6) 79 if (cpu_architecture() < CPU_ARCH_ARMv6)
80 return 1; 80 return 1;
81#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
82 /*
83 * If we have support for OABI programs, we can never allow NX
84 * support - our signal syscall restart mechanism relies upon
85 * being able to execute code placed on the user stack.
86 */
87 return 1;
88#else
89 return 0; 81 return 0;
90#endif
91} 82}
92EXPORT_SYMBOL(arm_elf_read_implies_exec); 83EXPORT_SYMBOL(arm_elf_read_implies_exec);