diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/kernel/ecard.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/sys_arm.c | 4 | ||||
-rw-r--r-- | arch/arm/kernel/time.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-fsample.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-h2.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-h3.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-innovator.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-nokia770.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-osk.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap1/board-perseus2.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-h4.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-pnx4008/clock.c | 11 | ||||
-rw-r--r-- | arch/arm/mm/fault.c | 4 | ||||
-rw-r--r-- | arch/arm/vfp/vfpsingle.c | 2 |
16 files changed, 64 insertions, 39 deletions
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index eca248d9eba4..3e14b1348c0b 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c | |||
@@ -295,7 +295,7 @@ ecard_task(void * unused) | |||
295 | */ | 295 | */ |
296 | static void ecard_call(struct ecard_request *req) | 296 | static void ecard_call(struct ecard_request *req) |
297 | { | 297 | { |
298 | DECLARE_COMPLETION(completion); | 298 | DECLARE_COMPLETION_ONSTACK(completion); |
299 | 299 | ||
300 | req->complete = &completion; | 300 | req->complete = &completion; |
301 | 301 | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 0a722e77c143..6bbd93dd186a 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -348,7 +348,7 @@ static void __init setup_processor(void) | |||
348 | cpu_name, processor_id, (int)processor_id & 15, | 348 | cpu_name, processor_id, (int)processor_id & 15, |
349 | proc_arch[cpu_architecture()], cr_alignment); | 349 | proc_arch[cpu_architecture()], cr_alignment); |
350 | 350 | ||
351 | sprintf(system_utsname.machine, "%s%c", list->arch_name, ENDIANNESS); | 351 | sprintf(init_utsname()->machine, "%s%c", list->arch_name, ENDIANNESS); |
352 | sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS); | 352 | sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS); |
353 | elf_hwcap = list->elf_hwcap; | 353 | elf_hwcap = list->elf_hwcap; |
354 | #ifndef CONFIG_ARM_THUMB | 354 | #ifndef CONFIG_ARM_THUMB |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 68e9634d260a..421329f5e18e 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -36,7 +36,9 @@ | |||
36 | * The online bitmask indicates that the CPU is up and running. | 36 | * The online bitmask indicates that the CPU is up and running. |
37 | */ | 37 | */ |
38 | cpumask_t cpu_possible_map; | 38 | cpumask_t cpu_possible_map; |
39 | EXPORT_SYMBOL(cpu_possible_map); | ||
39 | cpumask_t cpu_online_map; | 40 | cpumask_t cpu_online_map; |
41 | EXPORT_SYMBOL(cpu_online_map); | ||
40 | 42 | ||
41 | /* | 43 | /* |
42 | * as from 2.5, kernels no longer have an init_tasks structure | 44 | * as from 2.5, kernels no longer have an init_tasks structure |
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index 8170af471439..00c18d35913c 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
@@ -279,7 +279,7 @@ out: | |||
279 | return error; | 279 | return error; |
280 | } | 280 | } |
281 | 281 | ||
282 | long execve(const char *filename, char **argv, char **envp) | 282 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]) |
283 | { | 283 | { |
284 | struct pt_regs regs; | 284 | struct pt_regs regs; |
285 | int ret; | 285 | int ret; |
@@ -317,7 +317,7 @@ long execve(const char *filename, char **argv, char **envp) | |||
317 | out: | 317 | out: |
318 | return ret; | 318 | return ret; |
319 | } | 319 | } |
320 | EXPORT_SYMBOL(execve); | 320 | EXPORT_SYMBOL(kernel_execve); |
321 | 321 | ||
322 | /* | 322 | /* |
323 | * Since loff_t is a 64 bit type we avoid a lot of ABI hastle | 323 | * Since loff_t is a 64 bit type we avoid a lot of ABI hastle |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index d4dceb5f06e9..b030320b17c7 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -37,8 +37,6 @@ | |||
37 | */ | 37 | */ |
38 | struct sys_timer *system_timer; | 38 | struct sys_timer *system_timer; |
39 | 39 | ||
40 | extern unsigned long wall_jiffies; | ||
41 | |||
42 | /* this needs a better home */ | 40 | /* this needs a better home */ |
43 | DEFINE_SPINLOCK(rtc_lock); | 41 | DEFINE_SPINLOCK(rtc_lock); |
44 | 42 | ||
@@ -237,16 +235,11 @@ void do_gettimeofday(struct timeval *tv) | |||
237 | { | 235 | { |
238 | unsigned long flags; | 236 | unsigned long flags; |
239 | unsigned long seq; | 237 | unsigned long seq; |
240 | unsigned long usec, sec, lost; | 238 | unsigned long usec, sec; |
241 | 239 | ||
242 | do { | 240 | do { |
243 | seq = read_seqbegin_irqsave(&xtime_lock, flags); | 241 | seq = read_seqbegin_irqsave(&xtime_lock, flags); |
244 | usec = system_timer->offset(); | 242 | usec = system_timer->offset(); |
245 | |||
246 | lost = jiffies - wall_jiffies; | ||
247 | if (lost) | ||
248 | usec += lost * USECS_PER_JIFFY; | ||
249 | |||
250 | sec = xtime.tv_sec; | 243 | sec = xtime.tv_sec; |
251 | usec += xtime.tv_nsec / 1000; | 244 | usec += xtime.tv_nsec / 1000; |
252 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | 245 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); |
@@ -279,7 +272,6 @@ int do_settimeofday(struct timespec *tv) | |||
279 | * done, and then undo it! | 272 | * done, and then undo it! |
280 | */ | 273 | */ |
281 | nsec -= system_timer->offset() * NSEC_PER_USEC; | 274 | nsec -= system_timer->offset() * NSEC_PER_USEC; |
282 | nsec -= (jiffies - wall_jiffies) * TICK_NSEC; | ||
283 | 275 | ||
284 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); | 276 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); |
285 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); | 277 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); |
@@ -337,7 +329,7 @@ void timer_tick(struct pt_regs *regs) | |||
337 | profile_tick(CPU_PROFILING, regs); | 329 | profile_tick(CPU_PROFILING, regs); |
338 | do_leds(); | 330 | do_leds(); |
339 | do_set_rtc(); | 331 | do_set_rtc(); |
340 | do_timer(regs); | 332 | do_timer(1); |
341 | #ifndef CONFIG_SMP | 333 | #ifndef CONFIG_SMP |
342 | update_process_times(user_mode(regs)); | 334 | update_process_times(user_mode(regs)); |
343 | #endif | 335 | #endif |
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index c753a3c5aadd..62e42c7a628e 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c | |||
@@ -172,9 +172,11 @@ static struct resource kp_resources[] = { | |||
172 | }; | 172 | }; |
173 | 173 | ||
174 | static struct omap_kp_platform_data kp_data = { | 174 | static struct omap_kp_platform_data kp_data = { |
175 | .rows = 8, | 175 | .rows = 8, |
176 | .cols = 8, | 176 | .cols = 8, |
177 | .keymap = fsample_keymap, | 177 | .keymap = fsample_keymap, |
178 | .keymapsize = ARRAY_SIZE(fsample_keymap), | ||
179 | .delay = 4, | ||
178 | }; | 180 | }; |
179 | 181 | ||
180 | static struct platform_device kp_device = { | 182 | static struct platform_device kp_device = { |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index cd3a06dfc0a8..6e113078f7ab 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
@@ -167,10 +167,13 @@ static struct resource h2_kp_resources[] = { | |||
167 | }; | 167 | }; |
168 | 168 | ||
169 | static struct omap_kp_platform_data h2_kp_data = { | 169 | static struct omap_kp_platform_data h2_kp_data = { |
170 | .rows = 8, | 170 | .rows = 8, |
171 | .cols = 8, | 171 | .cols = 8, |
172 | .keymap = h2_keymap, | 172 | .keymap = h2_keymap, |
173 | .rep = 1, | 173 | .keymapsize = ARRAY_SIZE(h2_keymap), |
174 | .rep = 1, | ||
175 | .delay = 9, | ||
176 | .dbounce = 1, | ||
174 | }; | 177 | }; |
175 | 178 | ||
176 | static struct platform_device h2_kp_device = { | 179 | static struct platform_device h2_kp_device = { |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 7b206116cd03..f225a083dee1 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -247,10 +247,13 @@ static struct resource h3_kp_resources[] = { | |||
247 | }; | 247 | }; |
248 | 248 | ||
249 | static struct omap_kp_platform_data h3_kp_data = { | 249 | static struct omap_kp_platform_data h3_kp_data = { |
250 | .rows = 8, | 250 | .rows = 8, |
251 | .cols = 8, | 251 | .cols = 8, |
252 | .keymap = h3_keymap, | 252 | .keymap = h3_keymap, |
253 | .rep = 1, | 253 | .keymapsize = ARRAY_SIZE(h3_keymap), |
254 | .rep = 1, | ||
255 | .delay = 9, | ||
256 | .dbounce = 1, | ||
254 | }; | 257 | }; |
255 | 258 | ||
256 | static struct platform_device h3_kp_device = { | 259 | static struct platform_device h3_kp_device = { |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index 4cbc62db5b5d..cb00530ad279 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
@@ -159,9 +159,11 @@ static struct resource innovator_kp_resources[] = { | |||
159 | }; | 159 | }; |
160 | 160 | ||
161 | static struct omap_kp_platform_data innovator_kp_data = { | 161 | static struct omap_kp_platform_data innovator_kp_data = { |
162 | .rows = 8, | 162 | .rows = 8, |
163 | .cols = 8, | 163 | .cols = 8, |
164 | .keymap = innovator_keymap, | 164 | .keymap = innovator_keymap, |
165 | .keymapsize = ARRAY_SIZE(innovator_keymap), | ||
166 | .delay = 4, | ||
165 | }; | 167 | }; |
166 | 168 | ||
167 | static struct platform_device innovator_kp_device = { | 169 | static struct platform_device innovator_kp_device = { |
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index 02b980d77b12..dbc555d209ff 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
@@ -71,9 +71,11 @@ static struct resource nokia770_kp_resources[] = { | |||
71 | }; | 71 | }; |
72 | 72 | ||
73 | static struct omap_kp_platform_data nokia770_kp_data = { | 73 | static struct omap_kp_platform_data nokia770_kp_data = { |
74 | .rows = 8, | 74 | .rows = 8, |
75 | .cols = 8, | 75 | .cols = 8, |
76 | .keymap = nokia770_keymap | 76 | .keymap = nokia770_keymap, |
77 | .keymapsize = ARRAY_SIZE(nokia770_keymap) | ||
78 | .delay = 4, | ||
77 | }; | 79 | }; |
78 | 80 | ||
79 | static struct platform_device nokia770_kp_device = { | 81 | static struct platform_device nokia770_kp_device = { |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index b742261c97ad..6b05647a6c01 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
@@ -266,9 +266,11 @@ static const int osk_keymap[] = { | |||
266 | }; | 266 | }; |
267 | 267 | ||
268 | static struct omap_kp_platform_data osk_kp_data = { | 268 | static struct omap_kp_platform_data osk_kp_data = { |
269 | .rows = 8, | 269 | .rows = 8, |
270 | .cols = 8, | 270 | .cols = 8, |
271 | .keymap = (int *) osk_keymap, | 271 | .keymap = (int *) osk_keymap, |
272 | .keymapsize = ARRAY_SIZE(osk_keymap), | ||
273 | .delay = 9, | ||
272 | }; | 274 | }; |
273 | 275 | ||
274 | static struct resource osk5912_kp_resources[] = { | 276 | static struct resource osk5912_kp_resources[] = { |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 64b45d8ae357..fa4be962df67 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
@@ -171,9 +171,12 @@ static struct resource kp_resources[] = { | |||
171 | }; | 171 | }; |
172 | 172 | ||
173 | static struct omap_kp_platform_data kp_data = { | 173 | static struct omap_kp_platform_data kp_data = { |
174 | .rows = 8, | 174 | .rows = 8, |
175 | .cols = 8, | 175 | .cols = 8, |
176 | .keymap = p2_keymap, | 176 | .keymap = p2_keymap, |
177 | .keymapsize = ARRAY_SIZE(p2_keymap), | ||
178 | .delay = 4, | ||
179 | .dbounce = 1, | ||
177 | }; | 180 | }; |
178 | 181 | ||
179 | static struct platform_device kp_device = { | 182 | static struct platform_device kp_device = { |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 4933fce766c8..996aeda1285d 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
@@ -245,6 +245,7 @@ static struct omap_kp_platform_data h4_kp_data = { | |||
245 | .rows = 6, | 245 | .rows = 6, |
246 | .cols = 7, | 246 | .cols = 7, |
247 | .keymap = h4_keymap, | 247 | .keymap = h4_keymap, |
248 | .keymapsize = ARRAY_SIZE(h4_keymap), | ||
248 | .rep = 1, | 249 | .rep = 1, |
249 | .row_gpios = row_gpios, | 250 | .row_gpios = row_gpios, |
250 | .col_gpios = col_gpios, | 251 | .col_gpios = col_gpios, |
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c index f582ed2ec43c..daa8d3d98eff 100644 --- a/arch/arm/mach-pnx4008/clock.c +++ b/arch/arm/mach-pnx4008/clock.c | |||
@@ -735,6 +735,16 @@ static struct clk uart6_ck = { | |||
735 | .enable_reg = UARTCLKCTRL_REG, | 735 | .enable_reg = UARTCLKCTRL_REG, |
736 | }; | 736 | }; |
737 | 737 | ||
738 | static struct clk wdt_ck = { | ||
739 | .name = "wdt_ck", | ||
740 | .parent = &per_ck, | ||
741 | .flags = NEEDS_INITIALIZATION, | ||
742 | .round_rate = &on_off_round_rate, | ||
743 | .set_rate = &on_off_set_rate, | ||
744 | .enable_shift = 0, | ||
745 | .enable_reg = TIMCLKCTRL_REG, | ||
746 | }; | ||
747 | |||
738 | /* These clocks are visible outside this module | 748 | /* These clocks are visible outside this module |
739 | * and can be initialized | 749 | * and can be initialized |
740 | */ | 750 | */ |
@@ -765,6 +775,7 @@ static struct clk *onchip_clks[] = { | |||
765 | &uart4_ck, | 775 | &uart4_ck, |
766 | &uart5_ck, | 776 | &uart5_ck, |
767 | &uart6_ck, | 777 | &uart6_ck, |
778 | &wdt_ck, | ||
768 | }; | 779 | }; |
769 | 780 | ||
770 | static int local_clk_enable(struct clk *clk) | 781 | static int local_clk_enable(struct clk *clk) |
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index f0943d160ffe..5e658a874498 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -171,7 +171,7 @@ good_area: | |||
171 | if (fsr & (1 << 11)) /* write? */ | 171 | if (fsr & (1 << 11)) /* write? */ |
172 | mask = VM_WRITE; | 172 | mask = VM_WRITE; |
173 | else | 173 | else |
174 | mask = VM_READ|VM_EXEC; | 174 | mask = VM_READ|VM_EXEC|VM_WRITE; |
175 | 175 | ||
176 | fault = VM_FAULT_BADACCESS; | 176 | fault = VM_FAULT_BADACCESS; |
177 | if (!(vma->vm_flags & mask)) | 177 | if (!(vma->vm_flags & mask)) |
@@ -198,7 +198,7 @@ survive: | |||
198 | return fault; | 198 | return fault; |
199 | } | 199 | } |
200 | 200 | ||
201 | if (tsk->pid != 1) | 201 | if (!is_init(tsk)) |
202 | goto out; | 202 | goto out; |
203 | 203 | ||
204 | /* | 204 | /* |
diff --git a/arch/arm/vfp/vfpsingle.c b/arch/arm/vfp/vfpsingle.c index ab5e9503bae5..0221ba3bc799 100644 --- a/arch/arm/vfp/vfpsingle.c +++ b/arch/arm/vfp/vfpsingle.c | |||
@@ -198,8 +198,10 @@ u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exce | |||
198 | vfp_single_dump("pack: final", vs); | 198 | vfp_single_dump("pack: final", vs); |
199 | { | 199 | { |
200 | s32 d = vfp_single_pack(vs); | 200 | s32 d = vfp_single_pack(vs); |
201 | #ifdef DEBUG | ||
201 | pr_debug("VFP: %s: d(s%d)=%08x exceptions=%08x\n", func, | 202 | pr_debug("VFP: %s: d(s%d)=%08x exceptions=%08x\n", func, |
202 | sd, d, exceptions); | 203 | sd, d, exceptions); |
204 | #endif | ||
203 | vfp_put_float(d, sd); | 205 | vfp_put_float(d, sd); |
204 | } | 206 | } |
205 | 207 | ||