diff options
Diffstat (limited to 'arch/arm')
33 files changed, 71 insertions, 42 deletions
diff --git a/arch/arm/boot/compressed/ofw-shark.c b/arch/arm/boot/compressed/ofw-shark.c index 7f6f5db0d060..465c54b6b128 100644 --- a/arch/arm/boot/compressed/ofw-shark.c +++ b/arch/arm/boot/compressed/ofw-shark.c | |||
@@ -256,5 +256,5 @@ asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer) | |||
256 | temp[11]='\0'; | 256 | temp[11]='\0'; |
257 | mem_len = OF_getproplen(o,phandle, temp); | 257 | mem_len = OF_getproplen(o,phandle, temp); |
258 | OF_getprop(o,phandle, temp, buffer, mem_len); | 258 | OF_getprop(o,phandle, temp, buffer, mem_len); |
259 | (unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2]; | 259 | * ((unsigned char *) &pointer[32]) = ((unsigned char *) buffer)[mem_len-2]; |
260 | } | 260 | } |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 7152bfbee581..93b5e8e5292e 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -537,7 +537,7 @@ ENTRY(__switch_to) | |||
537 | #ifdef CONFIG_CPU_MPCORE | 537 | #ifdef CONFIG_CPU_MPCORE |
538 | clrex | 538 | clrex |
539 | #else | 539 | #else |
540 | strex r3, r4, [ip] @ Clear exclusive monitor | 540 | strex r5, r4, [ip] @ Clear exclusive monitor |
541 | #endif | 541 | #endif |
542 | #endif | 542 | #endif |
543 | #if defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_IWMMXT) | 543 | #if defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_IWMMXT) |
diff --git a/arch/arm/kernel/io.c b/arch/arm/kernel/io.c index 6c20c1188b60..1f6822dfae74 100644 --- a/arch/arm/kernel/io.c +++ b/arch/arm/kernel/io.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * Copy data from IO memory space to "real" memory space. | 7 | * Copy data from IO memory space to "real" memory space. |
8 | * This needs to be optimized. | 8 | * This needs to be optimized. |
9 | */ | 9 | */ |
10 | void _memcpy_fromio(void *to, void __iomem *from, size_t count) | 10 | void _memcpy_fromio(void *to, const volatile void __iomem *from, size_t count) |
11 | { | 11 | { |
12 | unsigned char *t = to; | 12 | unsigned char *t = to; |
13 | while (count) { | 13 | while (count) { |
@@ -22,7 +22,7 @@ void _memcpy_fromio(void *to, void __iomem *from, size_t count) | |||
22 | * Copy data from "real" memory space to IO memory space. | 22 | * Copy data from "real" memory space to IO memory space. |
23 | * This needs to be optimized. | 23 | * This needs to be optimized. |
24 | */ | 24 | */ |
25 | void _memcpy_toio(void __iomem *to, const void *from, size_t count) | 25 | void _memcpy_toio(volatile void __iomem *to, const void *from, size_t count) |
26 | { | 26 | { |
27 | const unsigned char *f = from; | 27 | const unsigned char *f = from; |
28 | while (count) { | 28 | while (count) { |
@@ -37,7 +37,7 @@ void _memcpy_toio(void __iomem *to, const void *from, size_t count) | |||
37 | * "memset" on IO memory space. | 37 | * "memset" on IO memory space. |
38 | * This needs to be optimized. | 38 | * This needs to be optimized. |
39 | */ | 39 | */ |
40 | void _memset_io(void __iomem *dst, int c, size_t count) | 40 | void _memset_io(volatile void __iomem *dst, int c, size_t count) |
41 | { | 41 | { |
42 | while (count) { | 42 | while (count) { |
43 | count--; | 43 | count--; |
diff --git a/arch/arm/kernel/semaphore.c b/arch/arm/kernel/semaphore.c index ac423e3e224b..4c31f2923055 100644 --- a/arch/arm/kernel/semaphore.c +++ b/arch/arm/kernel/semaphore.c | |||
@@ -178,7 +178,7 @@ int __down_trylock(struct semaphore * sem) | |||
178 | * registers (r0 to r3 and lr), but not ip, as we use it as a return | 178 | * registers (r0 to r3 and lr), but not ip, as we use it as a return |
179 | * value in some cases.. | 179 | * value in some cases.. |
180 | */ | 180 | */ |
181 | asm(" .section .sched.text,\"ax\" \n\ | 181 | asm(" .section .sched.text,\"ax\",%progbits \n\ |
182 | .align 5 \n\ | 182 | .align 5 \n\ |
183 | .globl __down_failed \n\ | 183 | .globl __down_failed \n\ |
184 | __down_failed: \n\ | 184 | __down_failed: \n\ |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 4554c961251c..e7d22dbcb691 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -624,6 +624,9 @@ void __attribute__((noreturn)) __bug(const char *file, int line, void *data) | |||
624 | printk(" - extra data = %p", data); | 624 | printk(" - extra data = %p", data); |
625 | printk("\n"); | 625 | printk("\n"); |
626 | *(int *)0 = 0; | 626 | *(int *)0 = 0; |
627 | |||
628 | /* Avoid "noreturn function does return" */ | ||
629 | for (;;); | ||
627 | } | 630 | } |
628 | EXPORT_SYMBOL(__bug); | 631 | EXPORT_SYMBOL(__bug); |
629 | 632 | ||
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index ad2d66c93a5c..08e58ecd44be 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -23,20 +23,20 @@ SECTIONS | |||
23 | *(.init.text) | 23 | *(.init.text) |
24 | _einittext = .; | 24 | _einittext = .; |
25 | __proc_info_begin = .; | 25 | __proc_info_begin = .; |
26 | *(.proc.info) | 26 | *(.proc.info.init) |
27 | __proc_info_end = .; | 27 | __proc_info_end = .; |
28 | __arch_info_begin = .; | 28 | __arch_info_begin = .; |
29 | *(.arch.info) | 29 | *(.arch.info.init) |
30 | __arch_info_end = .; | 30 | __arch_info_end = .; |
31 | __tagtable_begin = .; | 31 | __tagtable_begin = .; |
32 | *(.taglist) | 32 | *(.taglist.init) |
33 | __tagtable_end = .; | 33 | __tagtable_end = .; |
34 | . = ALIGN(16); | 34 | . = ALIGN(16); |
35 | __setup_start = .; | 35 | __setup_start = .; |
36 | *(.init.setup) | 36 | *(.init.setup) |
37 | __setup_end = .; | 37 | __setup_end = .; |
38 | __early_begin = .; | 38 | __early_begin = .; |
39 | *(__early_param) | 39 | *(.early_param.init) |
40 | __early_end = .; | 40 | __early_end = .; |
41 | __initcall_start = .; | 41 | __initcall_start = .; |
42 | *(.initcall1.init) | 42 | *(.initcall1.init) |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index ae1fa099d5fa..39b06ed80646 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
@@ -123,6 +123,7 @@ static void __init ixdp425_init(void) | |||
123 | platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); | 123 | platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); |
124 | } | 124 | } |
125 | 125 | ||
126 | #ifdef CONFIG_ARCH_IXDP465 | ||
126 | MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") | 127 | MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") |
127 | /* Maintainer: MontaVista Software, Inc. */ | 128 | /* Maintainer: MontaVista Software, Inc. */ |
128 | .phys_ram = PHYS_OFFSET, | 129 | .phys_ram = PHYS_OFFSET, |
@@ -134,7 +135,9 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") | |||
134 | .boot_params = 0x0100, | 135 | .boot_params = 0x0100, |
135 | .init_machine = ixdp425_init, | 136 | .init_machine = ixdp425_init, |
136 | MACHINE_END | 137 | MACHINE_END |
138 | #endif | ||
137 | 139 | ||
140 | #ifdef CONFIG_MACH_IXDP465 | ||
138 | MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") | 141 | MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") |
139 | /* Maintainer: MontaVista Software, Inc. */ | 142 | /* Maintainer: MontaVista Software, Inc. */ |
140 | .phys_ram = PHYS_OFFSET, | 143 | .phys_ram = PHYS_OFFSET, |
@@ -146,7 +149,9 @@ MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") | |||
146 | .boot_params = 0x0100, | 149 | .boot_params = 0x0100, |
147 | .init_machine = ixdp425_init, | 150 | .init_machine = ixdp425_init, |
148 | MACHINE_END | 151 | MACHINE_END |
152 | #endif | ||
149 | 153 | ||
154 | #ifdef CONFIG_ARCH_PRPMC1100 | ||
150 | MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") | 155 | MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") |
151 | /* Maintainer: MontaVista Software, Inc. */ | 156 | /* Maintainer: MontaVista Software, Inc. */ |
152 | .phys_ram = PHYS_OFFSET, | 157 | .phys_ram = PHYS_OFFSET, |
@@ -158,6 +163,7 @@ MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") | |||
158 | .boot_params = 0x0100, | 163 | .boot_params = 0x0100, |
159 | .init_machine = ixdp425_init, | 164 | .init_machine = ixdp425_init, |
160 | MACHINE_END | 165 | MACHINE_END |
166 | #endif | ||
161 | 167 | ||
162 | /* | 168 | /* |
163 | * Avila is functionally equivalent to IXDP425 except that it adds | 169 | * Avila is functionally equivalent to IXDP425 except that it adds |
diff --git a/arch/arm/mach-s3c2410/mach-anubis.c b/arch/arm/mach-s3c2410/mach-anubis.c index f87aa0b669ad..7c05f27fe1d6 100644 --- a/arch/arm/mach-s3c2410/mach-anubis.c +++ b/arch/arm/mach-s3c2410/mach-anubis.c | |||
@@ -12,6 +12,7 @@ | |||
12 | * | 12 | * |
13 | * Modifications: | 13 | * Modifications: |
14 | * 02-May-2005 BJD Copied from mach-bast.c | 14 | * 02-May-2005 BJD Copied from mach-bast.c |
15 | * 20-Sep-2005 BJD Added static to non-exported items | ||
15 | */ | 16 | */ |
16 | 17 | ||
17 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
@@ -232,7 +233,7 @@ static struct s3c24xx_board anubis_board __initdata = { | |||
232 | .clocks_count = ARRAY_SIZE(anubis_clocks) | 233 | .clocks_count = ARRAY_SIZE(anubis_clocks) |
233 | }; | 234 | }; |
234 | 235 | ||
235 | void __init anubis_map_io(void) | 236 | static void __init anubis_map_io(void) |
236 | { | 237 | { |
237 | /* initialise the clocks */ | 238 | /* initialise the clocks */ |
238 | 239 | ||
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 1a3367da6408..ed1f07d7252f 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -31,6 +31,7 @@ | |||
31 | * 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s | 31 | * 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s |
32 | * 25-Jul-2005 BJD Removed ASIX static mappings | 32 | * 25-Jul-2005 BJD Removed ASIX static mappings |
33 | * 27-Jul-2005 BJD Ensure maximum frequency of i2c bus | 33 | * 27-Jul-2005 BJD Ensure maximum frequency of i2c bus |
34 | * 20-Sep-2005 BJD Added static to non-exported items | ||
34 | */ | 35 | */ |
35 | 36 | ||
36 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
@@ -428,7 +429,7 @@ static struct s3c24xx_board bast_board __initdata = { | |||
428 | .clocks_count = ARRAY_SIZE(bast_clocks) | 429 | .clocks_count = ARRAY_SIZE(bast_clocks) |
429 | }; | 430 | }; |
430 | 431 | ||
431 | void __init bast_map_io(void) | 432 | static void __init bast_map_io(void) |
432 | { | 433 | { |
433 | /* initialise the clocks */ | 434 | /* initialise the clocks */ |
434 | 435 | ||
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 6ff1889fbd21..fb3cb01266e5 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -24,6 +24,7 @@ | |||
24 | * 10-Jan-2005 BJD Removed include of s3c2410.h | 24 | * 10-Jan-2005 BJD Removed include of s3c2410.h |
25 | * 14-Jan-2005 BJD Added clock init | 25 | * 14-Jan-2005 BJD Added clock init |
26 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 26 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
27 | * 20-Sep-2005 BJD Added static to non-exported items | ||
27 | */ | 28 | */ |
28 | 29 | ||
29 | #include <linux/kernel.h> | 30 | #include <linux/kernel.h> |
@@ -147,7 +148,7 @@ static struct s3c24xx_board h1940_board __initdata = { | |||
147 | .devices_count = ARRAY_SIZE(h1940_devices) | 148 | .devices_count = ARRAY_SIZE(h1940_devices) |
148 | }; | 149 | }; |
149 | 150 | ||
150 | void __init h1940_map_io(void) | 151 | static void __init h1940_map_io(void) |
151 | { | 152 | { |
152 | s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc)); | 153 | s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc)); |
153 | s3c24xx_init_clocks(0); | 154 | s3c24xx_init_clocks(0); |
@@ -155,13 +156,13 @@ void __init h1940_map_io(void) | |||
155 | s3c24xx_set_board(&h1940_board); | 156 | s3c24xx_set_board(&h1940_board); |
156 | } | 157 | } |
157 | 158 | ||
158 | void __init h1940_init_irq(void) | 159 | static void __init h1940_init_irq(void) |
159 | { | 160 | { |
160 | s3c24xx_init_irq(); | 161 | s3c24xx_init_irq(); |
161 | 162 | ||
162 | } | 163 | } |
163 | 164 | ||
164 | void __init h1940_init(void) | 165 | static void __init h1940_init(void) |
165 | { | 166 | { |
166 | set_s3c2410fb_info(&h1940_lcdcfg); | 167 | set_s3c2410fb_info(&h1940_lcdcfg); |
167 | } | 168 | } |
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 66bf5bb2b3db..5c0f2b091f95 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -97,7 +97,7 @@ static struct s3c24xx_board n30_board __initdata = { | |||
97 | .devices_count = ARRAY_SIZE(n30_devices) | 97 | .devices_count = ARRAY_SIZE(n30_devices) |
98 | }; | 98 | }; |
99 | 99 | ||
100 | void __init n30_map_io(void) | 100 | static void __init n30_map_io(void) |
101 | { | 101 | { |
102 | s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc)); | 102 | s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc)); |
103 | s3c24xx_init_clocks(0); | 103 | s3c24xx_init_clocks(0); |
@@ -105,14 +105,14 @@ void __init n30_map_io(void) | |||
105 | s3c24xx_set_board(&n30_board); | 105 | s3c24xx_set_board(&n30_board); |
106 | } | 106 | } |
107 | 107 | ||
108 | void __init n30_init_irq(void) | 108 | static void __init n30_init_irq(void) |
109 | { | 109 | { |
110 | s3c24xx_init_irq(); | 110 | s3c24xx_init_irq(); |
111 | } | 111 | } |
112 | 112 | ||
113 | /* GPB3 is the line that controls the pull-up for the USB D+ line */ | 113 | /* GPB3 is the line that controls the pull-up for the USB D+ line */ |
114 | 114 | ||
115 | void __init n30_init(void) | 115 | static void __init n30_init(void) |
116 | { | 116 | { |
117 | s3c_device_i2c.dev.platform_data = &n30_i2ccfg; | 117 | s3c_device_i2c.dev.platform_data = &n30_i2ccfg; |
118 | 118 | ||
diff --git a/arch/arm/mach-s3c2410/mach-nexcoder.c b/arch/arm/mach-s3c2410/mach-nexcoder.c index d24c242414ca..c22f8216032d 100644 --- a/arch/arm/mach-s3c2410/mach-nexcoder.c +++ b/arch/arm/mach-s3c2410/mach-nexcoder.c | |||
@@ -136,7 +136,7 @@ static void __init nexcoder_sensorboard_init(void) | |||
136 | s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN | 136 | s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN |
137 | } | 137 | } |
138 | 138 | ||
139 | void __init nexcoder_map_io(void) | 139 | static void __init nexcoder_map_io(void) |
140 | { | 140 | { |
141 | s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc)); | 141 | s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc)); |
142 | s3c24xx_init_clocks(0); | 142 | s3c24xx_init_clocks(0); |
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c index d901ed492ff5..ad1459e402e2 100644 --- a/arch/arm/mach-s3c2410/mach-otom.c +++ b/arch/arm/mach-s3c2410/mach-otom.c | |||
@@ -105,7 +105,7 @@ static struct s3c24xx_board otom11_board __initdata = { | |||
105 | }; | 105 | }; |
106 | 106 | ||
107 | 107 | ||
108 | void __init otom11_map_io(void) | 108 | static void __init otom11_map_io(void) |
109 | { | 109 | { |
110 | s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc)); | 110 | s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc)); |
111 | s3c24xx_init_clocks(0); | 111 | s3c24xx_init_clocks(0); |
diff --git a/arch/arm/mach-s3c2410/mach-rx3715.c b/arch/arm/mach-s3c2410/mach-rx3715.c index a73d61c1de46..22d9e070fd68 100644 --- a/arch/arm/mach-s3c2410/mach-rx3715.c +++ b/arch/arm/mach-s3c2410/mach-rx3715.c | |||
@@ -16,6 +16,7 @@ | |||
16 | * 14-Jan-2005 BJD Added new clock init | 16 | * 14-Jan-2005 BJD Added new clock init |
17 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 17 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
18 | * 14-Mar-2005 BJD Fixed __iomem warnings | 18 | * 14-Mar-2005 BJD Fixed __iomem warnings |
19 | * 20-Sep-2005 BJD Added static to non-exported items | ||
19 | */ | 20 | */ |
20 | 21 | ||
21 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
@@ -108,7 +109,7 @@ static struct s3c24xx_board rx3715_board __initdata = { | |||
108 | .devices_count = ARRAY_SIZE(rx3715_devices) | 109 | .devices_count = ARRAY_SIZE(rx3715_devices) |
109 | }; | 110 | }; |
110 | 111 | ||
111 | void __init rx3715_map_io(void) | 112 | static void __init rx3715_map_io(void) |
112 | { | 113 | { |
113 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); | 114 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); |
114 | s3c24xx_init_clocks(16934000); | 115 | s3c24xx_init_clocks(16934000); |
@@ -116,7 +117,7 @@ void __init rx3715_map_io(void) | |||
116 | s3c24xx_set_board(&rx3715_board); | 117 | s3c24xx_set_board(&rx3715_board); |
117 | } | 118 | } |
118 | 119 | ||
119 | void __init rx3715_init_irq(void) | 120 | static void __init rx3715_init_irq(void) |
120 | { | 121 | { |
121 | s3c24xx_init_irq(); | 122 | s3c24xx_init_irq(); |
122 | } | 123 | } |
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c index 67e903a700d3..2eda55a6b678 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2410.c +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c | |||
@@ -28,6 +28,7 @@ | |||
28 | * Ben Dooks <ben@simtec.co.uk> | 28 | * Ben Dooks <ben@simtec.co.uk> |
29 | * | 29 | * |
30 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 30 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
31 | * 20-Sep-2005 BJD Added static to non-exported items | ||
31 | * | 32 | * |
32 | ***********************************************************************/ | 33 | ***********************************************************************/ |
33 | 34 | ||
@@ -97,7 +98,7 @@ static struct s3c24xx_board smdk2410_board __initdata = { | |||
97 | .devices_count = ARRAY_SIZE(smdk2410_devices) | 98 | .devices_count = ARRAY_SIZE(smdk2410_devices) |
98 | }; | 99 | }; |
99 | 100 | ||
100 | void __init smdk2410_map_io(void) | 101 | static void __init smdk2410_map_io(void) |
101 | { | 102 | { |
102 | s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); | 103 | s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); |
103 | s3c24xx_init_clocks(0); | 104 | s3c24xx_init_clocks(0); |
@@ -105,7 +106,7 @@ void __init smdk2410_map_io(void) | |||
105 | s3c24xx_set_board(&smdk2410_board); | 106 | s3c24xx_set_board(&smdk2410_board); |
106 | } | 107 | } |
107 | 108 | ||
108 | void __init smdk2410_init_irq(void) | 109 | static void __init smdk2410_init_irq(void) |
109 | { | 110 | { |
110 | s3c24xx_init_irq(); | 111 | s3c24xx_init_irq(); |
111 | } | 112 | } |
diff --git a/arch/arm/mach-s3c2410/mach-smdk2440.c b/arch/arm/mach-s3c2410/mach-smdk2440.c index 357522106f68..722ef46b630a 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2440.c +++ b/arch/arm/mach-s3c2410/mach-smdk2440.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa | 18 | * 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa |
19 | * 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA | 19 | * 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA |
20 | * 14-Mar-2005 BJD void __iomem fixes | 20 | * 14-Mar-2005 BJD void __iomem fixes |
21 | * 20-Sep-2005 BJD Added static to non-exported items | ||
21 | */ | 22 | */ |
22 | 23 | ||
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
@@ -98,7 +99,7 @@ static struct s3c24xx_board smdk2440_board __initdata = { | |||
98 | .devices_count = ARRAY_SIZE(smdk2440_devices) | 99 | .devices_count = ARRAY_SIZE(smdk2440_devices) |
99 | }; | 100 | }; |
100 | 101 | ||
101 | void __init smdk2440_map_io(void) | 102 | static void __init smdk2440_map_io(void) |
102 | { | 103 | { |
103 | s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); | 104 | s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); |
104 | s3c24xx_init_clocks(16934400); | 105 | s3c24xx_init_clocks(16934400); |
@@ -106,7 +107,7 @@ void __init smdk2440_map_io(void) | |||
106 | s3c24xx_set_board(&smdk2440_board); | 107 | s3c24xx_set_board(&smdk2440_board); |
107 | } | 108 | } |
108 | 109 | ||
109 | void __init smdk2440_machine_init(void) | 110 | static void __init smdk2440_machine_init(void) |
110 | { | 111 | { |
111 | /* Configure the LEDs (even if we have no LED support)*/ | 112 | /* Configure the LEDs (even if we have no LED support)*/ |
112 | 113 | ||
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 8f9ab2893df4..663a7f98fc0b 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -28,6 +28,7 @@ | |||
28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 28 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
29 | * 14-Mar-2006 BJD void __iomem fixes | 29 | * 14-Mar-2006 BJD void __iomem fixes |
30 | * 22-Jun-2006 BJD Added DM9000 platform information | 30 | * 22-Jun-2006 BJD Added DM9000 platform information |
31 | * 20-Sep-2005 BJD Added static to non-exported items | ||
31 | */ | 32 | */ |
32 | 33 | ||
33 | #include <linux/kernel.h> | 34 | #include <linux/kernel.h> |
@@ -347,7 +348,7 @@ static void vr1000_power_off(void) | |||
347 | s3c2410_gpio_setpin(S3C2410_GPB9, 1); | 348 | s3c2410_gpio_setpin(S3C2410_GPB9, 1); |
348 | } | 349 | } |
349 | 350 | ||
350 | void __init vr1000_map_io(void) | 351 | static void __init vr1000_map_io(void) |
351 | { | 352 | { |
352 | /* initialise clock sources */ | 353 | /* initialise clock sources */ |
353 | 354 | ||
diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h index 279e3afa3c39..f085d68e568e 100644 --- a/arch/arm/mach-sa1100/generic.h +++ b/arch/arm/mach-sa1100/generic.h | |||
@@ -39,3 +39,6 @@ extern void sa11x0_set_ssp_data(struct sa11x0_ssp_plat_ops *ops); | |||
39 | 39 | ||
40 | struct irda_platform_data; | 40 | struct irda_platform_data; |
41 | void sa11x0_set_irda_data(struct irda_platform_data *irda); | 41 | void sa11x0_set_irda_data(struct irda_platform_data *irda); |
42 | |||
43 | struct mcp_plat_data; | ||
44 | void sa11x0_set_mcp_data(struct mcp_plat_data *data); | ||
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 0b6c4db44e08..4a884baf3b9c 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -233,7 +233,17 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
233 | if (in_interrupt() || !mm) | 233 | if (in_interrupt() || !mm) |
234 | goto no_context; | 234 | goto no_context; |
235 | 235 | ||
236 | down_read(&mm->mmap_sem); | 236 | /* |
237 | * As per x86, we may deadlock here. However, since the kernel only | ||
238 | * validly references user space from well defined areas of the code, | ||
239 | * we can bug out early if this is from code which shouldn't. | ||
240 | */ | ||
241 | if (!down_read_trylock(&mm->mmap_sem)) { | ||
242 | if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc)) | ||
243 | goto no_context; | ||
244 | down_read(&mm->mmap_sem); | ||
245 | } | ||
246 | |||
237 | fault = __do_page_fault(mm, addr, fsr, tsk); | 247 | fault = __do_page_fault(mm, addr, fsr, tsk); |
238 | up_read(&mm->mmap_sem); | 248 | up_read(&mm->mmap_sem); |
239 | 249 | ||
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index 1d739d282a45..82ec954e45b6 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -509,7 +509,7 @@ cpu_arm1020_name: | |||
509 | 509 | ||
510 | .align | 510 | .align |
511 | 511 | ||
512 | .section ".proc.info", #alloc, #execinstr | 512 | .section ".proc.info.init", #alloc, #execinstr |
513 | 513 | ||
514 | .type __arm1020_proc_info,#object | 514 | .type __arm1020_proc_info,#object |
515 | __arm1020_proc_info: | 515 | __arm1020_proc_info: |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 9b725665b5c7..7375fe930f72 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -491,7 +491,7 @@ cpu_arm1020e_name: | |||
491 | 491 | ||
492 | .align | 492 | .align |
493 | 493 | ||
494 | .section ".proc.info", #alloc, #execinstr | 494 | .section ".proc.info.init", #alloc, #execinstr |
495 | 495 | ||
496 | .type __arm1020e_proc_info,#object | 496 | .type __arm1020e_proc_info,#object |
497 | __arm1020e_proc_info: | 497 | __arm1020e_proc_info: |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 37b70fa21c76..6ca639094d6f 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -473,7 +473,7 @@ cpu_arm1022_name: | |||
473 | 473 | ||
474 | .align | 474 | .align |
475 | 475 | ||
476 | .section ".proc.info", #alloc, #execinstr | 476 | .section ".proc.info.init", #alloc, #execinstr |
477 | 477 | ||
478 | .type __arm1022_proc_info,#object | 478 | .type __arm1022_proc_info,#object |
479 | __arm1022_proc_info: | 479 | __arm1022_proc_info: |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 931b690d1be2..10317e4f55d2 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -469,7 +469,7 @@ cpu_arm1026_name: | |||
469 | 469 | ||
470 | .align | 470 | .align |
471 | 471 | ||
472 | .section ".proc.info", #alloc, #execinstr | 472 | .section ".proc.info.init", #alloc, #execinstr |
473 | 473 | ||
474 | .type __arm1026_proc_info,#object | 474 | .type __arm1026_proc_info,#object |
475 | __arm1026_proc_info: | 475 | __arm1026_proc_info: |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index d0f1bbb48f6c..8e7e1e70ab05 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -332,7 +332,7 @@ cpu_arm710_name: | |||
332 | 332 | ||
333 | .align | 333 | .align |
334 | 334 | ||
335 | .section ".proc.info", #alloc, #execinstr | 335 | .section ".proc.info.init", #alloc, #execinstr |
336 | 336 | ||
337 | .type __arm6_proc_info, #object | 337 | .type __arm6_proc_info, #object |
338 | __arm6_proc_info: | 338 | __arm6_proc_info: |
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index c69c9de32391..a13e0184d343 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
@@ -222,7 +222,7 @@ cpu_arm720_name: | |||
222 | * See linux/include/asm-arm/procinfo.h for a definition of this structure. | 222 | * See linux/include/asm-arm/procinfo.h for a definition of this structure. |
223 | */ | 223 | */ |
224 | 224 | ||
225 | .section ".proc.info", #alloc, #execinstr | 225 | .section ".proc.info.init", #alloc, #execinstr |
226 | 226 | ||
227 | .type __arm710_proc_info, #object | 227 | .type __arm710_proc_info, #object |
228 | __arm710_proc_info: | 228 | __arm710_proc_info: |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 0f490a0fcb71..d16513899999 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -452,7 +452,7 @@ cpu_arm920_name: | |||
452 | 452 | ||
453 | .align | 453 | .align |
454 | 454 | ||
455 | .section ".proc.info", #alloc, #execinstr | 455 | .section ".proc.info.init", #alloc, #execinstr |
456 | 456 | ||
457 | .type __arm920_proc_info,#object | 457 | .type __arm920_proc_info,#object |
458 | __arm920_proc_info: | 458 | __arm920_proc_info: |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index 62bc34a139ee..23b8ed97f4e3 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -456,7 +456,7 @@ cpu_arm922_name: | |||
456 | 456 | ||
457 | .align | 457 | .align |
458 | 458 | ||
459 | .section ".proc.info", #alloc, #execinstr | 459 | .section ".proc.info.init", #alloc, #execinstr |
460 | 460 | ||
461 | .type __arm922_proc_info,#object | 461 | .type __arm922_proc_info,#object |
462 | __arm922_proc_info: | 462 | __arm922_proc_info: |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index ee49aa2ca781..ee95c52db513 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -521,7 +521,7 @@ cpu_arm925_name: | |||
521 | 521 | ||
522 | .align | 522 | .align |
523 | 523 | ||
524 | .section ".proc.info", #alloc, #execinstr | 524 | .section ".proc.info.init", #alloc, #execinstr |
525 | 525 | ||
526 | .type __arm925_proc_info,#object | 526 | .type __arm925_proc_info,#object |
527 | __arm925_proc_info: | 527 | __arm925_proc_info: |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index bb95cc9fed03..7d042dc20c47 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -471,7 +471,7 @@ cpu_arm926_name: | |||
471 | 471 | ||
472 | .align | 472 | .align |
473 | 473 | ||
474 | .section ".proc.info", #alloc, #execinstr | 474 | .section ".proc.info.init", #alloc, #execinstr |
475 | 475 | ||
476 | .type __arm926_proc_info,#object | 476 | .type __arm926_proc_info,#object |
477 | __arm926_proc_info: | 477 | __arm926_proc_info: |
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index 34f7e7d3f419..bd330c4075a1 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
@@ -249,7 +249,7 @@ cpu_sa110_name: | |||
249 | 249 | ||
250 | .align | 250 | .align |
251 | 251 | ||
252 | .section ".proc.info", #alloc, #execinstr | 252 | .section ".proc.info.init", #alloc, #execinstr |
253 | 253 | ||
254 | .type __sa110_proc_info,#object | 254 | .type __sa110_proc_info,#object |
255 | __sa110_proc_info: | 255 | __sa110_proc_info: |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index ca14f80d5ab4..91b89124c0d7 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -280,7 +280,7 @@ cpu_sa1110_name: | |||
280 | 280 | ||
281 | .align | 281 | .align |
282 | 282 | ||
283 | .section ".proc.info", #alloc, #execinstr | 283 | .section ".proc.info.init", #alloc, #execinstr |
284 | 284 | ||
285 | .type __sa1100_proc_info,#object | 285 | .type __sa1100_proc_info,#object |
286 | __sa1100_proc_info: | 286 | __sa1100_proc_info: |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index eb34823c9dbf..caf3b19b167f 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -240,7 +240,7 @@ cpu_elf_name: | |||
240 | .size cpu_elf_name, . - cpu_elf_name | 240 | .size cpu_elf_name, . - cpu_elf_name |
241 | .align | 241 | .align |
242 | 242 | ||
243 | .section ".proc.info", #alloc, #execinstr | 243 | .section ".proc.info.init", #alloc, #execinstr |
244 | 244 | ||
245 | /* | 245 | /* |
246 | * Match any ARMv6 processor core. | 246 | * Match any ARMv6 processor core. |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index b88de2700146..861b35947280 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -578,7 +578,7 @@ cpu_pxa270_name: | |||
578 | 578 | ||
579 | .align | 579 | .align |
580 | 580 | ||
581 | .section ".proc.info", #alloc, #execinstr | 581 | .section ".proc.info.init", #alloc, #execinstr |
582 | 582 | ||
583 | .type __80200_proc_info,#object | 583 | .type __80200_proc_info,#object |
584 | __80200_proc_info: | 584 | __80200_proc_info: |