diff options
Diffstat (limited to 'arch/frv/kernel')
-rw-r--r-- | arch/frv/kernel/debug-stub.c | 1 | ||||
-rw-r--r-- | arch/frv/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/frv/kernel/init_task.c | 5 | ||||
-rw-r--r-- | arch/frv/kernel/pm.c | 14 | ||||
-rw-r--r-- | arch/frv/kernel/process.c | 4 | ||||
-rw-r--r-- | arch/frv/kernel/sys_frv.c | 1 | ||||
-rw-r--r-- | arch/frv/kernel/vmlinux.lds.S | 66 |
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 | ||
1530 | syscall_table_size = (. - sys_call_table) | 1530 | syscall_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 | */ |
22 | union thread_union init_thread_union | 22 | union 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 | */ |
153 | static int sysctl_pm_do_suspend(ctl_table *ctl, int write, struct file *filp, | 153 | static 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 | ||
201 | static int cmode_procctl(ctl_table *ctl, int write, struct file *filp, | 201 | static 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 | ||
304 | static int p0_procctl(ctl_table *ctl, int write, struct file *filp, | 304 | static 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 | ||
348 | static int cm_procctl(ctl_table *ctl, int write, struct file *filp, | 348 | static 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 | */ |
84 | void cpu_idle(void) | 84 | void 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 | ||