aboutsummaryrefslogtreecommitdiffstats
path: root/arch/frv/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/frv/kernel')
-rw-r--r--arch/frv/kernel/debug-stub.c1
-rw-r--r--arch/frv/kernel/entry.S2
-rw-r--r--arch/frv/kernel/init_task.c5
-rw-r--r--arch/frv/kernel/pm.c14
-rw-r--r--arch/frv/kernel/process.c4
-rw-r--r--arch/frv/kernel/sys_frv.c1
-rw-r--r--arch/frv/kernel/vmlinux.lds.S66
7 files changed, 18 insertions, 75 deletions
diff --git a/arch/frv/kernel/debug-stub.c b/arch/frv/kernel/debug-stub.c
index 2f6c60c921e0..2845139c8077 100644
--- a/arch/frv/kernel/debug-stub.c
+++ b/arch/frv/kernel/debug-stub.c
@@ -15,6 +15,7 @@
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/serial_reg.h> 17#include <linux/serial_reg.h>
18#include <linux/start_kernel.h>
18 19
19#include <asm/system.h> 20#include <asm/system.h>
20#include <asm/serial-regs.h> 21#include <asm/serial-regs.h>
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S
index fde1e446b440..189397ec012a 100644
--- a/arch/frv/kernel/entry.S
+++ b/arch/frv/kernel/entry.S
@@ -1525,6 +1525,6 @@ sys_call_table:
1525 .long sys_preadv 1525 .long sys_preadv
1526 .long sys_pwritev 1526 .long sys_pwritev
1527 .long sys_rt_tgsigqueueinfo /* 335 */ 1527 .long sys_rt_tgsigqueueinfo /* 335 */
1528 .long sys_perf_counter_open 1528 .long sys_perf_event_open
1529 1529
1530syscall_table_size = (. - sys_call_table) 1530syscall_table_size = (. - sys_call_table)
diff --git a/arch/frv/kernel/init_task.c b/arch/frv/kernel/init_task.c
index 1d3df1d9495c..3c3e0b336a9d 100644
--- a/arch/frv/kernel/init_task.c
+++ b/arch/frv/kernel/init_task.c
@@ -19,9 +19,8 @@ static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
19 * way process stacks are handled. This is done by having a special 19 * way process stacks are handled. This is done by having a special
20 * "init_task" linker map entry.. 20 * "init_task" linker map entry..
21 */ 21 */
22union thread_union init_thread_union 22union thread_union init_thread_union __init_task_data =
23 __attribute__((__section__(".data.init_task"))) = 23 { INIT_THREAD_INFO(init_task) };
24 { INIT_THREAD_INFO(init_task) };
25 24
26/* 25/*
27 * Initial task structure. 26 * Initial task structure.
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c
index be722fc1acff..0d4d3e3a4cfc 100644
--- a/arch/frv/kernel/pm.c
+++ b/arch/frv/kernel/pm.c
@@ -150,7 +150,7 @@ static int user_atoi(char __user *ubuf, size_t len)
150/* 150/*
151 * Send us to sleep. 151 * Send us to sleep.
152 */ 152 */
153static int sysctl_pm_do_suspend(ctl_table *ctl, int write, struct file *filp, 153static int sysctl_pm_do_suspend(ctl_table *ctl, int write,
154 void __user *buffer, size_t *lenp, loff_t *fpos) 154 void __user *buffer, size_t *lenp, loff_t *fpos)
155{ 155{
156 int retval, mode; 156 int retval, mode;
@@ -198,13 +198,13 @@ static int try_set_cmode(int new_cmode)
198} 198}
199 199
200 200
201static int cmode_procctl(ctl_table *ctl, int write, struct file *filp, 201static int cmode_procctl(ctl_table *ctl, int write,
202 void __user *buffer, size_t *lenp, loff_t *fpos) 202 void __user *buffer, size_t *lenp, loff_t *fpos)
203{ 203{
204 int new_cmode; 204 int new_cmode;
205 205
206 if (!write) 206 if (!write)
207 return proc_dointvec(ctl, write, filp, buffer, lenp, fpos); 207 return proc_dointvec(ctl, write, buffer, lenp, fpos);
208 208
209 new_cmode = user_atoi(buffer, *lenp); 209 new_cmode = user_atoi(buffer, *lenp);
210 210
@@ -301,13 +301,13 @@ static int try_set_cm(int new_cm)
301 return 0; 301 return 0;
302} 302}
303 303
304static int p0_procctl(ctl_table *ctl, int write, struct file *filp, 304static int p0_procctl(ctl_table *ctl, int write,
305 void __user *buffer, size_t *lenp, loff_t *fpos) 305 void __user *buffer, size_t *lenp, loff_t *fpos)
306{ 306{
307 int new_p0; 307 int new_p0;
308 308
309 if (!write) 309 if (!write)
310 return proc_dointvec(ctl, write, filp, buffer, lenp, fpos); 310 return proc_dointvec(ctl, write, buffer, lenp, fpos);
311 311
312 new_p0 = user_atoi(buffer, *lenp); 312 new_p0 = user_atoi(buffer, *lenp);
313 313
@@ -345,13 +345,13 @@ static int p0_sysctl(ctl_table *table,
345 return 1; 345 return 1;
346} 346}
347 347
348static int cm_procctl(ctl_table *ctl, int write, struct file *filp, 348static int cm_procctl(ctl_table *ctl, int write,
349 void __user *buffer, size_t *lenp, loff_t *fpos) 349 void __user *buffer, size_t *lenp, loff_t *fpos)
350{ 350{
351 int new_cm; 351 int new_cm;
352 352
353 if (!write) 353 if (!write)
354 return proc_dointvec(ctl, write, filp, buffer, lenp, fpos); 354 return proc_dointvec(ctl, write, buffer, lenp, fpos);
355 355
356 new_cm = user_atoi(buffer, *lenp); 356 new_cm = user_atoi(buffer, *lenp);
357 357
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c
index 0de50df74970..904255938216 100644
--- a/arch/frv/kernel/process.c
+++ b/arch/frv/kernel/process.c
@@ -83,13 +83,9 @@ void (*idle)(void) = core_sleep_idle;
83 */ 83 */
84void cpu_idle(void) 84void cpu_idle(void)
85{ 85{
86 int cpu = smp_processor_id();
87
88 /* endless idle loop with no priority at all */ 86 /* endless idle loop with no priority at all */
89 while (1) { 87 while (1) {
90 while (!need_resched()) { 88 while (!need_resched()) {
91 irq_stat[cpu].idle_timestamp = jiffies;
92
93 check_pgt_cache(); 89 check_pgt_cache();
94 90
95 if (!frv_dma_inprogress && idle) 91 if (!frv_dma_inprogress && idle)
diff --git a/arch/frv/kernel/sys_frv.c b/arch/frv/kernel/sys_frv.c
index baadc97f8627..2b6b5289cdcc 100644
--- a/arch/frv/kernel/sys_frv.c
+++ b/arch/frv/kernel/sys_frv.c
@@ -21,7 +21,6 @@
21#include <linux/stat.h> 21#include <linux/stat.h>
22#include <linux/mman.h> 22#include <linux/mman.h>
23#include <linux/file.h> 23#include <linux/file.h>
24#include <linux/utsname.h>
25#include <linux/syscalls.h> 24#include <linux/syscalls.h>
26#include <linux/ipc.h> 25#include <linux/ipc.h>
27 26
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index 7dbf41f68b52..cbe811fccfcc 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -35,50 +35,13 @@ SECTIONS
35#endif 35#endif
36 } 36 }
37 _einittext = .; 37 _einittext = .;
38 .init.data : { INIT_DATA }
39
40 . = ALIGN(8);
41 __setup_start = .;
42 .setup.init : { KEEP(*(.init.setup)) }
43 __setup_end = .;
44
45 __initcall_start = .;
46 .initcall.init : {
47 INITCALLS
48 }
49 __initcall_end = .;
50 __con_initcall_start = .;
51 .con_initcall.init : { *(.con_initcall.init) }
52 __con_initcall_end = .;
53 SECURITY_INIT
54 . = ALIGN(4);
55 __alt_instructions = .;
56 .altinstructions : { *(.altinstructions) }
57 __alt_instructions_end = .;
58 .altinstr_replacement : { *(.altinstr_replacement) }
59 38
39 INIT_DATA_SECTION(8)
60 PERCPU(4096) 40 PERCPU(4096)
61 41
62#ifdef CONFIG_BLK_DEV_INITRD 42 . = ALIGN(PAGE_SIZE);
63 . = ALIGN(4096);
64 __initramfs_start = .;
65 .init.ramfs : { *(.init.ramfs) }
66 __initramfs_end = .;
67#endif
68
69 . = ALIGN(THREAD_SIZE);
70 __init_end = .; 43 __init_end = .;
71 44
72 /* put sections together that have massive alignment issues */
73 . = ALIGN(THREAD_SIZE);
74 .data.init_task : {
75 /* init task record & stack */
76 *(.data.init_task)
77 }
78
79 . = ALIGN(L1_CACHE_BYTES);
80 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
81
82 .trap : { 45 .trap : {
83 /* trap table management - read entry-table.S before modifying */ 46 /* trap table management - read entry-table.S before modifying */
84 . = ALIGN(8192); 47 . = ALIGN(8192);
@@ -124,13 +87,12 @@ SECTIONS
124 87
125 } 88 }
126 89
127 . = ALIGN(8); /* Exception table */ 90 EXCEPTION_TABLE(8)
128 __start___ex_table = .;
129 __ex_table : { KEEP(*(__ex_table)) }
130 __stop___ex_table = .;
131 91
132 _sdata = .; 92 _sdata = .;
133 .data : { /* Data */ 93 .data : { /* Data */
94 INIT_TASK_DATA(THREAD_SIZE)
95 CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
134 DATA_DATA 96 DATA_DATA
135 *(.data.*) 97 *(.data.*)
136 EXIT_DATA 98 EXIT_DATA
@@ -159,22 +121,8 @@ SECTIONS
159 . = ALIGN(PAGE_SIZE); 121 . = ALIGN(PAGE_SIZE);
160 __kernel_image_end = .; 122 __kernel_image_end = .;
161 123
162 /* Stabs debugging sections. */ 124 STABS_DEBUG
163 .stab 0 : { *(.stab) } 125 DWARF_DEBUG
164 .stabstr 0 : { *(.stabstr) }
165 .stab.excl 0 : { *(.stab.excl) }
166 .stab.exclstr 0 : { *(.stab.exclstr) }
167 .stab.index 0 : { *(.stab.index) }
168 .stab.indexstr 0 : { *(.stab.indexstr) }
169
170 .debug_line 0 : { *(.debug_line) }
171 .debug_info 0 : { *(.debug_info) }
172 .debug_abbrev 0 : { *(.debug_abbrev) }
173 .debug_aranges 0 : { *(.debug_aranges) }
174 .debug_frame 0 : { *(.debug_frame) }
175 .debug_pubnames 0 : { *(.debug_pubnames) }
176 .debug_str 0 : { *(.debug_str) }
177 .debug_ranges 0 : { *(.debug_ranges) }
178 126
179 .comment 0 : { *(.comment) } 127 .comment 0 : { *(.comment) }
180 128