diff options
Diffstat (limited to 'arch')
42 files changed, 1195 insertions, 575 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e14278d59882..39a6c1b0b9a3 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -24,48 +24,91 @@ | |||
24 | #include "entry-header.S" | 24 | #include "entry-header.S" |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Interrupt handling. Preserves r7, r8, r9 | ||
28 | */ | ||
29 | .macro irq_handler | ||
30 | 1: get_irqnr_and_base r0, r6, r5, lr | ||
31 | movne r1, sp | ||
32 | @ | ||
33 | @ routine called with r0 = irq number, r1 = struct pt_regs * | ||
34 | @ | ||
35 | adrne lr, 1b | ||
36 | bne asm_do_IRQ | ||
37 | |||
38 | #ifdef CONFIG_SMP | ||
39 | /* | ||
40 | * XXX | ||
41 | * | ||
42 | * this macro assumes that irqstat (r6) and base (r5) are | ||
43 | * preserved from get_irqnr_and_base above | ||
44 | */ | ||
45 | test_for_ipi r0, r6, r5, lr | ||
46 | movne r0, sp | ||
47 | adrne lr, 1b | ||
48 | bne do_IPI | ||
49 | #endif | ||
50 | |||
51 | .endm | ||
52 | |||
53 | /* | ||
27 | * Invalid mode handlers | 54 | * Invalid mode handlers |
28 | */ | 55 | */ |
29 | .macro inv_entry, sym, reason | 56 | .macro inv_entry, reason |
30 | sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go | 57 | sub sp, sp, #S_FRAME_SIZE |
31 | stmia sp, {r0 - lr} @ Save XXX r0 - lr | 58 | stmib sp, {r1 - lr} |
32 | ldr r4, .LC\sym | ||
33 | mov r1, #\reason | 59 | mov r1, #\reason |
34 | .endm | 60 | .endm |
35 | 61 | ||
36 | __pabt_invalid: | 62 | __pabt_invalid: |
37 | inv_entry abt, BAD_PREFETCH | 63 | inv_entry BAD_PREFETCH |
38 | b 1f | 64 | b common_invalid |
39 | 65 | ||
40 | __dabt_invalid: | 66 | __dabt_invalid: |
41 | inv_entry abt, BAD_DATA | 67 | inv_entry BAD_DATA |
42 | b 1f | 68 | b common_invalid |
43 | 69 | ||
44 | __irq_invalid: | 70 | __irq_invalid: |
45 | inv_entry irq, BAD_IRQ | 71 | inv_entry BAD_IRQ |
46 | b 1f | 72 | b common_invalid |
47 | 73 | ||
48 | __und_invalid: | 74 | __und_invalid: |
49 | inv_entry und, BAD_UNDEFINSTR | 75 | inv_entry BAD_UNDEFINSTR |
76 | |||
77 | @ | ||
78 | @ XXX fall through to common_invalid | ||
79 | @ | ||
80 | |||
81 | @ | ||
82 | @ common_invalid - generic code for failed exception (re-entrant version of handlers) | ||
83 | @ | ||
84 | common_invalid: | ||
85 | zero_fp | ||
86 | |||
87 | ldmia r0, {r4 - r6} | ||
88 | add r0, sp, #S_PC @ here for interlock avoidance | ||
89 | mov r7, #-1 @ "" "" "" "" | ||
90 | str r4, [sp] @ save preserved r0 | ||
91 | stmia r0, {r5 - r7} @ lr_<exception>, | ||
92 | @ cpsr_<exception>, "old_r0" | ||
50 | 93 | ||
51 | 1: zero_fp | ||
52 | ldmia r4, {r5 - r7} @ Get XXX pc, cpsr, old_r0 | ||
53 | add r4, sp, #S_PC | ||
54 | stmia r4, {r5 - r7} @ Save XXX pc, cpsr, old_r0 | ||
55 | mov r0, sp | 94 | mov r0, sp |
56 | and r2, r6, #31 @ int mode | 95 | and r2, r6, #0x1f |
57 | b bad_mode | 96 | b bad_mode |
58 | 97 | ||
59 | /* | 98 | /* |
60 | * SVC mode handlers | 99 | * SVC mode handlers |
61 | */ | 100 | */ |
62 | .macro svc_entry, sym | 101 | .macro svc_entry |
63 | sub sp, sp, #S_FRAME_SIZE | 102 | sub sp, sp, #S_FRAME_SIZE |
64 | stmia sp, {r0 - r12} @ save r0 - r12 | 103 | stmib sp, {r1 - r12} |
65 | ldr r2, .LC\sym | 104 | |
66 | add r0, sp, #S_FRAME_SIZE | 105 | ldmia r0, {r1 - r3} |
67 | ldmia r2, {r2 - r4} @ get pc, cpsr | 106 | add r5, sp, #S_SP @ here for interlock avoidance |
68 | add r5, sp, #S_SP | 107 | mov r4, #-1 @ "" "" "" "" |
108 | add r0, sp, #S_FRAME_SIZE @ "" "" "" "" | ||
109 | str r1, [sp] @ save the "real" r0 copied | ||
110 | @ from the exception stack | ||
111 | |||
69 | mov r1, lr | 112 | mov r1, lr |
70 | 113 | ||
71 | @ | 114 | @ |
@@ -82,7 +125,7 @@ __und_invalid: | |||
82 | 125 | ||
83 | .align 5 | 126 | .align 5 |
84 | __dabt_svc: | 127 | __dabt_svc: |
85 | svc_entry abt | 128 | svc_entry |
86 | 129 | ||
87 | @ | 130 | @ |
88 | @ get ready to re-enable interrupts if appropriate | 131 | @ get ready to re-enable interrupts if appropriate |
@@ -129,28 +172,24 @@ __dabt_svc: | |||
129 | 172 | ||
130 | .align 5 | 173 | .align 5 |
131 | __irq_svc: | 174 | __irq_svc: |
132 | svc_entry irq | 175 | svc_entry |
176 | |||
133 | #ifdef CONFIG_PREEMPT | 177 | #ifdef CONFIG_PREEMPT |
134 | get_thread_info r8 | 178 | get_thread_info tsk |
135 | ldr r9, [r8, #TI_PREEMPT] @ get preempt count | 179 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count |
136 | add r7, r9, #1 @ increment it | 180 | add r7, r8, #1 @ increment it |
137 | str r7, [r8, #TI_PREEMPT] | 181 | str r7, [tsk, #TI_PREEMPT] |
138 | #endif | 182 | #endif |
139 | 1: get_irqnr_and_base r0, r6, r5, lr | 183 | |
140 | movne r1, sp | 184 | irq_handler |
141 | @ | ||
142 | @ routine called with r0 = irq number, r1 = struct pt_regs * | ||
143 | @ | ||
144 | adrne lr, 1b | ||
145 | bne asm_do_IRQ | ||
146 | #ifdef CONFIG_PREEMPT | 185 | #ifdef CONFIG_PREEMPT |
147 | ldr r0, [r8, #TI_FLAGS] @ get flags | 186 | ldr r0, [tsk, #TI_FLAGS] @ get flags |
148 | tst r0, #_TIF_NEED_RESCHED | 187 | tst r0, #_TIF_NEED_RESCHED |
149 | blne svc_preempt | 188 | blne svc_preempt |
150 | preempt_return: | 189 | preempt_return: |
151 | ldr r0, [r8, #TI_PREEMPT] @ read preempt value | 190 | ldr r0, [tsk, #TI_PREEMPT] @ read preempt value |
191 | str r8, [tsk, #TI_PREEMPT] @ restore preempt count | ||
152 | teq r0, r7 | 192 | teq r0, r7 |
153 | str r9, [r8, #TI_PREEMPT] @ restore preempt count | ||
154 | strne r0, [r0, -r0] @ bug() | 193 | strne r0, [r0, -r0] @ bug() |
155 | #endif | 194 | #endif |
156 | ldr r0, [sp, #S_PSR] @ irqs are already disabled | 195 | ldr r0, [sp, #S_PSR] @ irqs are already disabled |
@@ -161,7 +200,7 @@ preempt_return: | |||
161 | 200 | ||
162 | #ifdef CONFIG_PREEMPT | 201 | #ifdef CONFIG_PREEMPT |
163 | svc_preempt: | 202 | svc_preempt: |
164 | teq r9, #0 @ was preempt count = 0 | 203 | teq r8, #0 @ was preempt count = 0 |
165 | ldreq r6, .LCirq_stat | 204 | ldreq r6, .LCirq_stat |
166 | movne pc, lr @ no | 205 | movne pc, lr @ no |
167 | ldr r0, [r6, #4] @ local_irq_count | 206 | ldr r0, [r6, #4] @ local_irq_count |
@@ -169,9 +208,9 @@ svc_preempt: | |||
169 | adds r0, r0, r1 | 208 | adds r0, r0, r1 |
170 | movne pc, lr | 209 | movne pc, lr |
171 | mov r7, #0 @ preempt_schedule_irq | 210 | mov r7, #0 @ preempt_schedule_irq |
172 | str r7, [r8, #TI_PREEMPT] @ expects preempt_count == 0 | 211 | str r7, [tsk, #TI_PREEMPT] @ expects preempt_count == 0 |
173 | 1: bl preempt_schedule_irq @ irq en/disable is done inside | 212 | 1: bl preempt_schedule_irq @ irq en/disable is done inside |
174 | ldr r0, [r8, #TI_FLAGS] @ get new tasks TI_FLAGS | 213 | ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS |
175 | tst r0, #_TIF_NEED_RESCHED | 214 | tst r0, #_TIF_NEED_RESCHED |
176 | beq preempt_return @ go again | 215 | beq preempt_return @ go again |
177 | b 1b | 216 | b 1b |
@@ -179,7 +218,7 @@ svc_preempt: | |||
179 | 218 | ||
180 | .align 5 | 219 | .align 5 |
181 | __und_svc: | 220 | __und_svc: |
182 | svc_entry und | 221 | svc_entry |
183 | 222 | ||
184 | @ | 223 | @ |
185 | @ call emulation code, which returns using r9 if it has emulated | 224 | @ call emulation code, which returns using r9 if it has emulated |
@@ -209,7 +248,7 @@ __und_svc: | |||
209 | 248 | ||
210 | .align 5 | 249 | .align 5 |
211 | __pabt_svc: | 250 | __pabt_svc: |
212 | svc_entry abt | 251 | svc_entry |
213 | 252 | ||
214 | @ | 253 | @ |
215 | @ re-enable interrupts if appropriate | 254 | @ re-enable interrupts if appropriate |
@@ -242,12 +281,8 @@ __pabt_svc: | |||
242 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr | 281 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr |
243 | 282 | ||
244 | .align 5 | 283 | .align 5 |
245 | .LCirq: | 284 | .LCcralign: |
246 | .word __temp_irq | 285 | .word cr_alignment |
247 | .LCund: | ||
248 | .word __temp_und | ||
249 | .LCabt: | ||
250 | .word __temp_abt | ||
251 | #ifdef MULTI_ABORT | 286 | #ifdef MULTI_ABORT |
252 | .LCprocfns: | 287 | .LCprocfns: |
253 | .word processor | 288 | .word processor |
@@ -262,12 +297,16 @@ __pabt_svc: | |||
262 | /* | 297 | /* |
263 | * User mode handlers | 298 | * User mode handlers |
264 | */ | 299 | */ |
265 | .macro usr_entry, sym | 300 | .macro usr_entry |
266 | sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go | 301 | sub sp, sp, #S_FRAME_SIZE |
267 | stmia sp, {r0 - r12} @ save r0 - r12 | 302 | stmib sp, {r1 - r12} |
268 | ldr r7, .LC\sym | 303 | |
269 | add r5, sp, #S_PC | 304 | ldmia r0, {r1 - r3} |
270 | ldmia r7, {r2 - r4} @ Get USR pc, cpsr | 305 | add r0, sp, #S_PC @ here for interlock avoidance |
306 | mov r4, #-1 @ "" "" "" "" | ||
307 | |||
308 | str r1, [sp] @ save the "real" r0 copied | ||
309 | @ from the exception stack | ||
271 | 310 | ||
272 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) | 311 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) |
273 | @ make sure our user space atomic helper is aborted | 312 | @ make sure our user space atomic helper is aborted |
@@ -284,13 +323,13 @@ __pabt_svc: | |||
284 | @ | 323 | @ |
285 | @ Also, separately save sp_usr and lr_usr | 324 | @ Also, separately save sp_usr and lr_usr |
286 | @ | 325 | @ |
287 | stmia r5, {r2 - r4} | 326 | stmia r0, {r2 - r4} |
288 | stmdb r5, {sp, lr}^ | 327 | stmdb r0, {sp, lr}^ |
289 | 328 | ||
290 | @ | 329 | @ |
291 | @ Enable the alignment trap while in kernel mode | 330 | @ Enable the alignment trap while in kernel mode |
292 | @ | 331 | @ |
293 | alignment_trap r7, r0, __temp_\sym | 332 | alignment_trap r0 |
294 | 333 | ||
295 | @ | 334 | @ |
296 | @ Clear FP to mark the first stack frame | 335 | @ Clear FP to mark the first stack frame |
@@ -300,7 +339,7 @@ __pabt_svc: | |||
300 | 339 | ||
301 | .align 5 | 340 | .align 5 |
302 | __dabt_usr: | 341 | __dabt_usr: |
303 | usr_entry abt | 342 | usr_entry |
304 | 343 | ||
305 | @ | 344 | @ |
306 | @ Call the processor-specific abort handler: | 345 | @ Call the processor-specific abort handler: |
@@ -329,30 +368,23 @@ __dabt_usr: | |||
329 | 368 | ||
330 | .align 5 | 369 | .align 5 |
331 | __irq_usr: | 370 | __irq_usr: |
332 | usr_entry irq | 371 | usr_entry |
333 | 372 | ||
373 | get_thread_info tsk | ||
334 | #ifdef CONFIG_PREEMPT | 374 | #ifdef CONFIG_PREEMPT |
335 | get_thread_info r8 | 375 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count |
336 | ldr r9, [r8, #TI_PREEMPT] @ get preempt count | 376 | add r7, r8, #1 @ increment it |
337 | add r7, r9, #1 @ increment it | 377 | str r7, [tsk, #TI_PREEMPT] |
338 | str r7, [r8, #TI_PREEMPT] | ||
339 | #endif | 378 | #endif |
340 | 1: get_irqnr_and_base r0, r6, r5, lr | 379 | |
341 | movne r1, sp | 380 | irq_handler |
342 | adrne lr, 1b | ||
343 | @ | ||
344 | @ routine called with r0 = irq number, r1 = struct pt_regs * | ||
345 | @ | ||
346 | bne asm_do_IRQ | ||
347 | #ifdef CONFIG_PREEMPT | 381 | #ifdef CONFIG_PREEMPT |
348 | ldr r0, [r8, #TI_PREEMPT] | 382 | ldr r0, [tsk, #TI_PREEMPT] |
383 | str r8, [tsk, #TI_PREEMPT] | ||
349 | teq r0, r7 | 384 | teq r0, r7 |
350 | str r9, [r8, #TI_PREEMPT] | ||
351 | strne r0, [r0, -r0] | 385 | strne r0, [r0, -r0] |
352 | mov tsk, r8 | ||
353 | #else | ||
354 | get_thread_info tsk | ||
355 | #endif | 386 | #endif |
387 | |||
356 | mov why, #0 | 388 | mov why, #0 |
357 | b ret_to_user | 389 | b ret_to_user |
358 | 390 | ||
@@ -360,7 +392,7 @@ __irq_usr: | |||
360 | 392 | ||
361 | .align 5 | 393 | .align 5 |
362 | __und_usr: | 394 | __und_usr: |
363 | usr_entry und | 395 | usr_entry |
364 | 396 | ||
365 | tst r3, #PSR_T_BIT @ Thumb mode? | 397 | tst r3, #PSR_T_BIT @ Thumb mode? |
366 | bne fpundefinstr @ ignore FP | 398 | bne fpundefinstr @ ignore FP |
@@ -476,7 +508,7 @@ fpundefinstr: | |||
476 | 508 | ||
477 | .align 5 | 509 | .align 5 |
478 | __pabt_usr: | 510 | __pabt_usr: |
479 | usr_entry abt | 511 | usr_entry |
480 | 512 | ||
481 | enable_irq @ Enable interrupts | 513 | enable_irq @ Enable interrupts |
482 | mov r0, r2 @ address (pc) | 514 | mov r0, r2 @ address (pc) |
@@ -741,29 +773,41 @@ __kuser_helper_end: | |||
741 | * | 773 | * |
742 | * Common stub entry macro: | 774 | * Common stub entry macro: |
743 | * Enter in IRQ mode, spsr = SVC/USR CPSR, lr = SVC/USR PC | 775 | * Enter in IRQ mode, spsr = SVC/USR CPSR, lr = SVC/USR PC |
776 | * | ||
777 | * SP points to a minimal amount of processor-private memory, the address | ||
778 | * of which is copied into r0 for the mode specific abort handler. | ||
744 | */ | 779 | */ |
745 | .macro vector_stub, name, sym, correction=0 | 780 | .macro vector_stub, name, correction=0 |
746 | .align 5 | 781 | .align 5 |
747 | 782 | ||
748 | vector_\name: | 783 | vector_\name: |
749 | ldr r13, .LCs\sym | ||
750 | .if \correction | 784 | .if \correction |
751 | sub lr, lr, #\correction | 785 | sub lr, lr, #\correction |
752 | .endif | 786 | .endif |
753 | str lr, [r13] @ save lr_IRQ | 787 | |
788 | @ | ||
789 | @ Save r0, lr_<exception> (parent PC) and spsr_<exception> | ||
790 | @ (parent CPSR) | ||
791 | @ | ||
792 | stmia sp, {r0, lr} @ save r0, lr | ||
754 | mrs lr, spsr | 793 | mrs lr, spsr |
755 | str lr, [r13, #4] @ save spsr_IRQ | 794 | str lr, [sp, #8] @ save spsr |
795 | |||
756 | @ | 796 | @ |
757 | @ now branch to the relevant MODE handling routine | 797 | @ Prepare for SVC32 mode. IRQs remain disabled. |
758 | @ | 798 | @ |
759 | mrs r13, cpsr | 799 | mrs r0, cpsr |
760 | bic r13, r13, #MODE_MASK | 800 | bic r0, r0, #MODE_MASK |
761 | orr r13, r13, #SVC_MODE | 801 | orr r0, r0, #SVC_MODE |
762 | msr spsr_cxsf, r13 @ switch to SVC_32 mode | 802 | msr spsr_cxsf, r0 |
763 | 803 | ||
764 | and lr, lr, #15 | 804 | @ |
805 | @ the branch table must immediately follow this code | ||
806 | @ | ||
807 | mov r0, sp | ||
808 | and lr, lr, #0x0f | ||
765 | ldr lr, [pc, lr, lsl #2] | 809 | ldr lr, [pc, lr, lsl #2] |
766 | movs pc, lr @ Changes mode and branches | 810 | movs pc, lr @ branch to handler in SVC mode |
767 | .endm | 811 | .endm |
768 | 812 | ||
769 | .globl __stubs_start | 813 | .globl __stubs_start |
@@ -771,7 +815,7 @@ __stubs_start: | |||
771 | /* | 815 | /* |
772 | * Interrupt dispatcher | 816 | * Interrupt dispatcher |
773 | */ | 817 | */ |
774 | vector_stub irq, irq, 4 | 818 | vector_stub irq, 4 |
775 | 819 | ||
776 | .long __irq_usr @ 0 (USR_26 / USR_32) | 820 | .long __irq_usr @ 0 (USR_26 / USR_32) |
777 | .long __irq_invalid @ 1 (FIQ_26 / FIQ_32) | 821 | .long __irq_invalid @ 1 (FIQ_26 / FIQ_32) |
@@ -794,7 +838,7 @@ __stubs_start: | |||
794 | * Data abort dispatcher | 838 | * Data abort dispatcher |
795 | * Enter in ABT mode, spsr = USR CPSR, lr = USR PC | 839 | * Enter in ABT mode, spsr = USR CPSR, lr = USR PC |
796 | */ | 840 | */ |
797 | vector_stub dabt, abt, 8 | 841 | vector_stub dabt, 8 |
798 | 842 | ||
799 | .long __dabt_usr @ 0 (USR_26 / USR_32) | 843 | .long __dabt_usr @ 0 (USR_26 / USR_32) |
800 | .long __dabt_invalid @ 1 (FIQ_26 / FIQ_32) | 844 | .long __dabt_invalid @ 1 (FIQ_26 / FIQ_32) |
@@ -817,7 +861,7 @@ __stubs_start: | |||
817 | * Prefetch abort dispatcher | 861 | * Prefetch abort dispatcher |
818 | * Enter in ABT mode, spsr = USR CPSR, lr = USR PC | 862 | * Enter in ABT mode, spsr = USR CPSR, lr = USR PC |
819 | */ | 863 | */ |
820 | vector_stub pabt, abt, 4 | 864 | vector_stub pabt, 4 |
821 | 865 | ||
822 | .long __pabt_usr @ 0 (USR_26 / USR_32) | 866 | .long __pabt_usr @ 0 (USR_26 / USR_32) |
823 | .long __pabt_invalid @ 1 (FIQ_26 / FIQ_32) | 867 | .long __pabt_invalid @ 1 (FIQ_26 / FIQ_32) |
@@ -840,7 +884,7 @@ __stubs_start: | |||
840 | * Undef instr entry dispatcher | 884 | * Undef instr entry dispatcher |
841 | * Enter in UND mode, spsr = SVC/USR CPSR, lr = SVC/USR PC | 885 | * Enter in UND mode, spsr = SVC/USR CPSR, lr = SVC/USR PC |
842 | */ | 886 | */ |
843 | vector_stub und, und | 887 | vector_stub und |
844 | 888 | ||
845 | .long __und_usr @ 0 (USR_26 / USR_32) | 889 | .long __und_usr @ 0 (USR_26 / USR_32) |
846 | .long __und_invalid @ 1 (FIQ_26 / FIQ_32) | 890 | .long __und_invalid @ 1 (FIQ_26 / FIQ_32) |
@@ -894,13 +938,6 @@ vector_addrexcptn: | |||
894 | .LCvswi: | 938 | .LCvswi: |
895 | .word vector_swi | 939 | .word vector_swi |
896 | 940 | ||
897 | .LCsirq: | ||
898 | .word __temp_irq | ||
899 | .LCsund: | ||
900 | .word __temp_und | ||
901 | .LCsabt: | ||
902 | .word __temp_abt | ||
903 | |||
904 | .globl __stubs_end | 941 | .globl __stubs_end |
905 | __stubs_end: | 942 | __stubs_end: |
906 | 943 | ||
@@ -922,23 +959,6 @@ __vectors_end: | |||
922 | 959 | ||
923 | .data | 960 | .data |
924 | 961 | ||
925 | /* | ||
926 | * Do not reorder these, and do not insert extra data between... | ||
927 | */ | ||
928 | |||
929 | __temp_irq: | ||
930 | .word 0 @ saved lr_irq | ||
931 | .word 0 @ saved spsr_irq | ||
932 | .word -1 @ old_r0 | ||
933 | __temp_und: | ||
934 | .word 0 @ Saved lr_und | ||
935 | .word 0 @ Saved spsr_und | ||
936 | .word -1 @ old_r0 | ||
937 | __temp_abt: | ||
938 | .word 0 @ Saved lr_abt | ||
939 | .word 0 @ Saved spsr_abt | ||
940 | .word -1 @ old_r0 | ||
941 | |||
942 | .globl cr_alignment | 962 | .globl cr_alignment |
943 | .globl cr_no_alignment | 963 | .globl cr_no_alignment |
944 | cr_alignment: | 964 | cr_alignment: |
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index a3d40a0e2b04..afef21273963 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -59,11 +59,10 @@ | |||
59 | mov \rd, \rd, lsl #13 | 59 | mov \rd, \rd, lsl #13 |
60 | .endm | 60 | .endm |
61 | 61 | ||
62 | .macro alignment_trap, rbase, rtemp, sym | 62 | .macro alignment_trap, rtemp |
63 | #ifdef CONFIG_ALIGNMENT_TRAP | 63 | #ifdef CONFIG_ALIGNMENT_TRAP |
64 | #define OFF_CR_ALIGNMENT(x) cr_alignment - x | 64 | ldr \rtemp, .LCcralign |
65 | 65 | ldr \rtemp, [\rtemp] | |
66 | ldr \rtemp, [\rbase, #OFF_CR_ALIGNMENT(\sym)] | ||
67 | mcr p15, 0, \rtemp, c1, c0 | 66 | mcr p15, 0, \rtemp, c1, c0 |
68 | #endif | 67 | #endif |
69 | .endm | 68 | .endm |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 4733877296d4..bd4823c74645 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -2,6 +2,8 @@ | |||
2 | * linux/arch/arm/kernel/head.S | 2 | * linux/arch/arm/kernel/head.S |
3 | * | 3 | * |
4 | * Copyright (C) 1994-2002 Russell King | 4 | * Copyright (C) 1994-2002 Russell King |
5 | * Copyright (c) 2003 ARM Limited | ||
6 | * All Rights Reserved | ||
5 | * | 7 | * |
6 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
@@ -165,6 +167,48 @@ __mmap_switched: | |||
165 | stmia r6, {r0, r4} @ Save control register values | 167 | stmia r6, {r0, r4} @ Save control register values |
166 | b start_kernel | 168 | b start_kernel |
167 | 169 | ||
170 | #if defined(CONFIG_SMP) | ||
171 | .type secondary_startup, #function | ||
172 | ENTRY(secondary_startup) | ||
173 | /* | ||
174 | * Common entry point for secondary CPUs. | ||
175 | * | ||
176 | * Ensure that we're in SVC mode, and IRQs are disabled. Lookup | ||
177 | * the processor type - there is no need to check the machine type | ||
178 | * as it has already been validated by the primary processor. | ||
179 | */ | ||
180 | msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | MODE_SVC | ||
181 | bl __lookup_processor_type | ||
182 | movs r10, r5 @ invalid processor? | ||
183 | moveq r0, #'p' @ yes, error 'p' | ||
184 | beq __error | ||
185 | |||
186 | /* | ||
187 | * Use the page tables supplied from __cpu_up. | ||
188 | */ | ||
189 | adr r4, __secondary_data | ||
190 | ldmia r4, {r5, r6, r13} @ address to jump to after | ||
191 | sub r4, r4, r5 @ mmu has been enabled | ||
192 | ldr r4, [r6, r4] @ get secondary_data.pgdir | ||
193 | adr lr, __enable_mmu @ return address | ||
194 | add pc, r10, #12 @ initialise processor | ||
195 | @ (return control reg) | ||
196 | |||
197 | /* | ||
198 | * r6 = &secondary_data | ||
199 | */ | ||
200 | ENTRY(__secondary_switched) | ||
201 | ldr sp, [r6, #4] @ get secondary_data.stack | ||
202 | mov fp, #0 | ||
203 | b secondary_start_kernel | ||
204 | |||
205 | .type __secondary_data, %object | ||
206 | __secondary_data: | ||
207 | .long . | ||
208 | .long secondary_data | ||
209 | .long __secondary_switched | ||
210 | #endif /* defined(CONFIG_SMP) */ | ||
211 | |||
168 | 212 | ||
169 | 213 | ||
170 | /* | 214 | /* |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index c2a7da3ac0f1..9fed5fa194d9 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -92,6 +92,14 @@ struct cpu_user_fns cpu_user; | |||
92 | struct cpu_cache_fns cpu_cache; | 92 | struct cpu_cache_fns cpu_cache; |
93 | #endif | 93 | #endif |
94 | 94 | ||
95 | struct stack { | ||
96 | u32 irq[3]; | ||
97 | u32 abt[3]; | ||
98 | u32 und[3]; | ||
99 | } ____cacheline_aligned; | ||
100 | |||
101 | static struct stack stacks[NR_CPUS]; | ||
102 | |||
95 | char elf_platform[ELF_PLATFORM_SIZE]; | 103 | char elf_platform[ELF_PLATFORM_SIZE]; |
96 | EXPORT_SYMBOL(elf_platform); | 104 | EXPORT_SYMBOL(elf_platform); |
97 | 105 | ||
@@ -307,8 +315,6 @@ static void __init setup_processor(void) | |||
307 | cpu_name, processor_id, (int)processor_id & 15, | 315 | cpu_name, processor_id, (int)processor_id & 15, |
308 | proc_arch[cpu_architecture()]); | 316 | proc_arch[cpu_architecture()]); |
309 | 317 | ||
310 | dump_cpu_info(smp_processor_id()); | ||
311 | |||
312 | sprintf(system_utsname.machine, "%s%c", list->arch_name, ENDIANNESS); | 318 | sprintf(system_utsname.machine, "%s%c", list->arch_name, ENDIANNESS); |
313 | sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS); | 319 | sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS); |
314 | elf_hwcap = list->elf_hwcap; | 320 | elf_hwcap = list->elf_hwcap; |
@@ -316,6 +322,46 @@ static void __init setup_processor(void) | |||
316 | cpu_proc_init(); | 322 | cpu_proc_init(); |
317 | } | 323 | } |
318 | 324 | ||
325 | /* | ||
326 | * cpu_init - initialise one CPU. | ||
327 | * | ||
328 | * cpu_init dumps the cache information, initialises SMP specific | ||
329 | * information, and sets up the per-CPU stacks. | ||
330 | */ | ||
331 | void cpu_init(void) | ||
332 | { | ||
333 | unsigned int cpu = smp_processor_id(); | ||
334 | struct stack *stk = &stacks[cpu]; | ||
335 | |||
336 | if (cpu >= NR_CPUS) { | ||
337 | printk(KERN_CRIT "CPU%u: bad primary CPU number\n", cpu); | ||
338 | BUG(); | ||
339 | } | ||
340 | |||
341 | dump_cpu_info(cpu); | ||
342 | |||
343 | /* | ||
344 | * setup stacks for re-entrant exception handlers | ||
345 | */ | ||
346 | __asm__ ( | ||
347 | "msr cpsr_c, %1\n\t" | ||
348 | "add sp, %0, %2\n\t" | ||
349 | "msr cpsr_c, %3\n\t" | ||
350 | "add sp, %0, %4\n\t" | ||
351 | "msr cpsr_c, %5\n\t" | ||
352 | "add sp, %0, %6\n\t" | ||
353 | "msr cpsr_c, %7" | ||
354 | : | ||
355 | : "r" (stk), | ||
356 | "I" (PSR_F_BIT | PSR_I_BIT | IRQ_MODE), | ||
357 | "I" (offsetof(struct stack, irq[0])), | ||
358 | "I" (PSR_F_BIT | PSR_I_BIT | ABT_MODE), | ||
359 | "I" (offsetof(struct stack, abt[0])), | ||
360 | "I" (PSR_F_BIT | PSR_I_BIT | UND_MODE), | ||
361 | "I" (offsetof(struct stack, und[0])), | ||
362 | "I" (PSR_F_BIT | PSR_I_BIT | SVC_MODE)); | ||
363 | } | ||
364 | |||
319 | static struct machine_desc * __init setup_machine(unsigned int nr) | 365 | static struct machine_desc * __init setup_machine(unsigned int nr) |
320 | { | 366 | { |
321 | struct machine_desc *list; | 367 | struct machine_desc *list; |
@@ -715,6 +761,8 @@ void __init setup_arch(char **cmdline_p) | |||
715 | paging_init(&meminfo, mdesc); | 761 | paging_init(&meminfo, mdesc); |
716 | request_standard_resources(&meminfo, mdesc); | 762 | request_standard_resources(&meminfo, mdesc); |
717 | 763 | ||
764 | cpu_init(); | ||
765 | |||
718 | /* | 766 | /* |
719 | * Set up various architecture-specific pointers | 767 | * Set up various architecture-specific pointers |
720 | */ | 768 | */ |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index ecc8c3332408..45ed036336e0 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -24,6 +24,9 @@ | |||
24 | #include <asm/atomic.h> | 24 | #include <asm/atomic.h> |
25 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
26 | #include <asm/cpu.h> | 26 | #include <asm/cpu.h> |
27 | #include <asm/mmu_context.h> | ||
28 | #include <asm/pgtable.h> | ||
29 | #include <asm/pgalloc.h> | ||
27 | #include <asm/processor.h> | 30 | #include <asm/processor.h> |
28 | #include <asm/tlbflush.h> | 31 | #include <asm/tlbflush.h> |
29 | #include <asm/ptrace.h> | 32 | #include <asm/ptrace.h> |
@@ -37,6 +40,13 @@ cpumask_t cpu_present_mask; | |||
37 | cpumask_t cpu_online_map; | 40 | cpumask_t cpu_online_map; |
38 | 41 | ||
39 | /* | 42 | /* |
43 | * as from 2.5, kernels no longer have an init_tasks structure | ||
44 | * so we need some other way of telling a new secondary core | ||
45 | * where to place its SVC stack | ||
46 | */ | ||
47 | struct secondary_data secondary_data; | ||
48 | |||
49 | /* | ||
40 | * structures for inter-processor calls | 50 | * structures for inter-processor calls |
41 | * - A collection of single bit ipi messages. | 51 | * - A collection of single bit ipi messages. |
42 | */ | 52 | */ |
@@ -71,6 +81,8 @@ static DEFINE_SPINLOCK(smp_call_function_lock); | |||
71 | int __init __cpu_up(unsigned int cpu) | 81 | int __init __cpu_up(unsigned int cpu) |
72 | { | 82 | { |
73 | struct task_struct *idle; | 83 | struct task_struct *idle; |
84 | pgd_t *pgd; | ||
85 | pmd_t *pmd; | ||
74 | int ret; | 86 | int ret; |
75 | 87 | ||
76 | /* | 88 | /* |
@@ -84,9 +96,54 @@ int __init __cpu_up(unsigned int cpu) | |||
84 | } | 96 | } |
85 | 97 | ||
86 | /* | 98 | /* |
99 | * Allocate initial page tables to allow the new CPU to | ||
100 | * enable the MMU safely. This essentially means a set | ||
101 | * of our "standard" page tables, with the addition of | ||
102 | * a 1:1 mapping for the physical address of the kernel. | ||
103 | */ | ||
104 | pgd = pgd_alloc(&init_mm); | ||
105 | pmd = pmd_offset(pgd, PHYS_OFFSET); | ||
106 | *pmd = __pmd((PHYS_OFFSET & PGDIR_MASK) | | ||
107 | PMD_TYPE_SECT | PMD_SECT_AP_WRITE); | ||
108 | |||
109 | /* | ||
110 | * We need to tell the secondary core where to find | ||
111 | * its stack and the page tables. | ||
112 | */ | ||
113 | secondary_data.stack = (void *)idle->thread_info + THREAD_SIZE - 8; | ||
114 | secondary_data.pgdir = virt_to_phys(pgd); | ||
115 | wmb(); | ||
116 | |||
117 | /* | ||
87 | * Now bring the CPU into our world. | 118 | * Now bring the CPU into our world. |
88 | */ | 119 | */ |
89 | ret = boot_secondary(cpu, idle); | 120 | ret = boot_secondary(cpu, idle); |
121 | if (ret == 0) { | ||
122 | unsigned long timeout; | ||
123 | |||
124 | /* | ||
125 | * CPU was successfully started, wait for it | ||
126 | * to come online or time out. | ||
127 | */ | ||
128 | timeout = jiffies + HZ; | ||
129 | while (time_before(jiffies, timeout)) { | ||
130 | if (cpu_online(cpu)) | ||
131 | break; | ||
132 | |||
133 | udelay(10); | ||
134 | barrier(); | ||
135 | } | ||
136 | |||
137 | if (!cpu_online(cpu)) | ||
138 | ret = -EIO; | ||
139 | } | ||
140 | |||
141 | secondary_data.stack = 0; | ||
142 | secondary_data.pgdir = 0; | ||
143 | |||
144 | *pmd_offset(pgd, PHYS_OFFSET) = __pmd(0); | ||
145 | pgd_free(pgd); | ||
146 | |||
90 | if (ret) { | 147 | if (ret) { |
91 | printk(KERN_CRIT "cpu_up: processor %d failed to boot\n", cpu); | 148 | printk(KERN_CRIT "cpu_up: processor %d failed to boot\n", cpu); |
92 | /* | 149 | /* |
@@ -98,6 +155,56 @@ int __init __cpu_up(unsigned int cpu) | |||
98 | } | 155 | } |
99 | 156 | ||
100 | /* | 157 | /* |
158 | * This is the secondary CPU boot entry. We're using this CPUs | ||
159 | * idle thread stack, but a set of temporary page tables. | ||
160 | */ | ||
161 | asmlinkage void __init secondary_start_kernel(void) | ||
162 | { | ||
163 | struct mm_struct *mm = &init_mm; | ||
164 | unsigned int cpu = smp_processor_id(); | ||
165 | |||
166 | printk("CPU%u: Booted secondary processor\n", cpu); | ||
167 | |||
168 | /* | ||
169 | * All kernel threads share the same mm context; grab a | ||
170 | * reference and switch to it. | ||
171 | */ | ||
172 | atomic_inc(&mm->mm_users); | ||
173 | atomic_inc(&mm->mm_count); | ||
174 | current->active_mm = mm; | ||
175 | cpu_set(cpu, mm->cpu_vm_mask); | ||
176 | cpu_switch_mm(mm->pgd, mm); | ||
177 | enter_lazy_tlb(mm, current); | ||
178 | |||
179 | cpu_init(); | ||
180 | |||
181 | /* | ||
182 | * Give the platform a chance to do its own initialisation. | ||
183 | */ | ||
184 | platform_secondary_init(cpu); | ||
185 | |||
186 | /* | ||
187 | * Enable local interrupts. | ||
188 | */ | ||
189 | local_irq_enable(); | ||
190 | local_fiq_enable(); | ||
191 | |||
192 | calibrate_delay(); | ||
193 | |||
194 | smp_store_cpu_info(cpu); | ||
195 | |||
196 | /* | ||
197 | * OK, now it's safe to let the boot CPU continue | ||
198 | */ | ||
199 | cpu_set(cpu, cpu_online_map); | ||
200 | |||
201 | /* | ||
202 | * OK, it's off to the idle thread for us | ||
203 | */ | ||
204 | cpu_idle(); | ||
205 | } | ||
206 | |||
207 | /* | ||
101 | * Called by both boot and secondaries to move global data into | 208 | * Called by both boot and secondaries to move global data into |
102 | * per-processor storage. | 209 | * per-processor storage. |
103 | */ | 210 | */ |
diff --git a/arch/arm/mach-integrator/Makefile b/arch/arm/mach-integrator/Makefile index 158daaf9e3b0..ebb255bdce8a 100644 --- a/arch/arm/mach-integrator/Makefile +++ b/arch/arm/mach-integrator/Makefile | |||
@@ -12,3 +12,4 @@ obj-$(CONFIG_LEDS) += leds.o | |||
12 | obj-$(CONFIG_PCI) += pci_v3.o pci.o | 12 | obj-$(CONFIG_PCI) += pci_v3.o pci.o |
13 | obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o | 13 | obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o |
14 | obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o | 14 | obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o |
15 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | ||
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index bd17b5154311..d302f0405fd2 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/spinlock.h> | 14 | #include <linux/spinlock.h> |
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
17 | #include <linux/smp.h> | ||
17 | 18 | ||
18 | #include <asm/hardware.h> | 19 | #include <asm/hardware.h> |
19 | #include <asm/irq.h> | 20 | #include <asm/irq.h> |
@@ -221,7 +222,24 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
221 | */ | 222 | */ |
222 | timer1->TimerClear = 1; | 223 | timer1->TimerClear = 1; |
223 | 224 | ||
224 | timer_tick(regs); | 225 | /* |
226 | * the clock tick routines are only processed on the | ||
227 | * primary CPU | ||
228 | */ | ||
229 | if (hard_smp_processor_id() == 0) { | ||
230 | nmi_tick(); | ||
231 | timer_tick(regs); | ||
232 | #ifdef CONFIG_SMP | ||
233 | smp_send_timer(); | ||
234 | #endif | ||
235 | } | ||
236 | |||
237 | #ifdef CONFIG_SMP | ||
238 | /* | ||
239 | * this is the ARM equivalent of the APIC timer interrupt | ||
240 | */ | ||
241 | update_process_times(user_mode(regs)); | ||
242 | #endif /* CONFIG_SMP */ | ||
225 | 243 | ||
226 | write_sequnlock(&xtime_lock); | 244 | write_sequnlock(&xtime_lock); |
227 | 245 | ||
diff --git a/arch/arm/mach-integrator/headsmp.S b/arch/arm/mach-integrator/headsmp.S new file mode 100644 index 000000000000..ceaa88e30d70 --- /dev/null +++ b/arch/arm/mach-integrator/headsmp.S | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-integrator/headsmp.S | ||
3 | * | ||
4 | * Copyright (c) 2003 ARM Limited | ||
5 | * All Rights Reserved | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/linkage.h> | ||
12 | #include <linux/init.h> | ||
13 | |||
14 | __INIT | ||
15 | |||
16 | /* | ||
17 | * Integrator specific entry point for secondary CPUs. This provides | ||
18 | * a "holding pen" into which all secondary cores are held until we're | ||
19 | * ready for them to initialise. | ||
20 | */ | ||
21 | ENTRY(integrator_secondary_startup) | ||
22 | adr r4, 1f | ||
23 | ldmia r4, {r5, r6} | ||
24 | sub r4, r4, r5 | ||
25 | ldr r6, [r6, r4] | ||
26 | pen: ldr r7, [r6] | ||
27 | cmp r7, r0 | ||
28 | bne pen | ||
29 | |||
30 | /* | ||
31 | * we've been released from the holding pen: secondary_stack | ||
32 | * should now contain the SVC stack for this core | ||
33 | */ | ||
34 | b secondary_startup | ||
35 | |||
36 | 1: .long . | ||
37 | .long phys_pen_release | ||
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 3b948e8c2751..e0a01eef0993 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -83,7 +83,6 @@ static struct map_desc intcp_io_desc[] __initdata = { | |||
83 | { IO_ADDRESS(INTEGRATOR_UART1_BASE), INTEGRATOR_UART1_BASE, SZ_4K, MT_DEVICE }, | 83 | { IO_ADDRESS(INTEGRATOR_UART1_BASE), INTEGRATOR_UART1_BASE, SZ_4K, MT_DEVICE }, |
84 | { IO_ADDRESS(INTEGRATOR_DBG_BASE), INTEGRATOR_DBG_BASE, SZ_4K, MT_DEVICE }, | 84 | { IO_ADDRESS(INTEGRATOR_DBG_BASE), INTEGRATOR_DBG_BASE, SZ_4K, MT_DEVICE }, |
85 | { IO_ADDRESS(INTEGRATOR_GPIO_BASE), INTEGRATOR_GPIO_BASE, SZ_4K, MT_DEVICE }, | 85 | { IO_ADDRESS(INTEGRATOR_GPIO_BASE), INTEGRATOR_GPIO_BASE, SZ_4K, MT_DEVICE }, |
86 | { 0xfc900000, 0xc9000000, SZ_4K, MT_DEVICE }, | ||
87 | { 0xfca00000, 0xca000000, SZ_4K, MT_DEVICE }, | 86 | { 0xfca00000, 0xca000000, SZ_4K, MT_DEVICE }, |
88 | { 0xfcb00000, 0xcb000000, SZ_4K, MT_DEVICE }, | 87 | { 0xfcb00000, 0xcb000000, SZ_4K, MT_DEVICE }, |
89 | }; | 88 | }; |
diff --git a/arch/arm/mach-integrator/leds.c b/arch/arm/mach-integrator/leds.c index d2c0ab21150c..f1436e683b49 100644 --- a/arch/arm/mach-integrator/leds.c +++ b/arch/arm/mach-integrator/leds.c | |||
@@ -22,6 +22,8 @@ | |||
22 | */ | 22 | */ |
23 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/smp.h> | ||
26 | #include <linux/spinlock.h> | ||
25 | 27 | ||
26 | #include <asm/hardware.h> | 28 | #include <asm/hardware.h> |
27 | #include <asm/io.h> | 29 | #include <asm/io.h> |
@@ -85,4 +87,4 @@ static int __init leds_init(void) | |||
85 | return 0; | 87 | return 0; |
86 | } | 88 | } |
87 | 89 | ||
88 | __initcall(leds_init); | 90 | core_initcall(leds_init); |
diff --git a/arch/arm/mach-integrator/platsmp.c b/arch/arm/mach-integrator/platsmp.c new file mode 100644 index 000000000000..ead15dfcb53d --- /dev/null +++ b/arch/arm/mach-integrator/platsmp.c | |||
@@ -0,0 +1,192 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-cintegrator/platsmp.c | ||
3 | * | ||
4 | * Copyright (C) 2002 ARM Ltd. | ||
5 | * All Rights Reserved | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/mm.h> | ||
16 | |||
17 | #include <asm/atomic.h> | ||
18 | #include <asm/delay.h> | ||
19 | #include <asm/mmu_context.h> | ||
20 | #include <asm/procinfo.h> | ||
21 | #include <asm/ptrace.h> | ||
22 | #include <asm/smp.h> | ||
23 | |||
24 | extern void integrator_secondary_startup(void); | ||
25 | |||
26 | /* | ||
27 | * control for which core is the next to come out of the secondary | ||
28 | * boot "holding pen" | ||
29 | */ | ||
30 | volatile int __initdata pen_release = -1; | ||
31 | unsigned long __initdata phys_pen_release = 0; | ||
32 | |||
33 | static DEFINE_SPINLOCK(boot_lock); | ||
34 | |||
35 | void __init platform_secondary_init(unsigned int cpu) | ||
36 | { | ||
37 | /* | ||
38 | * the primary core may have used a "cross call" soft interrupt | ||
39 | * to get this processor out of WFI in the BootMonitor - make | ||
40 | * sure that we are no longer being sent this soft interrupt | ||
41 | */ | ||
42 | smp_cross_call_done(cpumask_of_cpu(cpu)); | ||
43 | |||
44 | /* | ||
45 | * if any interrupts are already enabled for the primary | ||
46 | * core (e.g. timer irq), then they will not have been enabled | ||
47 | * for us: do so | ||
48 | */ | ||
49 | secondary_scan_irqs(); | ||
50 | |||
51 | /* | ||
52 | * let the primary processor know we're out of the | ||
53 | * pen, then head off into the C entry point | ||
54 | */ | ||
55 | pen_release = -1; | ||
56 | |||
57 | /* | ||
58 | * Synchronise with the boot thread. | ||
59 | */ | ||
60 | spin_lock(&boot_lock); | ||
61 | spin_unlock(&boot_lock); | ||
62 | } | ||
63 | |||
64 | int __init boot_secondary(unsigned int cpu, struct task_struct *idle) | ||
65 | { | ||
66 | unsigned long timeout; | ||
67 | |||
68 | /* | ||
69 | * set synchronisation state between this boot processor | ||
70 | * and the secondary one | ||
71 | */ | ||
72 | spin_lock(&boot_lock); | ||
73 | |||
74 | /* | ||
75 | * The secondary processor is waiting to be released from | ||
76 | * the holding pen - release it, then wait for it to flag | ||
77 | * that it has been released by resetting pen_release. | ||
78 | * | ||
79 | * Note that "pen_release" is the hardware CPU ID, whereas | ||
80 | * "cpu" is Linux's internal ID. | ||
81 | */ | ||
82 | pen_release = cpu; | ||
83 | |||
84 | /* | ||
85 | * XXX | ||
86 | * | ||
87 | * This is a later addition to the booting protocol: the | ||
88 | * bootMonitor now puts secondary cores into WFI, so | ||
89 | * poke_milo() no longer gets the cores moving; we need | ||
90 | * to send a soft interrupt to wake the secondary core. | ||
91 | * Use smp_cross_call() for this, since there's little | ||
92 | * point duplicating the code here | ||
93 | */ | ||
94 | smp_cross_call(cpumask_of_cpu(cpu)); | ||
95 | |||
96 | timeout = jiffies + (1 * HZ); | ||
97 | while (time_before(jiffies, timeout)) { | ||
98 | if (pen_release == -1) | ||
99 | break; | ||
100 | |||
101 | udelay(10); | ||
102 | } | ||
103 | |||
104 | /* | ||
105 | * now the secondary core is starting up let it run its | ||
106 | * calibrations, then wait for it to finish | ||
107 | */ | ||
108 | spin_unlock(&boot_lock); | ||
109 | |||
110 | return pen_release != -1 ? -ENOSYS : 0; | ||
111 | } | ||
112 | |||
113 | static void __init poke_milo(void) | ||
114 | { | ||
115 | extern void secondary_startup(void); | ||
116 | |||
117 | /* nobody is to be released from the pen yet */ | ||
118 | pen_release = -1; | ||
119 | |||
120 | phys_pen_release = virt_to_phys(&pen_release); | ||
121 | |||
122 | /* | ||
123 | * write the address of secondary startup into the system-wide | ||
124 | * flags register, then clear the bottom two bits, which is what | ||
125 | * BootMonitor is waiting for | ||
126 | */ | ||
127 | #if 1 | ||
128 | #define CINTEGRATOR_HDR_FLAGSS_OFFSET 0x30 | ||
129 | __raw_writel(virt_to_phys(integrator_secondary_startup), | ||
130 | (IO_ADDRESS(INTEGRATOR_HDR_BASE) + | ||
131 | CINTEGRATOR_HDR_FLAGSS_OFFSET)); | ||
132 | #define CINTEGRATOR_HDR_FLAGSC_OFFSET 0x34 | ||
133 | __raw_writel(3, | ||
134 | (IO_ADDRESS(INTEGRATOR_HDR_BASE) + | ||
135 | CINTEGRATOR_HDR_FLAGSC_OFFSET)); | ||
136 | #endif | ||
137 | |||
138 | mb(); | ||
139 | } | ||
140 | |||
141 | void __init smp_prepare_cpus(unsigned int max_cpus) | ||
142 | { | ||
143 | unsigned int ncores = get_core_count(); | ||
144 | unsigned int cpu = smp_processor_id(); | ||
145 | int i; | ||
146 | |||
147 | /* sanity check */ | ||
148 | if (ncores == 0) { | ||
149 | printk(KERN_ERR | ||
150 | "Integrator/CP: strange CM count of 0? Default to 1\n"); | ||
151 | |||
152 | ncores = 1; | ||
153 | } | ||
154 | |||
155 | if (ncores > NR_CPUS) { | ||
156 | printk(KERN_WARNING | ||
157 | "Integrator/CP: no. of cores (%d) greater than configured " | ||
158 | "maximum of %d - clipping\n", | ||
159 | ncores, NR_CPUS); | ||
160 | ncores = NR_CPUS; | ||
161 | } | ||
162 | |||
163 | /* | ||
164 | * start with some more config for the Boot CPU, now that | ||
165 | * the world is a bit more alive (which was not the case | ||
166 | * when smp_prepare_boot_cpu() was called) | ||
167 | */ | ||
168 | smp_store_cpu_info(cpu); | ||
169 | |||
170 | /* | ||
171 | * are we trying to boot more cores than exist? | ||
172 | */ | ||
173 | if (max_cpus > ncores) | ||
174 | max_cpus = ncores; | ||
175 | |||
176 | /* | ||
177 | * Initialise the present mask - this tells us which CPUs should | ||
178 | * be present. | ||
179 | */ | ||
180 | for (i = 0; i < max_cpus; i++) { | ||
181 | cpu_set(i, cpu_present_mask); | ||
182 | } | ||
183 | |||
184 | /* | ||
185 | * Do we need any more CPUs? If so, then let them know where | ||
186 | * to start. Note that, on modern versions of MILO, the "poke" | ||
187 | * doesn't actually do anything until each individual core is | ||
188 | * sent a soft interrupt to get it out of WFI | ||
189 | */ | ||
190 | if (max_cpus > 1) | ||
191 | poke_milo(); | ||
192 | } | ||
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index dd012d6e2f5c..f2c9e0d2b24b 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/device.h> | 17 | #include <linux/device.h> |
18 | #include <linux/sysdev.h> | ||
18 | #include <linux/major.h> | 19 | #include <linux/major.h> |
19 | #include <linux/fb.h> | 20 | #include <linux/fb.h> |
20 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
@@ -106,6 +107,35 @@ static void __init lubbock_init_irq(void) | |||
106 | set_irq_type(IRQ_GPIO(0), IRQT_FALLING); | 107 | set_irq_type(IRQ_GPIO(0), IRQT_FALLING); |
107 | } | 108 | } |
108 | 109 | ||
110 | #ifdef CONFIG_PM | ||
111 | |||
112 | static int lubbock_irq_resume(struct sys_device *dev) | ||
113 | { | ||
114 | LUB_IRQ_MASK_EN = lubbock_irq_enabled; | ||
115 | return 0; | ||
116 | } | ||
117 | |||
118 | static struct sysdev_class lubbock_irq_sysclass = { | ||
119 | set_kset_name("cpld_irq"), | ||
120 | .resume = lubbock_irq_resume, | ||
121 | }; | ||
122 | |||
123 | static struct sys_device lubbock_irq_device = { | ||
124 | .cls = &lubbock_irq_sysclass, | ||
125 | }; | ||
126 | |||
127 | static int __init lubbock_irq_device_init(void) | ||
128 | { | ||
129 | int ret = sysdev_class_register(&lubbock_irq_sysclass); | ||
130 | if (ret == 0) | ||
131 | ret = sysdev_register(&lubbock_irq_device); | ||
132 | return ret; | ||
133 | } | ||
134 | |||
135 | device_initcall(lubbock_irq_device_init); | ||
136 | |||
137 | #endif | ||
138 | |||
109 | static int lubbock_udc_is_connected(void) | 139 | static int lubbock_udc_is_connected(void) |
110 | { | 140 | { |
111 | return (LUB_MISC_RD & (1 << 9)) == 0; | 141 | return (LUB_MISC_RD & (1 << 9)) == 0; |
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 6823ae28ae6a..9896afca751f 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/device.h> | 17 | #include <linux/device.h> |
18 | #include <linux/sysdev.h> | ||
18 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
19 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
20 | #include <linux/bitops.h> | 21 | #include <linux/bitops.h> |
@@ -62,7 +63,6 @@ static struct irqchip mainstone_irq_chip = { | |||
62 | .unmask = mainstone_unmask_irq, | 63 | .unmask = mainstone_unmask_irq, |
63 | }; | 64 | }; |
64 | 65 | ||
65 | |||
66 | static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc, | 66 | static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc, |
67 | struct pt_regs *regs) | 67 | struct pt_regs *regs) |
68 | { | 68 | { |
@@ -100,6 +100,35 @@ static void __init mainstone_init_irq(void) | |||
100 | set_irq_type(IRQ_GPIO(0), IRQT_FALLING); | 100 | set_irq_type(IRQ_GPIO(0), IRQT_FALLING); |
101 | } | 101 | } |
102 | 102 | ||
103 | #ifdef CONFIG_PM | ||
104 | |||
105 | static int mainstone_irq_resume(struct sys_device *dev) | ||
106 | { | ||
107 | MST_INTMSKENA = mainstone_irq_enabled; | ||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | static struct sysdev_class mainstone_irq_sysclass = { | ||
112 | set_kset_name("cpld_irq"), | ||
113 | .resume = mainstone_irq_resume, | ||
114 | }; | ||
115 | |||
116 | static struct sys_device mainstone_irq_device = { | ||
117 | .cls = &mainstone_irq_sysclass, | ||
118 | }; | ||
119 | |||
120 | static int __init mainstone_irq_device_init(void) | ||
121 | { | ||
122 | int ret = sysdev_class_register(&mainstone_irq_sysclass); | ||
123 | if (ret == 0) | ||
124 | ret = sysdev_register(&mainstone_irq_device); | ||
125 | return ret; | ||
126 | } | ||
127 | |||
128 | device_initcall(mainstone_irq_device_init); | ||
129 | |||
130 | #endif | ||
131 | |||
103 | 132 | ||
104 | static struct resource smc91x_resources[] = { | 133 | static struct resource smc91x_resources[] = { |
105 | [0] = { | 134 | [0] = { |
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c index 9799fe80df23..ac4dd4336160 100644 --- a/arch/arm/mach-pxa/pm.c +++ b/arch/arm/mach-pxa/pm.c | |||
@@ -133,6 +133,8 @@ static int pxa_pm_enter(suspend_state_t state) | |||
133 | /* *** go zzz *** */ | 133 | /* *** go zzz *** */ |
134 | pxa_cpu_pm_enter(state); | 134 | pxa_cpu_pm_enter(state); |
135 | 135 | ||
136 | cpu_init(); | ||
137 | |||
136 | /* after sleeping, validate the checksum */ | 138 | /* after sleeping, validate the checksum */ |
137 | checksum = 0; | 139 | checksum = 0; |
138 | for (i = 0; i < SLEEP_SAVE_SIZE - 1; i++) | 140 | for (i = 0; i < SLEEP_SAVE_SIZE - 1; i++) |
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index b6d945a6e774..7869c3b4e62f 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -16,6 +16,7 @@ | |||
16 | * initialization stuff for PXA machines which can be overridden later if | 16 | * initialization stuff for PXA machines which can be overridden later if |
17 | * need be. | 17 | * need be. |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
19 | #include <linux/module.h> | 20 | #include <linux/module.h> |
20 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
21 | #include <linux/init.h> | 22 | #include <linux/init.h> |
@@ -103,6 +104,7 @@ unsigned int get_lcdclk_frequency_10khz(void) | |||
103 | 104 | ||
104 | EXPORT_SYMBOL(get_lcdclk_frequency_10khz); | 105 | EXPORT_SYMBOL(get_lcdclk_frequency_10khz); |
105 | 106 | ||
107 | #ifdef CONFIG_PM | ||
106 | 108 | ||
107 | int pxa_cpu_pm_prepare(suspend_state_t state) | 109 | int pxa_cpu_pm_prepare(suspend_state_t state) |
108 | { | 110 | { |
@@ -131,3 +133,5 @@ void pxa_cpu_pm_enter(suspend_state_t state) | |||
131 | break; | 133 | break; |
132 | } | 134 | } |
133 | } | 135 | } |
136 | |||
137 | #endif | ||
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index aa3c3b2ab75e..893964fb9659 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -120,6 +120,8 @@ EXPORT_SYMBOL(get_clk_frequency_khz); | |||
120 | EXPORT_SYMBOL(get_memclk_frequency_10khz); | 120 | EXPORT_SYMBOL(get_memclk_frequency_10khz); |
121 | EXPORT_SYMBOL(get_lcdclk_frequency_10khz); | 121 | EXPORT_SYMBOL(get_lcdclk_frequency_10khz); |
122 | 122 | ||
123 | #ifdef CONFIG_PM | ||
124 | |||
123 | int pxa_cpu_pm_prepare(suspend_state_t state) | 125 | int pxa_cpu_pm_prepare(suspend_state_t state) |
124 | { | 126 | { |
125 | switch (state) { | 127 | switch (state) { |
@@ -153,6 +155,8 @@ void pxa_cpu_pm_enter(suspend_state_t state) | |||
153 | } | 155 | } |
154 | } | 156 | } |
155 | 157 | ||
158 | #endif | ||
159 | |||
156 | /* | 160 | /* |
157 | * device registration specific to PXA27x. | 161 | * device registration specific to PXA27x. |
158 | */ | 162 | */ |
diff --git a/arch/arm/mach-sa1100/pm.c b/arch/arm/mach-sa1100/pm.c index 379ea5e3950f..59c7964cfe11 100644 --- a/arch/arm/mach-sa1100/pm.c +++ b/arch/arm/mach-sa1100/pm.c | |||
@@ -88,6 +88,8 @@ static int sa11x0_pm_enter(suspend_state_t state) | |||
88 | /* go zzz */ | 88 | /* go zzz */ |
89 | sa1100_cpu_suspend(); | 89 | sa1100_cpu_suspend(); |
90 | 90 | ||
91 | cpu_init(); | ||
92 | |||
91 | /* | 93 | /* |
92 | * Ensure not to come back here if it wasn't intended | 94 | * Ensure not to come back here if it wasn't intended |
93 | */ | 95 | */ |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 554e1bd30d6e..302c2a7b9b63 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -543,7 +543,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb) | |||
543 | val |= SYS_CLCD_MODE_5551; | 543 | val |= SYS_CLCD_MODE_5551; |
544 | break; | 544 | break; |
545 | case 6: | 545 | case 6: |
546 | val |= SYS_CLCD_MODE_565_BLSB; | 546 | val |= SYS_CLCD_MODE_565_RLSB; |
547 | break; | 547 | break; |
548 | case 8: | 548 | case 8: |
549 | val |= SYS_CLCD_MODE_888; | 549 | val |= SYS_CLCD_MODE_888; |
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c index 45641a872550..0ff65abcd56c 100644 --- a/arch/i386/kernel/apm.c +++ b/arch/i386/kernel/apm.c | |||
@@ -1222,6 +1222,7 @@ static int suspend(int vetoable) | |||
1222 | 1222 | ||
1223 | save_processor_state(); | 1223 | save_processor_state(); |
1224 | err = set_system_power_state(APM_STATE_SUSPEND); | 1224 | err = set_system_power_state(APM_STATE_SUSPEND); |
1225 | ignore_normal_resume = 1; | ||
1225 | restore_processor_state(); | 1226 | restore_processor_state(); |
1226 | 1227 | ||
1227 | local_irq_disable(); | 1228 | local_irq_disable(); |
@@ -1229,7 +1230,6 @@ static int suspend(int vetoable) | |||
1229 | spin_lock(&i8253_lock); | 1230 | spin_lock(&i8253_lock); |
1230 | reinit_timer(); | 1231 | reinit_timer(); |
1231 | set_time(); | 1232 | set_time(); |
1232 | ignore_normal_resume = 1; | ||
1233 | 1233 | ||
1234 | spin_unlock(&i8253_lock); | 1234 | spin_unlock(&i8253_lock); |
1235 | write_sequnlock(&xtime_lock); | 1235 | write_sequnlock(&xtime_lock); |
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index 6e6377a69d5b..54ce6da22644 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig | |||
@@ -1083,6 +1083,23 @@ source "drivers/zorro/Kconfig" | |||
1083 | 1083 | ||
1084 | source kernel/power/Kconfig | 1084 | source kernel/power/Kconfig |
1085 | 1085 | ||
1086 | config SECCOMP | ||
1087 | bool "Enable seccomp to safely compute untrusted bytecode" | ||
1088 | depends on PROC_FS | ||
1089 | default y | ||
1090 | help | ||
1091 | This kernel feature is useful for number crunching applications | ||
1092 | that may need to compute untrusted bytecode during their | ||
1093 | execution. By using pipes or other transports made available to | ||
1094 | the process as file descriptors supporting the read/write | ||
1095 | syscalls, it's possible to isolate those applications in | ||
1096 | their own address space using seccomp. Once seccomp is | ||
1097 | enabled via /proc/<pid>/seccomp, it cannot be disabled | ||
1098 | and the task is only allowed to execute a few safe syscalls | ||
1099 | defined by each seccomp mode. | ||
1100 | |||
1101 | If unsure, say Y. Only embedded should say N here. | ||
1102 | |||
1086 | endmenu | 1103 | endmenu |
1087 | 1104 | ||
1088 | config ISA_DMA_API | 1105 | config ISA_DMA_API |
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S index 5f075dbc4ee7..661523707e8c 100644 --- a/arch/ppc/kernel/entry.S +++ b/arch/ppc/kernel/entry.S | |||
@@ -202,7 +202,7 @@ _GLOBAL(DoSyscall) | |||
202 | rlwinm r11,r11,0,~_TIFL_FORCE_NOERROR | 202 | rlwinm r11,r11,0,~_TIFL_FORCE_NOERROR |
203 | stw r11,TI_LOCAL_FLAGS(r10) | 203 | stw r11,TI_LOCAL_FLAGS(r10) |
204 | lwz r11,TI_FLAGS(r10) | 204 | lwz r11,TI_FLAGS(r10) |
205 | andi. r11,r11,_TIF_SYSCALL_TRACE | 205 | andi. r11,r11,_TIF_SYSCALL_T_OR_A |
206 | bne- syscall_dotrace | 206 | bne- syscall_dotrace |
207 | syscall_dotrace_cont: | 207 | syscall_dotrace_cont: |
208 | cmplwi 0,r0,NR_syscalls | 208 | cmplwi 0,r0,NR_syscalls |
@@ -237,7 +237,7 @@ ret_from_syscall: | |||
237 | SYNC | 237 | SYNC |
238 | MTMSRD(r10) | 238 | MTMSRD(r10) |
239 | lwz r9,TI_FLAGS(r12) | 239 | lwz r9,TI_FLAGS(r12) |
240 | andi. r0,r9,(_TIF_SYSCALL_TRACE|_TIF_SIGPENDING|_TIF_NEED_RESCHED) | 240 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SIGPENDING|_TIF_NEED_RESCHED) |
241 | bne- syscall_exit_work | 241 | bne- syscall_exit_work |
242 | syscall_exit_cont: | 242 | syscall_exit_cont: |
243 | #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) | 243 | #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) |
@@ -277,7 +277,8 @@ syscall_dotrace: | |||
277 | SAVE_NVGPRS(r1) | 277 | SAVE_NVGPRS(r1) |
278 | li r0,0xc00 | 278 | li r0,0xc00 |
279 | stw r0,TRAP(r1) | 279 | stw r0,TRAP(r1) |
280 | bl do_syscall_trace | 280 | addi r3,r1,STACK_FRAME_OVERHEAD |
281 | bl do_syscall_trace_enter | ||
281 | lwz r0,GPR0(r1) /* Restore original registers */ | 282 | lwz r0,GPR0(r1) /* Restore original registers */ |
282 | lwz r3,GPR3(r1) | 283 | lwz r3,GPR3(r1) |
283 | lwz r4,GPR4(r1) | 284 | lwz r4,GPR4(r1) |
@@ -291,7 +292,7 @@ syscall_dotrace: | |||
291 | syscall_exit_work: | 292 | syscall_exit_work: |
292 | stw r6,RESULT(r1) /* Save result */ | 293 | stw r6,RESULT(r1) /* Save result */ |
293 | stw r3,GPR3(r1) /* Update return value */ | 294 | stw r3,GPR3(r1) /* Update return value */ |
294 | andi. r0,r9,_TIF_SYSCALL_TRACE | 295 | andi. r0,r9,_TIF_SYSCALL_T_OR_A |
295 | beq 5f | 296 | beq 5f |
296 | ori r10,r10,MSR_EE | 297 | ori r10,r10,MSR_EE |
297 | SYNC | 298 | SYNC |
@@ -303,7 +304,8 @@ syscall_exit_work: | |||
303 | li r4,0xc00 | 304 | li r4,0xc00 |
304 | stw r4,TRAP(r1) | 305 | stw r4,TRAP(r1) |
305 | 4: | 306 | 4: |
306 | bl do_syscall_trace | 307 | addi r3,r1,STACK_FRAME_OVERHEAD |
308 | bl do_syscall_trace_leave | ||
307 | REST_NVGPRS(r1) | 309 | REST_NVGPRS(r1) |
308 | 2: | 310 | 2: |
309 | lwz r3,GPR3(r1) | 311 | lwz r3,GPR3(r1) |
@@ -627,8 +629,8 @@ sigreturn_exit: | |||
627 | subi r1,r3,STACK_FRAME_OVERHEAD | 629 | subi r1,r3,STACK_FRAME_OVERHEAD |
628 | rlwinm r12,r1,0,0,18 /* current_thread_info() */ | 630 | rlwinm r12,r1,0,0,18 /* current_thread_info() */ |
629 | lwz r9,TI_FLAGS(r12) | 631 | lwz r9,TI_FLAGS(r12) |
630 | andi. r0,r9,_TIF_SYSCALL_TRACE | 632 | andi. r0,r9,_TIF_SYSCALL_T_OR_A |
631 | bnel- do_syscall_trace | 633 | bnel- do_syscall_trace_leave |
632 | /* fall through */ | 634 | /* fall through */ |
633 | 635 | ||
634 | .globl ret_from_except_full | 636 | .globl ret_from_except_full |
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c index 2ccb58fe4fc3..d59ad07de8e7 100644 --- a/arch/ppc/kernel/ppc_ksyms.c +++ b/arch/ppc/kernel/ppc_ksyms.c | |||
@@ -55,7 +55,6 @@ | |||
55 | #define EXPORT_SYMTAB_STROPS | 55 | #define EXPORT_SYMTAB_STROPS |
56 | 56 | ||
57 | extern void transfer_to_handler(void); | 57 | extern void transfer_to_handler(void); |
58 | extern void do_syscall_trace(void); | ||
59 | extern void do_IRQ(struct pt_regs *regs); | 58 | extern void do_IRQ(struct pt_regs *regs); |
60 | extern void MachineCheckException(struct pt_regs *regs); | 59 | extern void MachineCheckException(struct pt_regs *regs); |
61 | extern void AlignmentException(struct pt_regs *regs); | 60 | extern void AlignmentException(struct pt_regs *regs); |
@@ -74,7 +73,6 @@ extern unsigned long mm_ptov (unsigned long paddr); | |||
74 | EXPORT_SYMBOL(clear_pages); | 73 | EXPORT_SYMBOL(clear_pages); |
75 | EXPORT_SYMBOL(clear_user_page); | 74 | EXPORT_SYMBOL(clear_user_page); |
76 | EXPORT_SYMBOL(do_signal); | 75 | EXPORT_SYMBOL(do_signal); |
77 | EXPORT_SYMBOL(do_syscall_trace); | ||
78 | EXPORT_SYMBOL(transfer_to_handler); | 76 | EXPORT_SYMBOL(transfer_to_handler); |
79 | EXPORT_SYMBOL(do_IRQ); | 77 | EXPORT_SYMBOL(do_IRQ); |
80 | EXPORT_SYMBOL(MachineCheckException); | 78 | EXPORT_SYMBOL(MachineCheckException); |
diff --git a/arch/ppc/kernel/ptrace.c b/arch/ppc/kernel/ptrace.c index 59d59a8dc249..e7aee4108dea 100644 --- a/arch/ppc/kernel/ptrace.c +++ b/arch/ppc/kernel/ptrace.c | |||
@@ -27,6 +27,9 @@ | |||
27 | #include <linux/user.h> | 27 | #include <linux/user.h> |
28 | #include <linux/security.h> | 28 | #include <linux/security.h> |
29 | #include <linux/signal.h> | 29 | #include <linux/signal.h> |
30 | #include <linux/seccomp.h> | ||
31 | #include <linux/audit.h> | ||
32 | #include <linux/module.h> | ||
30 | 33 | ||
31 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
32 | #include <asm/page.h> | 35 | #include <asm/page.h> |
@@ -455,11 +458,10 @@ out: | |||
455 | return ret; | 458 | return ret; |
456 | } | 459 | } |
457 | 460 | ||
458 | void do_syscall_trace(void) | 461 | static void do_syscall_trace(void) |
459 | { | 462 | { |
460 | if (!test_thread_flag(TIF_SYSCALL_TRACE) | 463 | /* the 0x80 provides a way for the tracing parent to distinguish |
461 | || !(current->ptrace & PT_PTRACED)) | 464 | between a syscall stop and SIGTRAP delivery */ |
462 | return; | ||
463 | ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) | 465 | ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) |
464 | ? 0x80 : 0)); | 466 | ? 0x80 : 0)); |
465 | 467 | ||
@@ -473,3 +475,33 @@ void do_syscall_trace(void) | |||
473 | current->exit_code = 0; | 475 | current->exit_code = 0; |
474 | } | 476 | } |
475 | } | 477 | } |
478 | |||
479 | void do_syscall_trace_enter(struct pt_regs *regs) | ||
480 | { | ||
481 | if (test_thread_flag(TIF_SYSCALL_TRACE) | ||
482 | && (current->ptrace & PT_PTRACED)) | ||
483 | do_syscall_trace(); | ||
484 | |||
485 | if (unlikely(current->audit_context)) | ||
486 | audit_syscall_entry(current, AUDIT_ARCH_PPC, | ||
487 | regs->gpr[0], | ||
488 | regs->gpr[3], regs->gpr[4], | ||
489 | regs->gpr[5], regs->gpr[6]); | ||
490 | } | ||
491 | |||
492 | void do_syscall_trace_leave(struct pt_regs *regs) | ||
493 | { | ||
494 | secure_computing(regs->gpr[0]); | ||
495 | |||
496 | if (unlikely(current->audit_context)) | ||
497 | audit_syscall_exit(current, | ||
498 | (regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS, | ||
499 | regs->result); | ||
500 | |||
501 | if ((test_thread_flag(TIF_SYSCALL_TRACE)) | ||
502 | && (current->ptrace & PT_PTRACED)) | ||
503 | do_syscall_trace(); | ||
504 | } | ||
505 | |||
506 | EXPORT_SYMBOL(do_syscall_trace_enter); | ||
507 | EXPORT_SYMBOL(do_syscall_trace_leave); | ||
diff --git a/arch/ppc64/configs/g5_defconfig b/arch/ppc64/configs/g5_defconfig index 0f90df0b3f9c..1eb33398648e 100644 --- a/arch/ppc64/configs/g5_defconfig +++ b/arch/ppc64/configs/g5_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11 | 3 | # Linux kernel version: 2.6.12-rc6 |
4 | # Thu Mar 10 16:47:04 2005 | 4 | # Tue Jun 14 16:59:20 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -11,7 +11,7 @@ CONFIG_GENERIC_ISA_DMA=y | |||
11 | CONFIG_HAVE_DEC_LOCK=y | 11 | CONFIG_HAVE_DEC_LOCK=y |
12 | CONFIG_EARLY_PRINTK=y | 12 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 13 | CONFIG_COMPAT=y |
14 | CONFIG_FRAME_POINTER=y | 14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -20,6 +20,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
20 | CONFIG_EXPERIMENTAL=y | 20 | CONFIG_EXPERIMENTAL=y |
21 | CONFIG_CLEAN_COMPILE=y | 21 | CONFIG_CLEAN_COMPILE=y |
22 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
23 | 24 | ||
24 | # | 25 | # |
25 | # General setup | 26 | # General setup |
@@ -31,19 +32,20 @@ CONFIG_POSIX_MQUEUE=y | |||
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
33 | # CONFIG_AUDIT is not set | 34 | # CONFIG_AUDIT is not set |
34 | CONFIG_LOG_BUF_SHIFT=17 | ||
35 | CONFIG_HOTPLUG=y | 35 | CONFIG_HOTPLUG=y |
36 | CONFIG_KOBJECT_UEVENT=y | 36 | CONFIG_KOBJECT_UEVENT=y |
37 | CONFIG_IKCONFIG=y | 37 | CONFIG_IKCONFIG=y |
38 | CONFIG_IKCONFIG_PROC=y | 38 | CONFIG_IKCONFIG_PROC=y |
39 | # CONFIG_CPUSETS is not set | ||
39 | # CONFIG_EMBEDDED is not set | 40 | # CONFIG_EMBEDDED is not set |
40 | CONFIG_KALLSYMS=y | 41 | CONFIG_KALLSYMS=y |
41 | # CONFIG_KALLSYMS_ALL is not set | 42 | # CONFIG_KALLSYMS_ALL is not set |
42 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 43 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
44 | CONFIG_PRINTK=y | ||
45 | CONFIG_BUG=y | ||
43 | CONFIG_BASE_FULL=y | 46 | CONFIG_BASE_FULL=y |
44 | CONFIG_FUTEX=y | 47 | CONFIG_FUTEX=y |
45 | CONFIG_EPOLL=y | 48 | CONFIG_EPOLL=y |
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
47 | CONFIG_SHMEM=y | 49 | CONFIG_SHMEM=y |
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 50 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
49 | CONFIG_CC_ALIGN_LABELS=0 | 51 | CONFIG_CC_ALIGN_LABELS=0 |
@@ -87,6 +89,8 @@ CONFIG_NR_CPUS=2 | |||
87 | # CONFIG_SCHED_SMT is not set | 89 | # CONFIG_SCHED_SMT is not set |
88 | # CONFIG_PREEMPT is not set | 90 | # CONFIG_PREEMPT is not set |
89 | CONFIG_GENERIC_HARDIRQS=y | 91 | CONFIG_GENERIC_HARDIRQS=y |
92 | CONFIG_SECCOMP=y | ||
93 | CONFIG_ISA_DMA_API=y | ||
90 | 94 | ||
91 | # | 95 | # |
92 | # General setup | 96 | # General setup |
@@ -97,6 +101,7 @@ CONFIG_BINFMT_ELF=y | |||
97 | # CONFIG_BINFMT_MISC is not set | 101 | # CONFIG_BINFMT_MISC is not set |
98 | CONFIG_PCI_LEGACY_PROC=y | 102 | CONFIG_PCI_LEGACY_PROC=y |
99 | CONFIG_PCI_NAMES=y | 103 | CONFIG_PCI_NAMES=y |
104 | # CONFIG_PCI_DEBUG is not set | ||
100 | # CONFIG_HOTPLUG_CPU is not set | 105 | # CONFIG_HOTPLUG_CPU is not set |
101 | 106 | ||
102 | # | 107 | # |
@@ -105,10 +110,6 @@ CONFIG_PCI_NAMES=y | |||
105 | # CONFIG_PCCARD is not set | 110 | # CONFIG_PCCARD is not set |
106 | 111 | ||
107 | # | 112 | # |
108 | # PC-card bridges | ||
109 | # | ||
110 | |||
111 | # | ||
112 | # PCI Hotplug Support | 113 | # PCI Hotplug Support |
113 | # | 114 | # |
114 | # CONFIG_HOTPLUG_PCI is not set | 115 | # CONFIG_HOTPLUG_PCI is not set |
@@ -293,7 +294,6 @@ CONFIG_SCSI_SATA_SVW=y | |||
293 | # CONFIG_SCSI_BUSLOGIC is not set | 294 | # CONFIG_SCSI_BUSLOGIC is not set |
294 | # CONFIG_SCSI_DMX3191D is not set | 295 | # CONFIG_SCSI_DMX3191D is not set |
295 | # CONFIG_SCSI_EATA is not set | 296 | # CONFIG_SCSI_EATA is not set |
296 | # CONFIG_SCSI_EATA_PIO is not set | ||
297 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 297 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
298 | # CONFIG_SCSI_GDTH is not set | 298 | # CONFIG_SCSI_GDTH is not set |
299 | # CONFIG_SCSI_IPS is not set | 299 | # CONFIG_SCSI_IPS is not set |
@@ -301,7 +301,6 @@ CONFIG_SCSI_SATA_SVW=y | |||
301 | # CONFIG_SCSI_INIA100 is not set | 301 | # CONFIG_SCSI_INIA100 is not set |
302 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 302 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
303 | # CONFIG_SCSI_IPR is not set | 303 | # CONFIG_SCSI_IPR is not set |
304 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
305 | # CONFIG_SCSI_QLOGIC_FC is not set | 304 | # CONFIG_SCSI_QLOGIC_FC is not set |
306 | # CONFIG_SCSI_QLOGIC_1280 is not set | 305 | # CONFIG_SCSI_QLOGIC_1280 is not set |
307 | CONFIG_SCSI_QLA2XXX=y | 306 | CONFIG_SCSI_QLA2XXX=y |
@@ -310,6 +309,7 @@ CONFIG_SCSI_QLA2XXX=y | |||
310 | # CONFIG_SCSI_QLA2300 is not set | 309 | # CONFIG_SCSI_QLA2300 is not set |
311 | # CONFIG_SCSI_QLA2322 is not set | 310 | # CONFIG_SCSI_QLA2322 is not set |
312 | # CONFIG_SCSI_QLA6312 is not set | 311 | # CONFIG_SCSI_QLA6312 is not set |
312 | # CONFIG_SCSI_LPFC is not set | ||
313 | # CONFIG_SCSI_DC395x is not set | 313 | # CONFIG_SCSI_DC395x is not set |
314 | # CONFIG_SCSI_DC390T is not set | 314 | # CONFIG_SCSI_DC390T is not set |
315 | # CONFIG_SCSI_DEBUG is not set | 315 | # CONFIG_SCSI_DEBUG is not set |
@@ -332,6 +332,7 @@ CONFIG_DM_CRYPT=m | |||
332 | CONFIG_DM_SNAPSHOT=m | 332 | CONFIG_DM_SNAPSHOT=m |
333 | CONFIG_DM_MIRROR=m | 333 | CONFIG_DM_MIRROR=m |
334 | CONFIG_DM_ZERO=m | 334 | CONFIG_DM_ZERO=m |
335 | # CONFIG_DM_MULTIPATH is not set | ||
335 | 336 | ||
336 | # | 337 | # |
337 | # Fusion MPT device support | 338 | # Fusion MPT device support |
@@ -394,7 +395,6 @@ CONFIG_NET=y | |||
394 | # | 395 | # |
395 | CONFIG_PACKET=y | 396 | CONFIG_PACKET=y |
396 | # CONFIG_PACKET_MMAP is not set | 397 | # CONFIG_PACKET_MMAP is not set |
397 | # CONFIG_NETLINK_DEV is not set | ||
398 | CONFIG_UNIX=y | 398 | CONFIG_UNIX=y |
399 | CONFIG_NET_KEY=m | 399 | CONFIG_NET_KEY=m |
400 | CONFIG_INET=y | 400 | CONFIG_INET=y |
@@ -564,6 +564,8 @@ CONFIG_E1000=y | |||
564 | # CONFIG_R8169 is not set | 564 | # CONFIG_R8169 is not set |
565 | # CONFIG_SK98LIN is not set | 565 | # CONFIG_SK98LIN is not set |
566 | CONFIG_TIGON3=m | 566 | CONFIG_TIGON3=m |
567 | # CONFIG_BNX2 is not set | ||
568 | # CONFIG_MV643XX_ETH is not set | ||
567 | 569 | ||
568 | # | 570 | # |
569 | # Ethernet (10000 Mbit) | 571 | # Ethernet (10000 Mbit) |
@@ -631,18 +633,6 @@ CONFIG_INPUT_EVDEV=y | |||
631 | # CONFIG_INPUT_EVBUG is not set | 633 | # CONFIG_INPUT_EVBUG is not set |
632 | 634 | ||
633 | # | 635 | # |
634 | # Input I/O drivers | ||
635 | # | ||
636 | # CONFIG_GAMEPORT is not set | ||
637 | CONFIG_SOUND_GAMEPORT=y | ||
638 | CONFIG_SERIO=y | ||
639 | # CONFIG_SERIO_I8042 is not set | ||
640 | # CONFIG_SERIO_SERPORT is not set | ||
641 | # CONFIG_SERIO_CT82C710 is not set | ||
642 | # CONFIG_SERIO_PCIPS2 is not set | ||
643 | # CONFIG_SERIO_RAW is not set | ||
644 | |||
645 | # | ||
646 | # Input Device Drivers | 636 | # Input Device Drivers |
647 | # | 637 | # |
648 | CONFIG_INPUT_KEYBOARD=y | 638 | CONFIG_INPUT_KEYBOARD=y |
@@ -660,6 +650,16 @@ CONFIG_INPUT_MOUSE=y | |||
660 | # CONFIG_INPUT_MISC is not set | 650 | # CONFIG_INPUT_MISC is not set |
661 | 651 | ||
662 | # | 652 | # |
653 | # Hardware I/O ports | ||
654 | # | ||
655 | CONFIG_SERIO=y | ||
656 | # CONFIG_SERIO_I8042 is not set | ||
657 | # CONFIG_SERIO_SERPORT is not set | ||
658 | # CONFIG_SERIO_PCIPS2 is not set | ||
659 | # CONFIG_SERIO_RAW is not set | ||
660 | # CONFIG_GAMEPORT is not set | ||
661 | |||
662 | # | ||
663 | # Character devices | 663 | # Character devices |
664 | # | 664 | # |
665 | CONFIG_VT=y | 665 | CONFIG_VT=y |
@@ -676,6 +676,7 @@ CONFIG_HW_CONSOLE=y | |||
676 | # Non-8250 serial port support | 676 | # Non-8250 serial port support |
677 | # | 677 | # |
678 | # CONFIG_SERIAL_PMACZILOG is not set | 678 | # CONFIG_SERIAL_PMACZILOG is not set |
679 | # CONFIG_SERIAL_JSM is not set | ||
679 | CONFIG_UNIX98_PTYS=y | 680 | CONFIG_UNIX98_PTYS=y |
680 | CONFIG_LEGACY_PTYS=y | 681 | CONFIG_LEGACY_PTYS=y |
681 | CONFIG_LEGACY_PTY_COUNT=256 | 682 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -698,9 +699,12 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
698 | # | 699 | # |
699 | # Ftape, the floppy tape device driver | 700 | # Ftape, the floppy tape device driver |
700 | # | 701 | # |
702 | CONFIG_AGP=m | ||
703 | CONFIG_AGP_UNINORTH=m | ||
701 | # CONFIG_DRM is not set | 704 | # CONFIG_DRM is not set |
702 | CONFIG_RAW_DRIVER=y | 705 | CONFIG_RAW_DRIVER=y |
703 | CONFIG_MAX_RAW_DEVS=256 | 706 | CONFIG_MAX_RAW_DEVS=256 |
707 | # CONFIG_HANGCHECK_TIMER is not set | ||
704 | 708 | ||
705 | # | 709 | # |
706 | # TPM devices | 710 | # TPM devices |
@@ -730,12 +734,11 @@ CONFIG_I2C_ALGOBIT=y | |||
730 | # CONFIG_I2C_AMD8111 is not set | 734 | # CONFIG_I2C_AMD8111 is not set |
731 | # CONFIG_I2C_I801 is not set | 735 | # CONFIG_I2C_I801 is not set |
732 | # CONFIG_I2C_I810 is not set | 736 | # CONFIG_I2C_I810 is not set |
737 | # CONFIG_I2C_PIIX4 is not set | ||
733 | # CONFIG_I2C_ISA is not set | 738 | # CONFIG_I2C_ISA is not set |
734 | CONFIG_I2C_KEYWEST=y | 739 | CONFIG_I2C_KEYWEST=y |
735 | # CONFIG_I2C_MPC is not set | ||
736 | # CONFIG_I2C_NFORCE2 is not set | 740 | # CONFIG_I2C_NFORCE2 is not set |
737 | # CONFIG_I2C_PARPORT_LIGHT is not set | 741 | # CONFIG_I2C_PARPORT_LIGHT is not set |
738 | # CONFIG_I2C_PIIX4 is not set | ||
739 | # CONFIG_I2C_PROSAVAGE is not set | 742 | # CONFIG_I2C_PROSAVAGE is not set |
740 | # CONFIG_I2C_SAVAGE4 is not set | 743 | # CONFIG_I2C_SAVAGE4 is not set |
741 | # CONFIG_SCx200_ACB is not set | 744 | # CONFIG_SCx200_ACB is not set |
@@ -772,6 +775,7 @@ CONFIG_I2C_KEYWEST=y | |||
772 | # CONFIG_SENSORS_LM85 is not set | 775 | # CONFIG_SENSORS_LM85 is not set |
773 | # CONFIG_SENSORS_LM87 is not set | 776 | # CONFIG_SENSORS_LM87 is not set |
774 | # CONFIG_SENSORS_LM90 is not set | 777 | # CONFIG_SENSORS_LM90 is not set |
778 | # CONFIG_SENSORS_LM92 is not set | ||
775 | # CONFIG_SENSORS_MAX1619 is not set | 779 | # CONFIG_SENSORS_MAX1619 is not set |
776 | # CONFIG_SENSORS_PC87360 is not set | 780 | # CONFIG_SENSORS_PC87360 is not set |
777 | # CONFIG_SENSORS_SMSC47B397 is not set | 781 | # CONFIG_SENSORS_SMSC47B397 is not set |
@@ -785,6 +789,7 @@ CONFIG_I2C_KEYWEST=y | |||
785 | # | 789 | # |
786 | # Other I2C Chip support | 790 | # Other I2C Chip support |
787 | # | 791 | # |
792 | # CONFIG_SENSORS_DS1337 is not set | ||
788 | # CONFIG_SENSORS_EEPROM is not set | 793 | # CONFIG_SENSORS_EEPROM is not set |
789 | # CONFIG_SENSORS_PCF8574 is not set | 794 | # CONFIG_SENSORS_PCF8574 is not set |
790 | # CONFIG_SENSORS_PCF8591 is not set | 795 | # CONFIG_SENSORS_PCF8591 is not set |
@@ -817,6 +822,11 @@ CONFIG_I2C_KEYWEST=y | |||
817 | # Graphics support | 822 | # Graphics support |
818 | # | 823 | # |
819 | CONFIG_FB=y | 824 | CONFIG_FB=y |
825 | CONFIG_FB_CFB_FILLRECT=y | ||
826 | CONFIG_FB_CFB_COPYAREA=y | ||
827 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
828 | CONFIG_FB_SOFT_CURSOR=y | ||
829 | CONFIG_FB_MACMODES=y | ||
820 | CONFIG_FB_MODE_HELPERS=y | 830 | CONFIG_FB_MODE_HELPERS=y |
821 | CONFIG_FB_TILEBLITTING=y | 831 | CONFIG_FB_TILEBLITTING=y |
822 | # CONFIG_FB_CIRRUS is not set | 832 | # CONFIG_FB_CIRRUS is not set |
@@ -830,6 +840,7 @@ CONFIG_FB_OF=y | |||
830 | # CONFIG_FB_ASILIANT is not set | 840 | # CONFIG_FB_ASILIANT is not set |
831 | # CONFIG_FB_IMSTT is not set | 841 | # CONFIG_FB_IMSTT is not set |
832 | # CONFIG_FB_VGA16 is not set | 842 | # CONFIG_FB_VGA16 is not set |
843 | # CONFIG_FB_NVIDIA is not set | ||
833 | CONFIG_FB_RIVA=y | 844 | CONFIG_FB_RIVA=y |
834 | # CONFIG_FB_RIVA_I2C is not set | 845 | # CONFIG_FB_RIVA_I2C is not set |
835 | # CONFIG_FB_RIVA_DEBUG is not set | 846 | # CONFIG_FB_RIVA_DEBUG is not set |
@@ -847,6 +858,7 @@ CONFIG_FB_RADEON_I2C=y | |||
847 | # CONFIG_FB_3DFX is not set | 858 | # CONFIG_FB_3DFX is not set |
848 | # CONFIG_FB_VOODOO1 is not set | 859 | # CONFIG_FB_VOODOO1 is not set |
849 | # CONFIG_FB_TRIDENT is not set | 860 | # CONFIG_FB_TRIDENT is not set |
861 | # CONFIG_FB_S1D13XXX is not set | ||
850 | # CONFIG_FB_VIRTUAL is not set | 862 | # CONFIG_FB_VIRTUAL is not set |
851 | 863 | ||
852 | # | 864 | # |
@@ -880,6 +892,8 @@ CONFIG_LCD_DEVICE=y | |||
880 | # | 892 | # |
881 | # USB support | 893 | # USB support |
882 | # | 894 | # |
895 | CONFIG_USB_ARCH_HAS_HCD=y | ||
896 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
883 | CONFIG_USB=y | 897 | CONFIG_USB=y |
884 | # CONFIG_USB_DEBUG is not set | 898 | # CONFIG_USB_DEBUG is not set |
885 | 899 | ||
@@ -890,8 +904,6 @@ CONFIG_USB_DEVICEFS=y | |||
890 | # CONFIG_USB_BANDWIDTH is not set | 904 | # CONFIG_USB_BANDWIDTH is not set |
891 | # CONFIG_USB_DYNAMIC_MINORS is not set | 905 | # CONFIG_USB_DYNAMIC_MINORS is not set |
892 | # CONFIG_USB_OTG is not set | 906 | # CONFIG_USB_OTG is not set |
893 | CONFIG_USB_ARCH_HAS_HCD=y | ||
894 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
895 | 907 | ||
896 | # | 908 | # |
897 | # USB Host Controller Drivers | 909 | # USB Host Controller Drivers |
@@ -917,7 +929,6 @@ CONFIG_USB_PRINTER=y | |||
917 | # | 929 | # |
918 | CONFIG_USB_STORAGE=y | 930 | CONFIG_USB_STORAGE=y |
919 | # CONFIG_USB_STORAGE_DEBUG is not set | 931 | # CONFIG_USB_STORAGE_DEBUG is not set |
920 | CONFIG_USB_STORAGE_RW_DETECT=y | ||
921 | CONFIG_USB_STORAGE_DATAFAB=y | 932 | CONFIG_USB_STORAGE_DATAFAB=y |
922 | CONFIG_USB_STORAGE_FREECOM=y | 933 | CONFIG_USB_STORAGE_FREECOM=y |
923 | CONFIG_USB_STORAGE_ISD200=y | 934 | CONFIG_USB_STORAGE_ISD200=y |
@@ -1004,8 +1015,10 @@ CONFIG_USB_MON=y | |||
1004 | # | 1015 | # |
1005 | CONFIG_USB_SERIAL=m | 1016 | CONFIG_USB_SERIAL=m |
1006 | CONFIG_USB_SERIAL_GENERIC=y | 1017 | CONFIG_USB_SERIAL_GENERIC=y |
1018 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
1007 | CONFIG_USB_SERIAL_BELKIN=m | 1019 | CONFIG_USB_SERIAL_BELKIN=m |
1008 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | 1020 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m |
1021 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
1009 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 1022 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
1010 | CONFIG_USB_SERIAL_EMPEG=m | 1023 | CONFIG_USB_SERIAL_EMPEG=m |
1011 | CONFIG_USB_SERIAL_FTDI_SIO=m | 1024 | CONFIG_USB_SERIAL_FTDI_SIO=m |
@@ -1034,6 +1047,7 @@ CONFIG_USB_SERIAL_KLSI=m | |||
1034 | CONFIG_USB_SERIAL_KOBIL_SCT=m | 1047 | CONFIG_USB_SERIAL_KOBIL_SCT=m |
1035 | CONFIG_USB_SERIAL_MCT_U232=m | 1048 | CONFIG_USB_SERIAL_MCT_U232=m |
1036 | CONFIG_USB_SERIAL_PL2303=m | 1049 | CONFIG_USB_SERIAL_PL2303=m |
1050 | # CONFIG_USB_SERIAL_HP4X is not set | ||
1037 | CONFIG_USB_SERIAL_SAFE=m | 1051 | CONFIG_USB_SERIAL_SAFE=m |
1038 | CONFIG_USB_SERIAL_SAFE_PADDED=y | 1052 | CONFIG_USB_SERIAL_SAFE_PADDED=y |
1039 | CONFIG_USB_SERIAL_TI=m | 1053 | CONFIG_USB_SERIAL_TI=m |
@@ -1270,11 +1284,13 @@ CONFIG_OPROFILE=y | |||
1270 | # | 1284 | # |
1271 | # Kernel hacking | 1285 | # Kernel hacking |
1272 | # | 1286 | # |
1287 | # CONFIG_PRINTK_TIME is not set | ||
1273 | CONFIG_DEBUG_KERNEL=y | 1288 | CONFIG_DEBUG_KERNEL=y |
1274 | CONFIG_MAGIC_SYSRQ=y | 1289 | CONFIG_MAGIC_SYSRQ=y |
1275 | # CONFIG_PRINTK_TIME is not set | 1290 | CONFIG_LOG_BUF_SHIFT=17 |
1276 | # CONFIG_SCHEDSTATS is not set | 1291 | # CONFIG_SCHEDSTATS is not set |
1277 | # CONFIG_DEBUG_SLAB is not set | 1292 | # CONFIG_DEBUG_SLAB is not set |
1293 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1278 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1294 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1279 | # CONFIG_DEBUG_KOBJECT is not set | 1295 | # CONFIG_DEBUG_KOBJECT is not set |
1280 | # CONFIG_DEBUG_INFO is not set | 1296 | # CONFIG_DEBUG_INFO is not set |
diff --git a/arch/ppc64/configs/iSeries_defconfig b/arch/ppc64/configs/iSeries_defconfig index a39e9d2e25da..f6a2b99afd63 100644 --- a/arch/ppc64/configs/iSeries_defconfig +++ b/arch/ppc64/configs/iSeries_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11-rc3-bk6 | 3 | # Linux kernel version: 2.6.12-rc6 |
4 | # Wed Feb 9 23:34:52 2005 | 4 | # Tue Jun 14 17:01:28 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -11,7 +11,7 @@ CONFIG_GENERIC_ISA_DMA=y | |||
11 | CONFIG_HAVE_DEC_LOCK=y | 11 | CONFIG_HAVE_DEC_LOCK=y |
12 | CONFIG_EARLY_PRINTK=y | 12 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 13 | CONFIG_COMPAT=y |
14 | CONFIG_FRAME_POINTER=y | 14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -20,6 +20,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
20 | CONFIG_EXPERIMENTAL=y | 20 | CONFIG_EXPERIMENTAL=y |
21 | CONFIG_CLEAN_COMPILE=y | 21 | CONFIG_CLEAN_COMPILE=y |
22 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
23 | 24 | ||
24 | # | 25 | # |
25 | # General setup | 26 | # General setup |
@@ -30,24 +31,29 @@ CONFIG_SYSVIPC=y | |||
30 | CONFIG_POSIX_MQUEUE=y | 31 | CONFIG_POSIX_MQUEUE=y |
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
33 | CONFIG_LOG_BUF_SHIFT=17 | 34 | CONFIG_AUDIT=y |
35 | CONFIG_AUDITSYSCALL=y | ||
34 | CONFIG_HOTPLUG=y | 36 | CONFIG_HOTPLUG=y |
35 | CONFIG_KOBJECT_UEVENT=y | 37 | CONFIG_KOBJECT_UEVENT=y |
36 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
37 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
40 | # CONFIG_CPUSETS is not set | ||
38 | # CONFIG_EMBEDDED is not set | 41 | # CONFIG_EMBEDDED is not set |
39 | CONFIG_KALLSYMS=y | 42 | CONFIG_KALLSYMS=y |
40 | # CONFIG_KALLSYMS_ALL is not set | 43 | # CONFIG_KALLSYMS_ALL is not set |
41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 44 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
45 | CONFIG_PRINTK=y | ||
46 | CONFIG_BUG=y | ||
47 | CONFIG_BASE_FULL=y | ||
42 | CONFIG_FUTEX=y | 48 | CONFIG_FUTEX=y |
43 | CONFIG_EPOLL=y | 49 | CONFIG_EPOLL=y |
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SHMEM=y | 50 | CONFIG_SHMEM=y |
46 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 51 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
47 | CONFIG_CC_ALIGN_LABELS=0 | 52 | CONFIG_CC_ALIGN_LABELS=0 |
48 | CONFIG_CC_ALIGN_LOOPS=0 | 53 | CONFIG_CC_ALIGN_LOOPS=0 |
49 | CONFIG_CC_ALIGN_JUMPS=0 | 54 | CONFIG_CC_ALIGN_JUMPS=0 |
50 | # CONFIG_TINY_SHMEM is not set | 55 | # CONFIG_TINY_SHMEM is not set |
56 | CONFIG_BASE_SMALL=0 | ||
51 | 57 | ||
52 | # | 58 | # |
53 | # Loadable module support | 59 | # Loadable module support |
@@ -79,6 +85,8 @@ CONFIG_NR_CPUS=32 | |||
79 | CONFIG_GENERIC_HARDIRQS=y | 85 | CONFIG_GENERIC_HARDIRQS=y |
80 | CONFIG_MSCHUNKS=y | 86 | CONFIG_MSCHUNKS=y |
81 | CONFIG_LPARCFG=y | 87 | CONFIG_LPARCFG=y |
88 | CONFIG_SECCOMP=y | ||
89 | CONFIG_ISA_DMA_API=y | ||
82 | 90 | ||
83 | # | 91 | # |
84 | # General setup | 92 | # General setup |
@@ -89,6 +97,7 @@ CONFIG_BINFMT_ELF=y | |||
89 | # CONFIG_BINFMT_MISC is not set | 97 | # CONFIG_BINFMT_MISC is not set |
90 | CONFIG_PCI_LEGACY_PROC=y | 98 | CONFIG_PCI_LEGACY_PROC=y |
91 | CONFIG_PCI_NAMES=y | 99 | CONFIG_PCI_NAMES=y |
100 | # CONFIG_PCI_DEBUG is not set | ||
92 | 101 | ||
93 | # | 102 | # |
94 | # PCCARD (PCMCIA/CardBus) support | 103 | # PCCARD (PCMCIA/CardBus) support |
@@ -96,10 +105,6 @@ CONFIG_PCI_NAMES=y | |||
96 | # CONFIG_PCCARD is not set | 105 | # CONFIG_PCCARD is not set |
97 | 106 | ||
98 | # | 107 | # |
99 | # PC-card bridges | ||
100 | # | ||
101 | |||
102 | # | ||
103 | # PCI Hotplug Support | 108 | # PCI Hotplug Support |
104 | # | 109 | # |
105 | # CONFIG_HOTPLUG_PCI is not set | 110 | # CONFIG_HOTPLUG_PCI is not set |
@@ -210,7 +215,6 @@ CONFIG_SCSI_FC_ATTRS=y | |||
210 | # CONFIG_SCSI_BUSLOGIC is not set | 215 | # CONFIG_SCSI_BUSLOGIC is not set |
211 | # CONFIG_SCSI_DMX3191D is not set | 216 | # CONFIG_SCSI_DMX3191D is not set |
212 | # CONFIG_SCSI_EATA is not set | 217 | # CONFIG_SCSI_EATA is not set |
213 | # CONFIG_SCSI_EATA_PIO is not set | ||
214 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 218 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
215 | # CONFIG_SCSI_GDTH is not set | 219 | # CONFIG_SCSI_GDTH is not set |
216 | # CONFIG_SCSI_IPS is not set | 220 | # CONFIG_SCSI_IPS is not set |
@@ -219,7 +223,6 @@ CONFIG_SCSI_IBMVSCSI=m | |||
219 | # CONFIG_SCSI_INIA100 is not set | 223 | # CONFIG_SCSI_INIA100 is not set |
220 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 224 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
221 | # CONFIG_SCSI_IPR is not set | 225 | # CONFIG_SCSI_IPR is not set |
222 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
223 | # CONFIG_SCSI_QLOGIC_FC is not set | 226 | # CONFIG_SCSI_QLOGIC_FC is not set |
224 | # CONFIG_SCSI_QLOGIC_1280 is not set | 227 | # CONFIG_SCSI_QLOGIC_1280 is not set |
225 | CONFIG_SCSI_QLA2XXX=y | 228 | CONFIG_SCSI_QLA2XXX=y |
@@ -228,6 +231,7 @@ CONFIG_SCSI_QLA2XXX=y | |||
228 | # CONFIG_SCSI_QLA2300 is not set | 231 | # CONFIG_SCSI_QLA2300 is not set |
229 | # CONFIG_SCSI_QLA2322 is not set | 232 | # CONFIG_SCSI_QLA2322 is not set |
230 | # CONFIG_SCSI_QLA6312 is not set | 233 | # CONFIG_SCSI_QLA6312 is not set |
234 | # CONFIG_SCSI_LPFC is not set | ||
231 | # CONFIG_SCSI_DC395x is not set | 235 | # CONFIG_SCSI_DC395x is not set |
232 | # CONFIG_SCSI_DC390T is not set | 236 | # CONFIG_SCSI_DC390T is not set |
233 | # CONFIG_SCSI_DEBUG is not set | 237 | # CONFIG_SCSI_DEBUG is not set |
@@ -250,6 +254,7 @@ CONFIG_DM_CRYPT=m | |||
250 | CONFIG_DM_SNAPSHOT=m | 254 | CONFIG_DM_SNAPSHOT=m |
251 | CONFIG_DM_MIRROR=m | 255 | CONFIG_DM_MIRROR=m |
252 | CONFIG_DM_ZERO=m | 256 | CONFIG_DM_ZERO=m |
257 | # CONFIG_DM_MULTIPATH is not set | ||
253 | 258 | ||
254 | # | 259 | # |
255 | # Fusion MPT device support | 260 | # Fusion MPT device support |
@@ -280,7 +285,6 @@ CONFIG_NET=y | |||
280 | # | 285 | # |
281 | CONFIG_PACKET=y | 286 | CONFIG_PACKET=y |
282 | # CONFIG_PACKET_MMAP is not set | 287 | # CONFIG_PACKET_MMAP is not set |
283 | # CONFIG_NETLINK_DEV is not set | ||
284 | CONFIG_UNIX=y | 288 | CONFIG_UNIX=y |
285 | CONFIG_NET_KEY=m | 289 | CONFIG_NET_KEY=m |
286 | CONFIG_INET=y | 290 | CONFIG_INET=y |
@@ -445,7 +449,6 @@ CONFIG_PCNET32=y | |||
445 | # CONFIG_DGRS is not set | 449 | # CONFIG_DGRS is not set |
446 | # CONFIG_EEPRO100 is not set | 450 | # CONFIG_EEPRO100 is not set |
447 | CONFIG_E100=y | 451 | CONFIG_E100=y |
448 | # CONFIG_E100_NAPI is not set | ||
449 | # CONFIG_FEALNX is not set | 452 | # CONFIG_FEALNX is not set |
450 | # CONFIG_NATSEMI is not set | 453 | # CONFIG_NATSEMI is not set |
451 | # CONFIG_NE2K_PCI is not set | 454 | # CONFIG_NE2K_PCI is not set |
@@ -471,6 +474,7 @@ CONFIG_E1000=m | |||
471 | # CONFIG_SK98LIN is not set | 474 | # CONFIG_SK98LIN is not set |
472 | # CONFIG_VIA_VELOCITY is not set | 475 | # CONFIG_VIA_VELOCITY is not set |
473 | # CONFIG_TIGON3 is not set | 476 | # CONFIG_TIGON3 is not set |
477 | # CONFIG_BNX2 is not set | ||
474 | 478 | ||
475 | # | 479 | # |
476 | # Ethernet (10000 Mbit) | 480 | # Ethernet (10000 Mbit) |
@@ -539,14 +543,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
539 | # CONFIG_INPUT_EVBUG is not set | 543 | # CONFIG_INPUT_EVBUG is not set |
540 | 544 | ||
541 | # | 545 | # |
542 | # Input I/O drivers | ||
543 | # | ||
544 | # CONFIG_GAMEPORT is not set | ||
545 | CONFIG_SOUND_GAMEPORT=y | ||
546 | # CONFIG_SERIO is not set | ||
547 | # CONFIG_SERIO_I8042 is not set | ||
548 | |||
549 | # | ||
550 | # Input Device Drivers | 546 | # Input Device Drivers |
551 | # | 547 | # |
552 | # CONFIG_INPUT_KEYBOARD is not set | 548 | # CONFIG_INPUT_KEYBOARD is not set |
@@ -556,6 +552,12 @@ CONFIG_SOUND_GAMEPORT=y | |||
556 | # CONFIG_INPUT_MISC is not set | 552 | # CONFIG_INPUT_MISC is not set |
557 | 553 | ||
558 | # | 554 | # |
555 | # Hardware I/O ports | ||
556 | # | ||
557 | # CONFIG_SERIO is not set | ||
558 | # CONFIG_GAMEPORT is not set | ||
559 | |||
560 | # | ||
559 | # Character devices | 561 | # Character devices |
560 | # | 562 | # |
561 | # CONFIG_SERIAL_NONSTANDARD is not set | 563 | # CONFIG_SERIAL_NONSTANDARD is not set |
@@ -570,6 +572,7 @@ CONFIG_SOUND_GAMEPORT=y | |||
570 | # | 572 | # |
571 | CONFIG_SERIAL_CORE=m | 573 | CONFIG_SERIAL_CORE=m |
572 | CONFIG_SERIAL_ICOM=m | 574 | CONFIG_SERIAL_ICOM=m |
575 | # CONFIG_SERIAL_JSM is not set | ||
573 | CONFIG_UNIX98_PTYS=y | 576 | CONFIG_UNIX98_PTYS=y |
574 | CONFIG_LEGACY_PTYS=y | 577 | CONFIG_LEGACY_PTYS=y |
575 | CONFIG_LEGACY_PTY_COUNT=256 | 578 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -592,9 +595,16 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
592 | # | 595 | # |
593 | # Ftape, the floppy tape device driver | 596 | # Ftape, the floppy tape device driver |
594 | # | 597 | # |
598 | # CONFIG_AGP is not set | ||
595 | # CONFIG_DRM is not set | 599 | # CONFIG_DRM is not set |
596 | CONFIG_RAW_DRIVER=y | 600 | CONFIG_RAW_DRIVER=y |
597 | CONFIG_MAX_RAW_DEVS=256 | 601 | CONFIG_MAX_RAW_DEVS=256 |
602 | # CONFIG_HANGCHECK_TIMER is not set | ||
603 | |||
604 | # | ||
605 | # TPM devices | ||
606 | # | ||
607 | # CONFIG_TCG_TPM is not set | ||
598 | 608 | ||
599 | # | 609 | # |
600 | # I2C support | 610 | # I2C support |
@@ -633,13 +643,9 @@ CONFIG_MAX_RAW_DEVS=256 | |||
633 | # | 643 | # |
634 | # USB support | 644 | # USB support |
635 | # | 645 | # |
636 | # CONFIG_USB is not set | ||
637 | CONFIG_USB_ARCH_HAS_HCD=y | 646 | CONFIG_USB_ARCH_HAS_HCD=y |
638 | CONFIG_USB_ARCH_HAS_OHCI=y | 647 | CONFIG_USB_ARCH_HAS_OHCI=y |
639 | 648 | # CONFIG_USB is not set | |
640 | # | ||
641 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
642 | # | ||
643 | 649 | ||
644 | # | 650 | # |
645 | # USB Gadget Support | 651 | # USB Gadget Support |
@@ -848,10 +854,13 @@ CONFIG_OPROFILE=y | |||
848 | # | 854 | # |
849 | # Kernel hacking | 855 | # Kernel hacking |
850 | # | 856 | # |
857 | # CONFIG_PRINTK_TIME is not set | ||
851 | CONFIG_DEBUG_KERNEL=y | 858 | CONFIG_DEBUG_KERNEL=y |
852 | CONFIG_MAGIC_SYSRQ=y | 859 | CONFIG_MAGIC_SYSRQ=y |
860 | CONFIG_LOG_BUF_SHIFT=17 | ||
853 | # CONFIG_SCHEDSTATS is not set | 861 | # CONFIG_SCHEDSTATS is not set |
854 | # CONFIG_DEBUG_SLAB is not set | 862 | # CONFIG_DEBUG_SLAB is not set |
863 | # CONFIG_DEBUG_SPINLOCK is not set | ||
855 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 864 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
856 | # CONFIG_DEBUG_KOBJECT is not set | 865 | # CONFIG_DEBUG_KOBJECT is not set |
857 | # CONFIG_DEBUG_INFO is not set | 866 | # CONFIG_DEBUG_INFO is not set |
@@ -881,6 +890,7 @@ CONFIG_CRYPTO_SHA1=m | |||
881 | CONFIG_CRYPTO_SHA256=m | 890 | CONFIG_CRYPTO_SHA256=m |
882 | CONFIG_CRYPTO_SHA512=m | 891 | CONFIG_CRYPTO_SHA512=m |
883 | CONFIG_CRYPTO_WP512=m | 892 | CONFIG_CRYPTO_WP512=m |
893 | CONFIG_CRYPTO_TGR192=m | ||
884 | CONFIG_CRYPTO_DES=y | 894 | CONFIG_CRYPTO_DES=y |
885 | CONFIG_CRYPTO_BLOWFISH=m | 895 | CONFIG_CRYPTO_BLOWFISH=m |
886 | CONFIG_CRYPTO_TWOFISH=m | 896 | CONFIG_CRYPTO_TWOFISH=m |
diff --git a/arch/ppc64/configs/maple_defconfig b/arch/ppc64/configs/maple_defconfig index cf527501915c..8051b0f47b6f 100644 --- a/arch/ppc64/configs/maple_defconfig +++ b/arch/ppc64/configs/maple_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11-rc3-bk6 | 3 | # Linux kernel version: 2.6.12-rc6 |
4 | # Wed Feb 9 23:34:53 2005 | 4 | # Tue Jun 14 17:12:48 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -11,7 +11,7 @@ CONFIG_GENERIC_ISA_DMA=y | |||
11 | CONFIG_HAVE_DEC_LOCK=y | 11 | CONFIG_HAVE_DEC_LOCK=y |
12 | CONFIG_EARLY_PRINTK=y | 12 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 13 | CONFIG_COMPAT=y |
14 | CONFIG_FRAME_POINTER=y | 14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -20,6 +20,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
20 | CONFIG_EXPERIMENTAL=y | 20 | CONFIG_EXPERIMENTAL=y |
21 | CONFIG_CLEAN_COMPILE=y | 21 | CONFIG_CLEAN_COMPILE=y |
22 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
23 | 24 | ||
24 | # | 25 | # |
25 | # General setup | 26 | # General setup |
@@ -30,24 +31,28 @@ CONFIG_SYSVIPC=y | |||
30 | CONFIG_POSIX_MQUEUE=y | 31 | CONFIG_POSIX_MQUEUE=y |
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
33 | CONFIG_LOG_BUF_SHIFT=17 | 34 | # CONFIG_AUDIT is not set |
34 | # CONFIG_HOTPLUG is not set | 35 | # CONFIG_HOTPLUG is not set |
35 | CONFIG_KOBJECT_UEVENT=y | 36 | CONFIG_KOBJECT_UEVENT=y |
36 | CONFIG_IKCONFIG=y | 37 | CONFIG_IKCONFIG=y |
37 | CONFIG_IKCONFIG_PROC=y | 38 | CONFIG_IKCONFIG_PROC=y |
39 | # CONFIG_CPUSETS is not set | ||
38 | # CONFIG_EMBEDDED is not set | 40 | # CONFIG_EMBEDDED is not set |
39 | CONFIG_KALLSYMS=y | 41 | CONFIG_KALLSYMS=y |
40 | CONFIG_KALLSYMS_ALL=y | 42 | CONFIG_KALLSYMS_ALL=y |
41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 43 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
44 | CONFIG_PRINTK=y | ||
45 | CONFIG_BUG=y | ||
46 | CONFIG_BASE_FULL=y | ||
42 | CONFIG_FUTEX=y | 47 | CONFIG_FUTEX=y |
43 | CONFIG_EPOLL=y | 48 | CONFIG_EPOLL=y |
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SHMEM=y | 49 | CONFIG_SHMEM=y |
46 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 50 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
47 | CONFIG_CC_ALIGN_LABELS=0 | 51 | CONFIG_CC_ALIGN_LABELS=0 |
48 | CONFIG_CC_ALIGN_LOOPS=0 | 52 | CONFIG_CC_ALIGN_LOOPS=0 |
49 | CONFIG_CC_ALIGN_JUMPS=0 | 53 | CONFIG_CC_ALIGN_JUMPS=0 |
50 | # CONFIG_TINY_SHMEM is not set | 54 | # CONFIG_TINY_SHMEM is not set |
55 | CONFIG_BASE_SMALL=0 | ||
51 | 56 | ||
52 | # | 57 | # |
53 | # Loadable module support | 58 | # Loadable module support |
@@ -84,6 +89,8 @@ CONFIG_NR_CPUS=2 | |||
84 | # CONFIG_SCHED_SMT is not set | 89 | # CONFIG_SCHED_SMT is not set |
85 | # CONFIG_PREEMPT is not set | 90 | # CONFIG_PREEMPT is not set |
86 | CONFIG_GENERIC_HARDIRQS=y | 91 | CONFIG_GENERIC_HARDIRQS=y |
92 | CONFIG_SECCOMP=y | ||
93 | CONFIG_ISA_DMA_API=y | ||
87 | 94 | ||
88 | # | 95 | # |
89 | # General setup | 96 | # General setup |
@@ -94,6 +101,7 @@ CONFIG_BINFMT_ELF=y | |||
94 | # CONFIG_BINFMT_MISC is not set | 101 | # CONFIG_BINFMT_MISC is not set |
95 | CONFIG_PCI_LEGACY_PROC=y | 102 | CONFIG_PCI_LEGACY_PROC=y |
96 | CONFIG_PCI_NAMES=y | 103 | CONFIG_PCI_NAMES=y |
104 | # CONFIG_PCI_DEBUG is not set | ||
97 | 105 | ||
98 | # | 106 | # |
99 | # PCCARD (PCMCIA/CardBus) support | 107 | # PCCARD (PCMCIA/CardBus) support |
@@ -101,10 +109,6 @@ CONFIG_PCI_NAMES=y | |||
101 | # CONFIG_PCCARD is not set | 109 | # CONFIG_PCCARD is not set |
102 | 110 | ||
103 | # | 111 | # |
104 | # PC-card bridges | ||
105 | # | ||
106 | |||
107 | # | ||
108 | # PCI Hotplug Support | 112 | # PCI Hotplug Support |
109 | # | 113 | # |
110 | # CONFIG_HOTPLUG_PCI is not set | 114 | # CONFIG_HOTPLUG_PCI is not set |
@@ -261,7 +265,6 @@ CONFIG_NET=y | |||
261 | # | 265 | # |
262 | CONFIG_PACKET=y | 266 | CONFIG_PACKET=y |
263 | CONFIG_PACKET_MMAP=y | 267 | CONFIG_PACKET_MMAP=y |
264 | # CONFIG_NETLINK_DEV is not set | ||
265 | CONFIG_UNIX=y | 268 | CONFIG_UNIX=y |
266 | # CONFIG_NET_KEY is not set | 269 | # CONFIG_NET_KEY is not set |
267 | CONFIG_INET=y | 270 | CONFIG_INET=y |
@@ -376,6 +379,8 @@ CONFIG_E1000=y | |||
376 | # CONFIG_SK98LIN is not set | 379 | # CONFIG_SK98LIN is not set |
377 | # CONFIG_VIA_VELOCITY is not set | 380 | # CONFIG_VIA_VELOCITY is not set |
378 | # CONFIG_TIGON3 is not set | 381 | # CONFIG_TIGON3 is not set |
382 | # CONFIG_BNX2 is not set | ||
383 | # CONFIG_MV643XX_ETH is not set | ||
379 | 384 | ||
380 | # | 385 | # |
381 | # Ethernet (10000 Mbit) | 386 | # Ethernet (10000 Mbit) |
@@ -432,14 +437,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 | |||
432 | # CONFIG_INPUT_EVBUG is not set | 437 | # CONFIG_INPUT_EVBUG is not set |
433 | 438 | ||
434 | # | 439 | # |
435 | # Input I/O drivers | ||
436 | # | ||
437 | # CONFIG_GAMEPORT is not set | ||
438 | CONFIG_SOUND_GAMEPORT=y | ||
439 | # CONFIG_SERIO is not set | ||
440 | # CONFIG_SERIO_I8042 is not set | ||
441 | |||
442 | # | ||
443 | # Input Device Drivers | 440 | # Input Device Drivers |
444 | # | 441 | # |
445 | # CONFIG_INPUT_KEYBOARD is not set | 442 | # CONFIG_INPUT_KEYBOARD is not set |
@@ -449,6 +446,12 @@ CONFIG_SOUND_GAMEPORT=y | |||
449 | # CONFIG_INPUT_MISC is not set | 446 | # CONFIG_INPUT_MISC is not set |
450 | 447 | ||
451 | # | 448 | # |
449 | # Hardware I/O ports | ||
450 | # | ||
451 | # CONFIG_SERIO is not set | ||
452 | # CONFIG_GAMEPORT is not set | ||
453 | |||
454 | # | ||
452 | # Character devices | 455 | # Character devices |
453 | # | 456 | # |
454 | CONFIG_VT=y | 457 | CONFIG_VT=y |
@@ -469,7 +472,7 @@ CONFIG_SERIAL_8250_NR_UARTS=4 | |||
469 | # | 472 | # |
470 | CONFIG_SERIAL_CORE=y | 473 | CONFIG_SERIAL_CORE=y |
471 | CONFIG_SERIAL_CORE_CONSOLE=y | 474 | CONFIG_SERIAL_CORE_CONSOLE=y |
472 | # CONFIG_SERIAL_PMACZILOG is not set | 475 | # CONFIG_SERIAL_JSM is not set |
473 | CONFIG_UNIX98_PTYS=y | 476 | CONFIG_UNIX98_PTYS=y |
474 | CONFIG_LEGACY_PTYS=y | 477 | CONFIG_LEGACY_PTYS=y |
475 | CONFIG_LEGACY_PTY_COUNT=256 | 478 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -492,8 +495,15 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
492 | # | 495 | # |
493 | # Ftape, the floppy tape device driver | 496 | # Ftape, the floppy tape device driver |
494 | # | 497 | # |
498 | # CONFIG_AGP is not set | ||
495 | # CONFIG_DRM is not set | 499 | # CONFIG_DRM is not set |
496 | # CONFIG_RAW_DRIVER is not set | 500 | # CONFIG_RAW_DRIVER is not set |
501 | # CONFIG_HANGCHECK_TIMER is not set | ||
502 | |||
503 | # | ||
504 | # TPM devices | ||
505 | # | ||
506 | # CONFIG_TCG_TPM is not set | ||
497 | 507 | ||
498 | # | 508 | # |
499 | # I2C support | 509 | # I2C support |
@@ -518,8 +528,8 @@ CONFIG_I2C_ALGOBIT=y | |||
518 | CONFIG_I2C_AMD8111=y | 528 | CONFIG_I2C_AMD8111=y |
519 | # CONFIG_I2C_I801 is not set | 529 | # CONFIG_I2C_I801 is not set |
520 | # CONFIG_I2C_I810 is not set | 530 | # CONFIG_I2C_I810 is not set |
531 | # CONFIG_I2C_PIIX4 is not set | ||
521 | # CONFIG_I2C_ISA is not set | 532 | # CONFIG_I2C_ISA is not set |
522 | # CONFIG_I2C_MPC is not set | ||
523 | # CONFIG_I2C_NFORCE2 is not set | 533 | # CONFIG_I2C_NFORCE2 is not set |
524 | # CONFIG_I2C_PARPORT_LIGHT is not set | 534 | # CONFIG_I2C_PARPORT_LIGHT is not set |
525 | # CONFIG_I2C_PROSAVAGE is not set | 535 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -545,7 +555,9 @@ CONFIG_I2C_AMD8111=y | |||
545 | # CONFIG_SENSORS_ASB100 is not set | 555 | # CONFIG_SENSORS_ASB100 is not set |
546 | # CONFIG_SENSORS_DS1621 is not set | 556 | # CONFIG_SENSORS_DS1621 is not set |
547 | # CONFIG_SENSORS_FSCHER is not set | 557 | # CONFIG_SENSORS_FSCHER is not set |
558 | # CONFIG_SENSORS_FSCPOS is not set | ||
548 | # CONFIG_SENSORS_GL518SM is not set | 559 | # CONFIG_SENSORS_GL518SM is not set |
560 | # CONFIG_SENSORS_GL520SM is not set | ||
549 | # CONFIG_SENSORS_IT87 is not set | 561 | # CONFIG_SENSORS_IT87 is not set |
550 | # CONFIG_SENSORS_LM63 is not set | 562 | # CONFIG_SENSORS_LM63 is not set |
551 | # CONFIG_SENSORS_LM75 is not set | 563 | # CONFIG_SENSORS_LM75 is not set |
@@ -556,9 +568,11 @@ CONFIG_I2C_AMD8111=y | |||
556 | # CONFIG_SENSORS_LM85 is not set | 568 | # CONFIG_SENSORS_LM85 is not set |
557 | # CONFIG_SENSORS_LM87 is not set | 569 | # CONFIG_SENSORS_LM87 is not set |
558 | # CONFIG_SENSORS_LM90 is not set | 570 | # CONFIG_SENSORS_LM90 is not set |
571 | # CONFIG_SENSORS_LM92 is not set | ||
559 | # CONFIG_SENSORS_MAX1619 is not set | 572 | # CONFIG_SENSORS_MAX1619 is not set |
560 | # CONFIG_SENSORS_PC87360 is not set | 573 | # CONFIG_SENSORS_PC87360 is not set |
561 | # CONFIG_SENSORS_SMSC47B397 is not set | 574 | # CONFIG_SENSORS_SMSC47B397 is not set |
575 | # CONFIG_SENSORS_SIS5595 is not set | ||
562 | # CONFIG_SENSORS_SMSC47M1 is not set | 576 | # CONFIG_SENSORS_SMSC47M1 is not set |
563 | # CONFIG_SENSORS_VIA686A is not set | 577 | # CONFIG_SENSORS_VIA686A is not set |
564 | # CONFIG_SENSORS_W83781D is not set | 578 | # CONFIG_SENSORS_W83781D is not set |
@@ -568,6 +582,7 @@ CONFIG_I2C_AMD8111=y | |||
568 | # | 582 | # |
569 | # Other I2C Chip support | 583 | # Other I2C Chip support |
570 | # | 584 | # |
585 | # CONFIG_SENSORS_DS1337 is not set | ||
571 | # CONFIG_SENSORS_EEPROM is not set | 586 | # CONFIG_SENSORS_EEPROM is not set |
572 | # CONFIG_SENSORS_PCF8574 is not set | 587 | # CONFIG_SENSORS_PCF8574 is not set |
573 | # CONFIG_SENSORS_PCF8591 is not set | 588 | # CONFIG_SENSORS_PCF8591 is not set |
@@ -615,6 +630,8 @@ CONFIG_DUMMY_CONSOLE=y | |||
615 | # | 630 | # |
616 | # USB support | 631 | # USB support |
617 | # | 632 | # |
633 | CONFIG_USB_ARCH_HAS_HCD=y | ||
634 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
618 | CONFIG_USB=y | 635 | CONFIG_USB=y |
619 | # CONFIG_USB_DEBUG is not set | 636 | # CONFIG_USB_DEBUG is not set |
620 | 637 | ||
@@ -625,8 +642,6 @@ CONFIG_USB_DEVICEFS=y | |||
625 | # CONFIG_USB_BANDWIDTH is not set | 642 | # CONFIG_USB_BANDWIDTH is not set |
626 | # CONFIG_USB_DYNAMIC_MINORS is not set | 643 | # CONFIG_USB_DYNAMIC_MINORS is not set |
627 | # CONFIG_USB_OTG is not set | 644 | # CONFIG_USB_OTG is not set |
628 | CONFIG_USB_ARCH_HAS_HCD=y | ||
629 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
630 | 645 | ||
631 | # | 646 | # |
632 | # USB Host Controller Drivers | 647 | # USB Host Controller Drivers |
@@ -635,6 +650,8 @@ CONFIG_USB_EHCI_HCD=y | |||
635 | CONFIG_USB_EHCI_SPLIT_ISO=y | 650 | CONFIG_USB_EHCI_SPLIT_ISO=y |
636 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 651 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
637 | CONFIG_USB_OHCI_HCD=y | 652 | CONFIG_USB_OHCI_HCD=y |
653 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
654 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
638 | CONFIG_USB_UHCI_HCD=y | 655 | CONFIG_USB_UHCI_HCD=y |
639 | # CONFIG_USB_SL811_HCD is not set | 656 | # CONFIG_USB_SL811_HCD is not set |
640 | 657 | ||
@@ -688,6 +705,7 @@ CONFIG_USB_HIDINPUT=y | |||
688 | CONFIG_USB_PEGASUS=y | 705 | CONFIG_USB_PEGASUS=y |
689 | # CONFIG_USB_RTL8150 is not set | 706 | # CONFIG_USB_RTL8150 is not set |
690 | # CONFIG_USB_USBNET is not set | 707 | # CONFIG_USB_USBNET is not set |
708 | CONFIG_USB_MON=y | ||
691 | 709 | ||
692 | # | 710 | # |
693 | # USB port drivers | 711 | # USB port drivers |
@@ -699,8 +717,10 @@ CONFIG_USB_PEGASUS=y | |||
699 | CONFIG_USB_SERIAL=y | 717 | CONFIG_USB_SERIAL=y |
700 | # CONFIG_USB_SERIAL_CONSOLE is not set | 718 | # CONFIG_USB_SERIAL_CONSOLE is not set |
701 | CONFIG_USB_SERIAL_GENERIC=y | 719 | CONFIG_USB_SERIAL_GENERIC=y |
720 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
702 | # CONFIG_USB_SERIAL_BELKIN is not set | 721 | # CONFIG_USB_SERIAL_BELKIN is not set |
703 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set | 722 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set |
723 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
704 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 724 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
705 | # CONFIG_USB_SERIAL_EMPEG is not set | 725 | # CONFIG_USB_SERIAL_EMPEG is not set |
706 | # CONFIG_USB_SERIAL_FTDI_SIO is not set | 726 | # CONFIG_USB_SERIAL_FTDI_SIO is not set |
@@ -729,6 +749,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y | |||
729 | # CONFIG_USB_SERIAL_KOBIL_SCT is not set | 749 | # CONFIG_USB_SERIAL_KOBIL_SCT is not set |
730 | # CONFIG_USB_SERIAL_MCT_U232 is not set | 750 | # CONFIG_USB_SERIAL_MCT_U232 is not set |
731 | # CONFIG_USB_SERIAL_PL2303 is not set | 751 | # CONFIG_USB_SERIAL_PL2303 is not set |
752 | # CONFIG_USB_SERIAL_HP4X is not set | ||
732 | # CONFIG_USB_SERIAL_SAFE is not set | 753 | # CONFIG_USB_SERIAL_SAFE is not set |
733 | CONFIG_USB_SERIAL_TI=m | 754 | CONFIG_USB_SERIAL_TI=m |
734 | # CONFIG_USB_SERIAL_CYBERJACK is not set | 755 | # CONFIG_USB_SERIAL_CYBERJACK is not set |
@@ -750,6 +771,7 @@ CONFIG_USB_EZUSB=y | |||
750 | # CONFIG_USB_PHIDGETKIT is not set | 771 | # CONFIG_USB_PHIDGETKIT is not set |
751 | # CONFIG_USB_PHIDGETSERVO is not set | 772 | # CONFIG_USB_PHIDGETSERVO is not set |
752 | # CONFIG_USB_IDMOUSE is not set | 773 | # CONFIG_USB_IDMOUSE is not set |
774 | # CONFIG_USB_SISUSBVGA is not set | ||
753 | # CONFIG_USB_TEST is not set | 775 | # CONFIG_USB_TEST is not set |
754 | 776 | ||
755 | # | 777 | # |
@@ -936,10 +958,13 @@ CONFIG_NLS_UTF8=y | |||
936 | # | 958 | # |
937 | # Kernel hacking | 959 | # Kernel hacking |
938 | # | 960 | # |
961 | # CONFIG_PRINTK_TIME is not set | ||
939 | CONFIG_DEBUG_KERNEL=y | 962 | CONFIG_DEBUG_KERNEL=y |
940 | CONFIG_MAGIC_SYSRQ=y | 963 | CONFIG_MAGIC_SYSRQ=y |
964 | CONFIG_LOG_BUF_SHIFT=17 | ||
941 | # CONFIG_SCHEDSTATS is not set | 965 | # CONFIG_SCHEDSTATS is not set |
942 | CONFIG_DEBUG_SLAB=y | 966 | CONFIG_DEBUG_SLAB=y |
967 | # CONFIG_DEBUG_SPINLOCK is not set | ||
943 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | 968 | CONFIG_DEBUG_SPINLOCK_SLEEP=y |
944 | # CONFIG_DEBUG_KOBJECT is not set | 969 | # CONFIG_DEBUG_KOBJECT is not set |
945 | # CONFIG_DEBUG_INFO is not set | 970 | # CONFIG_DEBUG_INFO is not set |
@@ -971,6 +996,7 @@ CONFIG_CRYPTO_MD5=y | |||
971 | # CONFIG_CRYPTO_SHA256 is not set | 996 | # CONFIG_CRYPTO_SHA256 is not set |
972 | # CONFIG_CRYPTO_SHA512 is not set | 997 | # CONFIG_CRYPTO_SHA512 is not set |
973 | # CONFIG_CRYPTO_WP512 is not set | 998 | # CONFIG_CRYPTO_WP512 is not set |
999 | # CONFIG_CRYPTO_TGR192 is not set | ||
974 | CONFIG_CRYPTO_DES=y | 1000 | CONFIG_CRYPTO_DES=y |
975 | # CONFIG_CRYPTO_BLOWFISH is not set | 1001 | # CONFIG_CRYPTO_BLOWFISH is not set |
976 | # CONFIG_CRYPTO_TWOFISH is not set | 1002 | # CONFIG_CRYPTO_TWOFISH is not set |
diff --git a/arch/ppc64/configs/pSeries_defconfig b/arch/ppc64/configs/pSeries_defconfig index 4fecf237d5c9..3eb5ef25d3a3 100644 --- a/arch/ppc64/configs/pSeries_defconfig +++ b/arch/ppc64/configs/pSeries_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11-rc3-bk6 | 3 | # Linux kernel version: 2.6.12-rc6 |
4 | # Wed Feb 9 23:34:54 2005 | 4 | # Tue Jun 14 17:13:47 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -11,7 +11,7 @@ CONFIG_GENERIC_ISA_DMA=y | |||
11 | CONFIG_HAVE_DEC_LOCK=y | 11 | CONFIG_HAVE_DEC_LOCK=y |
12 | CONFIG_EARLY_PRINTK=y | 12 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 13 | CONFIG_COMPAT=y |
14 | CONFIG_FRAME_POINTER=y | 14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -20,6 +20,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
20 | CONFIG_EXPERIMENTAL=y | 20 | CONFIG_EXPERIMENTAL=y |
21 | CONFIG_CLEAN_COMPILE=y | 21 | CONFIG_CLEAN_COMPILE=y |
22 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
23 | 24 | ||
24 | # | 25 | # |
25 | # General setup | 26 | # General setup |
@@ -30,24 +31,29 @@ CONFIG_SYSVIPC=y | |||
30 | CONFIG_POSIX_MQUEUE=y | 31 | CONFIG_POSIX_MQUEUE=y |
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
33 | CONFIG_LOG_BUF_SHIFT=17 | 34 | CONFIG_AUDIT=y |
35 | CONFIG_AUDITSYSCALL=y | ||
34 | CONFIG_HOTPLUG=y | 36 | CONFIG_HOTPLUG=y |
35 | CONFIG_KOBJECT_UEVENT=y | 37 | CONFIG_KOBJECT_UEVENT=y |
36 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
37 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
40 | CONFIG_CPUSETS=y | ||
38 | # CONFIG_EMBEDDED is not set | 41 | # CONFIG_EMBEDDED is not set |
39 | CONFIG_KALLSYMS=y | 42 | CONFIG_KALLSYMS=y |
40 | CONFIG_KALLSYMS_ALL=y | 43 | CONFIG_KALLSYMS_ALL=y |
41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 44 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
45 | CONFIG_PRINTK=y | ||
46 | CONFIG_BUG=y | ||
47 | CONFIG_BASE_FULL=y | ||
42 | CONFIG_FUTEX=y | 48 | CONFIG_FUTEX=y |
43 | CONFIG_EPOLL=y | 49 | CONFIG_EPOLL=y |
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SHMEM=y | 50 | CONFIG_SHMEM=y |
46 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 51 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
47 | CONFIG_CC_ALIGN_LABELS=0 | 52 | CONFIG_CC_ALIGN_LABELS=0 |
48 | CONFIG_CC_ALIGN_LOOPS=0 | 53 | CONFIG_CC_ALIGN_LOOPS=0 |
49 | CONFIG_CC_ALIGN_JUMPS=0 | 54 | CONFIG_CC_ALIGN_JUMPS=0 |
50 | # CONFIG_TINY_SHMEM is not set | 55 | # CONFIG_TINY_SHMEM is not set |
56 | CONFIG_BASE_SMALL=0 | ||
51 | 57 | ||
52 | # | 58 | # |
53 | # Loadable module support | 59 | # Loadable module support |
@@ -89,9 +95,12 @@ CONFIG_SCHED_SMT=y | |||
89 | CONFIG_EEH=y | 95 | CONFIG_EEH=y |
90 | CONFIG_GENERIC_HARDIRQS=y | 96 | CONFIG_GENERIC_HARDIRQS=y |
91 | CONFIG_PPC_RTAS=y | 97 | CONFIG_PPC_RTAS=y |
98 | CONFIG_RTAS_PROC=y | ||
92 | CONFIG_RTAS_FLASH=m | 99 | CONFIG_RTAS_FLASH=m |
93 | CONFIG_SCANLOG=m | 100 | CONFIG_SCANLOG=m |
94 | CONFIG_LPARCFG=y | 101 | CONFIG_LPARCFG=y |
102 | CONFIG_SECCOMP=y | ||
103 | CONFIG_ISA_DMA_API=y | ||
95 | 104 | ||
96 | # | 105 | # |
97 | # General setup | 106 | # General setup |
@@ -102,6 +111,7 @@ CONFIG_BINFMT_ELF=y | |||
102 | # CONFIG_BINFMT_MISC is not set | 111 | # CONFIG_BINFMT_MISC is not set |
103 | CONFIG_PCI_LEGACY_PROC=y | 112 | CONFIG_PCI_LEGACY_PROC=y |
104 | CONFIG_PCI_NAMES=y | 113 | CONFIG_PCI_NAMES=y |
114 | # CONFIG_PCI_DEBUG is not set | ||
105 | CONFIG_HOTPLUG_CPU=y | 115 | CONFIG_HOTPLUG_CPU=y |
106 | 116 | ||
107 | # | 117 | # |
@@ -110,10 +120,6 @@ CONFIG_HOTPLUG_CPU=y | |||
110 | # CONFIG_PCCARD is not set | 120 | # CONFIG_PCCARD is not set |
111 | 121 | ||
112 | # | 122 | # |
113 | # PC-card bridges | ||
114 | # | ||
115 | |||
116 | # | ||
117 | # PCI Hotplug Support | 123 | # PCI Hotplug Support |
118 | # | 124 | # |
119 | CONFIG_HOTPLUG_PCI=m | 125 | CONFIG_HOTPLUG_PCI=m |
@@ -147,11 +153,10 @@ CONFIG_FW_LOADER=y | |||
147 | # | 153 | # |
148 | CONFIG_PARPORT=m | 154 | CONFIG_PARPORT=m |
149 | CONFIG_PARPORT_PC=m | 155 | CONFIG_PARPORT_PC=m |
150 | CONFIG_PARPORT_PC_CML1=m | ||
151 | # CONFIG_PARPORT_SERIAL is not set | 156 | # CONFIG_PARPORT_SERIAL is not set |
152 | # CONFIG_PARPORT_PC_FIFO is not set | 157 | # CONFIG_PARPORT_PC_FIFO is not set |
153 | # CONFIG_PARPORT_PC_SUPERIO is not set | 158 | # CONFIG_PARPORT_PC_SUPERIO is not set |
154 | # CONFIG_PARPORT_OTHER is not set | 159 | # CONFIG_PARPORT_GSC is not set |
155 | # CONFIG_PARPORT_1284 is not set | 160 | # CONFIG_PARPORT_1284 is not set |
156 | 161 | ||
157 | # | 162 | # |
@@ -293,7 +298,6 @@ CONFIG_SCSI_ISCSI_ATTRS=m | |||
293 | # CONFIG_SCSI_BUSLOGIC is not set | 298 | # CONFIG_SCSI_BUSLOGIC is not set |
294 | # CONFIG_SCSI_DMX3191D is not set | 299 | # CONFIG_SCSI_DMX3191D is not set |
295 | # CONFIG_SCSI_EATA is not set | 300 | # CONFIG_SCSI_EATA is not set |
296 | # CONFIG_SCSI_EATA_PIO is not set | ||
297 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 301 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
298 | # CONFIG_SCSI_GDTH is not set | 302 | # CONFIG_SCSI_GDTH is not set |
299 | # CONFIG_SCSI_IPS is not set | 303 | # CONFIG_SCSI_IPS is not set |
@@ -310,7 +314,6 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
310 | CONFIG_SCSI_IPR=y | 314 | CONFIG_SCSI_IPR=y |
311 | CONFIG_SCSI_IPR_TRACE=y | 315 | CONFIG_SCSI_IPR_TRACE=y |
312 | CONFIG_SCSI_IPR_DUMP=y | 316 | CONFIG_SCSI_IPR_DUMP=y |
313 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
314 | # CONFIG_SCSI_QLOGIC_FC is not set | 317 | # CONFIG_SCSI_QLOGIC_FC is not set |
315 | # CONFIG_SCSI_QLOGIC_1280 is not set | 318 | # CONFIG_SCSI_QLOGIC_1280 is not set |
316 | CONFIG_SCSI_QLA2XXX=y | 319 | CONFIG_SCSI_QLA2XXX=y |
@@ -319,6 +322,7 @@ CONFIG_SCSI_QLA22XX=m | |||
319 | CONFIG_SCSI_QLA2300=m | 322 | CONFIG_SCSI_QLA2300=m |
320 | CONFIG_SCSI_QLA2322=m | 323 | CONFIG_SCSI_QLA2322=m |
321 | CONFIG_SCSI_QLA6312=m | 324 | CONFIG_SCSI_QLA6312=m |
325 | CONFIG_SCSI_LPFC=m | ||
322 | # CONFIG_SCSI_DC395x is not set | 326 | # CONFIG_SCSI_DC395x is not set |
323 | # CONFIG_SCSI_DC390T is not set | 327 | # CONFIG_SCSI_DC390T is not set |
324 | # CONFIG_SCSI_DEBUG is not set | 328 | # CONFIG_SCSI_DEBUG is not set |
@@ -341,6 +345,8 @@ CONFIG_DM_CRYPT=m | |||
341 | CONFIG_DM_SNAPSHOT=m | 345 | CONFIG_DM_SNAPSHOT=m |
342 | CONFIG_DM_MIRROR=m | 346 | CONFIG_DM_MIRROR=m |
343 | CONFIG_DM_ZERO=m | 347 | CONFIG_DM_ZERO=m |
348 | CONFIG_DM_MULTIPATH=m | ||
349 | CONFIG_DM_MULTIPATH_EMC=m | ||
344 | 350 | ||
345 | # | 351 | # |
346 | # Fusion MPT device support | 352 | # Fusion MPT device support |
@@ -371,7 +377,6 @@ CONFIG_NET=y | |||
371 | # | 377 | # |
372 | CONFIG_PACKET=y | 378 | CONFIG_PACKET=y |
373 | # CONFIG_PACKET_MMAP is not set | 379 | # CONFIG_PACKET_MMAP is not set |
374 | # CONFIG_NETLINK_DEV is not set | ||
375 | CONFIG_UNIX=y | 380 | CONFIG_UNIX=y |
376 | CONFIG_NET_KEY=m | 381 | CONFIG_NET_KEY=m |
377 | CONFIG_INET=y | 382 | CONFIG_INET=y |
@@ -539,7 +544,6 @@ CONFIG_PCNET32=y | |||
539 | # CONFIG_DGRS is not set | 544 | # CONFIG_DGRS is not set |
540 | # CONFIG_EEPRO100 is not set | 545 | # CONFIG_EEPRO100 is not set |
541 | CONFIG_E100=y | 546 | CONFIG_E100=y |
542 | # CONFIG_E100_NAPI is not set | ||
543 | # CONFIG_FEALNX is not set | 547 | # CONFIG_FEALNX is not set |
544 | # CONFIG_NATSEMI is not set | 548 | # CONFIG_NATSEMI is not set |
545 | # CONFIG_NE2K_PCI is not set | 549 | # CONFIG_NE2K_PCI is not set |
@@ -565,6 +569,8 @@ CONFIG_E1000=y | |||
565 | # CONFIG_SK98LIN is not set | 569 | # CONFIG_SK98LIN is not set |
566 | # CONFIG_VIA_VELOCITY is not set | 570 | # CONFIG_VIA_VELOCITY is not set |
567 | CONFIG_TIGON3=y | 571 | CONFIG_TIGON3=y |
572 | # CONFIG_BNX2 is not set | ||
573 | # CONFIG_MV643XX_ETH is not set | ||
568 | 574 | ||
569 | # | 575 | # |
570 | # Ethernet (10000 Mbit) | 576 | # Ethernet (10000 Mbit) |
@@ -636,20 +642,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
636 | # CONFIG_INPUT_EVBUG is not set | 642 | # CONFIG_INPUT_EVBUG is not set |
637 | 643 | ||
638 | # | 644 | # |
639 | # Input I/O drivers | ||
640 | # | ||
641 | # CONFIG_GAMEPORT is not set | ||
642 | CONFIG_SOUND_GAMEPORT=y | ||
643 | CONFIG_SERIO=y | ||
644 | CONFIG_SERIO_I8042=y | ||
645 | # CONFIG_SERIO_SERPORT is not set | ||
646 | # CONFIG_SERIO_CT82C710 is not set | ||
647 | # CONFIG_SERIO_PARKBD is not set | ||
648 | # CONFIG_SERIO_PCIPS2 is not set | ||
649 | CONFIG_SERIO_LIBPS2=y | ||
650 | # CONFIG_SERIO_RAW is not set | ||
651 | |||
652 | # | ||
653 | # Input Device Drivers | 645 | # Input Device Drivers |
654 | # | 646 | # |
655 | CONFIG_INPUT_KEYBOARD=y | 647 | CONFIG_INPUT_KEYBOARD=y |
@@ -669,6 +661,18 @@ CONFIG_INPUT_PCSPKR=m | |||
669 | # CONFIG_INPUT_UINPUT is not set | 661 | # CONFIG_INPUT_UINPUT is not set |
670 | 662 | ||
671 | # | 663 | # |
664 | # Hardware I/O ports | ||
665 | # | ||
666 | CONFIG_SERIO=y | ||
667 | CONFIG_SERIO_I8042=y | ||
668 | # CONFIG_SERIO_SERPORT is not set | ||
669 | # CONFIG_SERIO_PARKBD is not set | ||
670 | # CONFIG_SERIO_PCIPS2 is not set | ||
671 | CONFIG_SERIO_LIBPS2=y | ||
672 | # CONFIG_SERIO_RAW is not set | ||
673 | # CONFIG_GAMEPORT is not set | ||
674 | |||
675 | # | ||
672 | # Character devices | 676 | # Character devices |
673 | # | 677 | # |
674 | CONFIG_VT=y | 678 | CONFIG_VT=y |
@@ -689,8 +693,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4 | |||
689 | # | 693 | # |
690 | CONFIG_SERIAL_CORE=y | 694 | CONFIG_SERIAL_CORE=y |
691 | CONFIG_SERIAL_CORE_CONSOLE=y | 695 | CONFIG_SERIAL_CORE_CONSOLE=y |
692 | # CONFIG_SERIAL_PMACZILOG is not set | ||
693 | CONFIG_SERIAL_ICOM=m | 696 | CONFIG_SERIAL_ICOM=m |
697 | # CONFIG_SERIAL_JSM is not set | ||
694 | CONFIG_UNIX98_PTYS=y | 698 | CONFIG_UNIX98_PTYS=y |
695 | CONFIG_LEGACY_PTYS=y | 699 | CONFIG_LEGACY_PTYS=y |
696 | CONFIG_LEGACY_PTY_COUNT=256 | 700 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -718,9 +722,16 @@ CONFIG_HVCS=m | |||
718 | # | 722 | # |
719 | # Ftape, the floppy tape device driver | 723 | # Ftape, the floppy tape device driver |
720 | # | 724 | # |
725 | # CONFIG_AGP is not set | ||
721 | # CONFIG_DRM is not set | 726 | # CONFIG_DRM is not set |
722 | CONFIG_RAW_DRIVER=y | 727 | CONFIG_RAW_DRIVER=y |
723 | CONFIG_MAX_RAW_DEVS=1024 | 728 | CONFIG_MAX_RAW_DEVS=1024 |
729 | # CONFIG_HANGCHECK_TIMER is not set | ||
730 | |||
731 | # | ||
732 | # TPM devices | ||
733 | # | ||
734 | # CONFIG_TCG_TPM is not set | ||
724 | 735 | ||
725 | # | 736 | # |
726 | # I2C support | 737 | # I2C support |
@@ -745,8 +756,8 @@ CONFIG_I2C_ALGOBIT=y | |||
745 | # CONFIG_I2C_AMD8111 is not set | 756 | # CONFIG_I2C_AMD8111 is not set |
746 | # CONFIG_I2C_I801 is not set | 757 | # CONFIG_I2C_I801 is not set |
747 | # CONFIG_I2C_I810 is not set | 758 | # CONFIG_I2C_I810 is not set |
759 | # CONFIG_I2C_PIIX4 is not set | ||
748 | # CONFIG_I2C_ISA is not set | 760 | # CONFIG_I2C_ISA is not set |
749 | # CONFIG_I2C_MPC is not set | ||
750 | # CONFIG_I2C_NFORCE2 is not set | 761 | # CONFIG_I2C_NFORCE2 is not set |
751 | # CONFIG_I2C_PARPORT is not set | 762 | # CONFIG_I2C_PARPORT is not set |
752 | # CONFIG_I2C_PARPORT_LIGHT is not set | 763 | # CONFIG_I2C_PARPORT_LIGHT is not set |
@@ -773,7 +784,9 @@ CONFIG_I2C_ALGOBIT=y | |||
773 | # CONFIG_SENSORS_ASB100 is not set | 784 | # CONFIG_SENSORS_ASB100 is not set |
774 | # CONFIG_SENSORS_DS1621 is not set | 785 | # CONFIG_SENSORS_DS1621 is not set |
775 | # CONFIG_SENSORS_FSCHER is not set | 786 | # CONFIG_SENSORS_FSCHER is not set |
787 | # CONFIG_SENSORS_FSCPOS is not set | ||
776 | # CONFIG_SENSORS_GL518SM is not set | 788 | # CONFIG_SENSORS_GL518SM is not set |
789 | # CONFIG_SENSORS_GL520SM is not set | ||
777 | # CONFIG_SENSORS_IT87 is not set | 790 | # CONFIG_SENSORS_IT87 is not set |
778 | # CONFIG_SENSORS_LM63 is not set | 791 | # CONFIG_SENSORS_LM63 is not set |
779 | # CONFIG_SENSORS_LM75 is not set | 792 | # CONFIG_SENSORS_LM75 is not set |
@@ -784,9 +797,11 @@ CONFIG_I2C_ALGOBIT=y | |||
784 | # CONFIG_SENSORS_LM85 is not set | 797 | # CONFIG_SENSORS_LM85 is not set |
785 | # CONFIG_SENSORS_LM87 is not set | 798 | # CONFIG_SENSORS_LM87 is not set |
786 | # CONFIG_SENSORS_LM90 is not set | 799 | # CONFIG_SENSORS_LM90 is not set |
800 | # CONFIG_SENSORS_LM92 is not set | ||
787 | # CONFIG_SENSORS_MAX1619 is not set | 801 | # CONFIG_SENSORS_MAX1619 is not set |
788 | # CONFIG_SENSORS_PC87360 is not set | 802 | # CONFIG_SENSORS_PC87360 is not set |
789 | # CONFIG_SENSORS_SMSC47B397 is not set | 803 | # CONFIG_SENSORS_SMSC47B397 is not set |
804 | # CONFIG_SENSORS_SIS5595 is not set | ||
790 | # CONFIG_SENSORS_SMSC47M1 is not set | 805 | # CONFIG_SENSORS_SMSC47M1 is not set |
791 | # CONFIG_SENSORS_VIA686A is not set | 806 | # CONFIG_SENSORS_VIA686A is not set |
792 | # CONFIG_SENSORS_W83781D is not set | 807 | # CONFIG_SENSORS_W83781D is not set |
@@ -796,6 +811,7 @@ CONFIG_I2C_ALGOBIT=y | |||
796 | # | 811 | # |
797 | # Other I2C Chip support | 812 | # Other I2C Chip support |
798 | # | 813 | # |
814 | # CONFIG_SENSORS_DS1337 is not set | ||
799 | # CONFIG_SENSORS_EEPROM is not set | 815 | # CONFIG_SENSORS_EEPROM is not set |
800 | # CONFIG_SENSORS_PCF8574 is not set | 816 | # CONFIG_SENSORS_PCF8574 is not set |
801 | # CONFIG_SENSORS_PCF8591 is not set | 817 | # CONFIG_SENSORS_PCF8591 is not set |
@@ -828,8 +844,13 @@ CONFIG_I2C_ALGOBIT=y | |||
828 | # Graphics support | 844 | # Graphics support |
829 | # | 845 | # |
830 | CONFIG_FB=y | 846 | CONFIG_FB=y |
847 | CONFIG_FB_CFB_FILLRECT=y | ||
848 | CONFIG_FB_CFB_COPYAREA=y | ||
849 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
850 | CONFIG_FB_SOFT_CURSOR=y | ||
851 | CONFIG_FB_MACMODES=y | ||
831 | CONFIG_FB_MODE_HELPERS=y | 852 | CONFIG_FB_MODE_HELPERS=y |
832 | # CONFIG_FB_TILEBLITTING is not set | 853 | CONFIG_FB_TILEBLITTING=y |
833 | # CONFIG_FB_CIRRUS is not set | 854 | # CONFIG_FB_CIRRUS is not set |
834 | # CONFIG_FB_PM2 is not set | 855 | # CONFIG_FB_PM2 is not set |
835 | # CONFIG_FB_CYBER2000 is not set | 856 | # CONFIG_FB_CYBER2000 is not set |
@@ -838,6 +859,7 @@ CONFIG_FB_OF=y | |||
838 | # CONFIG_FB_ASILIANT is not set | 859 | # CONFIG_FB_ASILIANT is not set |
839 | # CONFIG_FB_IMSTT is not set | 860 | # CONFIG_FB_IMSTT is not set |
840 | # CONFIG_FB_VGA16 is not set | 861 | # CONFIG_FB_VGA16 is not set |
862 | # CONFIG_FB_NVIDIA is not set | ||
841 | # CONFIG_FB_RIVA is not set | 863 | # CONFIG_FB_RIVA is not set |
842 | CONFIG_FB_MATROX=y | 864 | CONFIG_FB_MATROX=y |
843 | CONFIG_FB_MATROX_MILLENIUM=y | 865 | CONFIG_FB_MATROX_MILLENIUM=y |
@@ -858,6 +880,7 @@ CONFIG_FB_RADEON_I2C=y | |||
858 | # CONFIG_FB_3DFX is not set | 880 | # CONFIG_FB_3DFX is not set |
859 | # CONFIG_FB_VOODOO1 is not set | 881 | # CONFIG_FB_VOODOO1 is not set |
860 | # CONFIG_FB_TRIDENT is not set | 882 | # CONFIG_FB_TRIDENT is not set |
883 | # CONFIG_FB_S1D13XXX is not set | ||
861 | # CONFIG_FB_VIRTUAL is not set | 884 | # CONFIG_FB_VIRTUAL is not set |
862 | 885 | ||
863 | # | 886 | # |
@@ -891,6 +914,8 @@ CONFIG_LCD_DEVICE=y | |||
891 | # | 914 | # |
892 | # USB support | 915 | # USB support |
893 | # | 916 | # |
917 | CONFIG_USB_ARCH_HAS_HCD=y | ||
918 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
894 | CONFIG_USB=y | 919 | CONFIG_USB=y |
895 | # CONFIG_USB_DEBUG is not set | 920 | # CONFIG_USB_DEBUG is not set |
896 | 921 | ||
@@ -901,8 +926,6 @@ CONFIG_USB_DEVICEFS=y | |||
901 | # CONFIG_USB_BANDWIDTH is not set | 926 | # CONFIG_USB_BANDWIDTH is not set |
902 | # CONFIG_USB_DYNAMIC_MINORS is not set | 927 | # CONFIG_USB_DYNAMIC_MINORS is not set |
903 | # CONFIG_USB_OTG is not set | 928 | # CONFIG_USB_OTG is not set |
904 | CONFIG_USB_ARCH_HAS_HCD=y | ||
905 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
906 | 929 | ||
907 | # | 930 | # |
908 | # USB Host Controller Drivers | 931 | # USB Host Controller Drivers |
@@ -911,6 +934,8 @@ CONFIG_USB_EHCI_HCD=y | |||
911 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 934 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
912 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 935 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
913 | CONFIG_USB_OHCI_HCD=y | 936 | CONFIG_USB_OHCI_HCD=y |
937 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
938 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
914 | # CONFIG_USB_UHCI_HCD is not set | 939 | # CONFIG_USB_UHCI_HCD is not set |
915 | # CONFIG_USB_SL811_HCD is not set | 940 | # CONFIG_USB_SL811_HCD is not set |
916 | 941 | ||
@@ -926,12 +951,11 @@ CONFIG_USB_OHCI_HCD=y | |||
926 | # | 951 | # |
927 | CONFIG_USB_STORAGE=y | 952 | CONFIG_USB_STORAGE=y |
928 | # CONFIG_USB_STORAGE_DEBUG is not set | 953 | # CONFIG_USB_STORAGE_DEBUG is not set |
929 | # CONFIG_USB_STORAGE_RW_DETECT is not set | ||
930 | # CONFIG_USB_STORAGE_DATAFAB is not set | 954 | # CONFIG_USB_STORAGE_DATAFAB is not set |
931 | # CONFIG_USB_STORAGE_FREECOM is not set | 955 | # CONFIG_USB_STORAGE_FREECOM is not set |
932 | # CONFIG_USB_STORAGE_ISD200 is not set | 956 | # CONFIG_USB_STORAGE_ISD200 is not set |
933 | # CONFIG_USB_STORAGE_DPCM is not set | 957 | # CONFIG_USB_STORAGE_DPCM is not set |
934 | # CONFIG_USB_STORAGE_HP8200e is not set | 958 | # CONFIG_USB_STORAGE_USBAT is not set |
935 | # CONFIG_USB_STORAGE_SDDR09 is not set | 959 | # CONFIG_USB_STORAGE_SDDR09 is not set |
936 | # CONFIG_USB_STORAGE_SDDR55 is not set | 960 | # CONFIG_USB_STORAGE_SDDR55 is not set |
937 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 961 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
@@ -975,6 +999,7 @@ CONFIG_USB_HIDDEV=y | |||
975 | # CONFIG_USB_PEGASUS is not set | 999 | # CONFIG_USB_PEGASUS is not set |
976 | # CONFIG_USB_RTL8150 is not set | 1000 | # CONFIG_USB_RTL8150 is not set |
977 | # CONFIG_USB_USBNET is not set | 1001 | # CONFIG_USB_USBNET is not set |
1002 | CONFIG_USB_MON=y | ||
978 | 1003 | ||
979 | # | 1004 | # |
980 | # USB port drivers | 1005 | # USB port drivers |
@@ -1000,6 +1025,7 @@ CONFIG_USB_HIDDEV=y | |||
1000 | # CONFIG_USB_PHIDGETKIT is not set | 1025 | # CONFIG_USB_PHIDGETKIT is not set |
1001 | # CONFIG_USB_PHIDGETSERVO is not set | 1026 | # CONFIG_USB_PHIDGETSERVO is not set |
1002 | # CONFIG_USB_IDMOUSE is not set | 1027 | # CONFIG_USB_IDMOUSE is not set |
1028 | # CONFIG_USB_SISUSBVGA is not set | ||
1003 | # CONFIG_USB_TEST is not set | 1029 | # CONFIG_USB_TEST is not set |
1004 | 1030 | ||
1005 | # | 1031 | # |
@@ -1208,10 +1234,13 @@ CONFIG_OPROFILE=y | |||
1208 | # | 1234 | # |
1209 | # Kernel hacking | 1235 | # Kernel hacking |
1210 | # | 1236 | # |
1237 | # CONFIG_PRINTK_TIME is not set | ||
1211 | CONFIG_DEBUG_KERNEL=y | 1238 | CONFIG_DEBUG_KERNEL=y |
1212 | CONFIG_MAGIC_SYSRQ=y | 1239 | CONFIG_MAGIC_SYSRQ=y |
1240 | CONFIG_LOG_BUF_SHIFT=17 | ||
1213 | # CONFIG_SCHEDSTATS is not set | 1241 | # CONFIG_SCHEDSTATS is not set |
1214 | # CONFIG_DEBUG_SLAB is not set | 1242 | # CONFIG_DEBUG_SLAB is not set |
1243 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1215 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1244 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1216 | # CONFIG_DEBUG_KOBJECT is not set | 1245 | # CONFIG_DEBUG_KOBJECT is not set |
1217 | # CONFIG_DEBUG_INFO is not set | 1246 | # CONFIG_DEBUG_INFO is not set |
@@ -1243,6 +1272,7 @@ CONFIG_CRYPTO_SHA1=m | |||
1243 | CONFIG_CRYPTO_SHA256=m | 1272 | CONFIG_CRYPTO_SHA256=m |
1244 | CONFIG_CRYPTO_SHA512=m | 1273 | CONFIG_CRYPTO_SHA512=m |
1245 | CONFIG_CRYPTO_WP512=m | 1274 | CONFIG_CRYPTO_WP512=m |
1275 | CONFIG_CRYPTO_TGR192=m | ||
1246 | CONFIG_CRYPTO_DES=y | 1276 | CONFIG_CRYPTO_DES=y |
1247 | CONFIG_CRYPTO_BLOWFISH=m | 1277 | CONFIG_CRYPTO_BLOWFISH=m |
1248 | CONFIG_CRYPTO_TWOFISH=m | 1278 | CONFIG_CRYPTO_TWOFISH=m |
diff --git a/arch/ppc64/defconfig b/arch/ppc64/defconfig index 537b1cc82eab..2f31bf3046f9 100644 --- a/arch/ppc64/defconfig +++ b/arch/ppc64/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11-rc3-bk6 | 3 | # Linux kernel version: 2.6.12-rc5-git9 |
4 | # Wed Feb 9 23:34:51 2005 | 4 | # Sun Jun 5 09:26:47 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -11,7 +11,7 @@ CONFIG_GENERIC_ISA_DMA=y | |||
11 | CONFIG_HAVE_DEC_LOCK=y | 11 | CONFIG_HAVE_DEC_LOCK=y |
12 | CONFIG_EARLY_PRINTK=y | 12 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 13 | CONFIG_COMPAT=y |
14 | CONFIG_FRAME_POINTER=y | 14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -20,6 +20,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
20 | CONFIG_EXPERIMENTAL=y | 20 | CONFIG_EXPERIMENTAL=y |
21 | CONFIG_CLEAN_COMPILE=y | 21 | CONFIG_CLEAN_COMPILE=y |
22 | CONFIG_LOCK_KERNEL=y | 22 | CONFIG_LOCK_KERNEL=y |
23 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
23 | 24 | ||
24 | # | 25 | # |
25 | # General setup | 26 | # General setup |
@@ -30,24 +31,28 @@ CONFIG_SYSVIPC=y | |||
30 | CONFIG_POSIX_MQUEUE=y | 31 | CONFIG_POSIX_MQUEUE=y |
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 32 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | CONFIG_SYSCTL=y | 33 | CONFIG_SYSCTL=y |
33 | CONFIG_LOG_BUF_SHIFT=17 | 34 | # CONFIG_AUDIT is not set |
34 | CONFIG_HOTPLUG=y | 35 | CONFIG_HOTPLUG=y |
35 | CONFIG_KOBJECT_UEVENT=y | 36 | CONFIG_KOBJECT_UEVENT=y |
36 | CONFIG_IKCONFIG=y | 37 | CONFIG_IKCONFIG=y |
37 | CONFIG_IKCONFIG_PROC=y | 38 | CONFIG_IKCONFIG_PROC=y |
39 | CONFIG_CPUSETS=y | ||
38 | # CONFIG_EMBEDDED is not set | 40 | # CONFIG_EMBEDDED is not set |
39 | CONFIG_KALLSYMS=y | 41 | CONFIG_KALLSYMS=y |
40 | # CONFIG_KALLSYMS_ALL is not set | 42 | # CONFIG_KALLSYMS_ALL is not set |
41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 43 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
44 | CONFIG_PRINTK=y | ||
45 | CONFIG_BUG=y | ||
46 | CONFIG_BASE_FULL=y | ||
42 | CONFIG_FUTEX=y | 47 | CONFIG_FUTEX=y |
43 | CONFIG_EPOLL=y | 48 | CONFIG_EPOLL=y |
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SHMEM=y | 49 | CONFIG_SHMEM=y |
46 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 50 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
47 | CONFIG_CC_ALIGN_LABELS=0 | 51 | CONFIG_CC_ALIGN_LABELS=0 |
48 | CONFIG_CC_ALIGN_LOOPS=0 | 52 | CONFIG_CC_ALIGN_LOOPS=0 |
49 | CONFIG_CC_ALIGN_JUMPS=0 | 53 | CONFIG_CC_ALIGN_JUMPS=0 |
50 | # CONFIG_TINY_SHMEM is not set | 54 | # CONFIG_TINY_SHMEM is not set |
55 | CONFIG_BASE_SMALL=0 | ||
51 | 56 | ||
52 | # | 57 | # |
53 | # Loadable module support | 58 | # Loadable module support |
@@ -91,9 +96,12 @@ CONFIG_DISCONTIGMEM=y | |||
91 | CONFIG_EEH=y | 96 | CONFIG_EEH=y |
92 | CONFIG_GENERIC_HARDIRQS=y | 97 | CONFIG_GENERIC_HARDIRQS=y |
93 | CONFIG_PPC_RTAS=y | 98 | CONFIG_PPC_RTAS=y |
99 | CONFIG_RTAS_PROC=y | ||
94 | CONFIG_RTAS_FLASH=m | 100 | CONFIG_RTAS_FLASH=m |
95 | CONFIG_SCANLOG=m | 101 | CONFIG_SCANLOG=m |
96 | CONFIG_LPARCFG=y | 102 | CONFIG_LPARCFG=y |
103 | CONFIG_SECCOMP=y | ||
104 | CONFIG_ISA_DMA_API=y | ||
97 | 105 | ||
98 | # | 106 | # |
99 | # General setup | 107 | # General setup |
@@ -104,6 +112,7 @@ CONFIG_BINFMT_ELF=y | |||
104 | CONFIG_BINFMT_MISC=m | 112 | CONFIG_BINFMT_MISC=m |
105 | # CONFIG_PCI_LEGACY_PROC is not set | 113 | # CONFIG_PCI_LEGACY_PROC is not set |
106 | # CONFIG_PCI_NAMES is not set | 114 | # CONFIG_PCI_NAMES is not set |
115 | # CONFIG_PCI_DEBUG is not set | ||
107 | CONFIG_HOTPLUG_CPU=y | 116 | CONFIG_HOTPLUG_CPU=y |
108 | 117 | ||
109 | # | 118 | # |
@@ -112,10 +121,6 @@ CONFIG_HOTPLUG_CPU=y | |||
112 | # CONFIG_PCCARD is not set | 121 | # CONFIG_PCCARD is not set |
113 | 122 | ||
114 | # | 123 | # |
115 | # PC-card bridges | ||
116 | # | ||
117 | |||
118 | # | ||
119 | # PCI Hotplug Support | 124 | # PCI Hotplug Support |
120 | # | 125 | # |
121 | CONFIG_HOTPLUG_PCI=m | 126 | CONFIG_HOTPLUG_PCI=m |
@@ -149,11 +154,10 @@ CONFIG_FW_LOADER=y | |||
149 | # | 154 | # |
150 | CONFIG_PARPORT=m | 155 | CONFIG_PARPORT=m |
151 | CONFIG_PARPORT_PC=m | 156 | CONFIG_PARPORT_PC=m |
152 | CONFIG_PARPORT_PC_CML1=m | ||
153 | # CONFIG_PARPORT_SERIAL is not set | 157 | # CONFIG_PARPORT_SERIAL is not set |
154 | # CONFIG_PARPORT_PC_FIFO is not set | 158 | # CONFIG_PARPORT_PC_FIFO is not set |
155 | # CONFIG_PARPORT_PC_SUPERIO is not set | 159 | # CONFIG_PARPORT_PC_SUPERIO is not set |
156 | # CONFIG_PARPORT_OTHER is not set | 160 | # CONFIG_PARPORT_GSC is not set |
157 | # CONFIG_PARPORT_1284 is not set | 161 | # CONFIG_PARPORT_1284 is not set |
158 | 162 | ||
159 | # | 163 | # |
@@ -301,6 +305,7 @@ CONFIG_SCSI_SATA_SVW=y | |||
301 | # CONFIG_SCSI_ATA_PIIX is not set | 305 | # CONFIG_SCSI_ATA_PIIX is not set |
302 | # CONFIG_SCSI_SATA_NV is not set | 306 | # CONFIG_SCSI_SATA_NV is not set |
303 | # CONFIG_SCSI_SATA_PROMISE is not set | 307 | # CONFIG_SCSI_SATA_PROMISE is not set |
308 | # CONFIG_SCSI_SATA_QSTOR is not set | ||
304 | # CONFIG_SCSI_SATA_SX4 is not set | 309 | # CONFIG_SCSI_SATA_SX4 is not set |
305 | # CONFIG_SCSI_SATA_SIL is not set | 310 | # CONFIG_SCSI_SATA_SIL is not set |
306 | # CONFIG_SCSI_SATA_SIS is not set | 311 | # CONFIG_SCSI_SATA_SIS is not set |
@@ -310,7 +315,6 @@ CONFIG_SCSI_SATA_SVW=y | |||
310 | # CONFIG_SCSI_BUSLOGIC is not set | 315 | # CONFIG_SCSI_BUSLOGIC is not set |
311 | # CONFIG_SCSI_DMX3191D is not set | 316 | # CONFIG_SCSI_DMX3191D is not set |
312 | # CONFIG_SCSI_EATA is not set | 317 | # CONFIG_SCSI_EATA is not set |
313 | # CONFIG_SCSI_EATA_PIO is not set | ||
314 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 318 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
315 | # CONFIG_SCSI_GDTH is not set | 319 | # CONFIG_SCSI_GDTH is not set |
316 | # CONFIG_SCSI_IPS is not set | 320 | # CONFIG_SCSI_IPS is not set |
@@ -327,7 +331,6 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
327 | CONFIG_SCSI_IPR=y | 331 | CONFIG_SCSI_IPR=y |
328 | CONFIG_SCSI_IPR_TRACE=y | 332 | CONFIG_SCSI_IPR_TRACE=y |
329 | CONFIG_SCSI_IPR_DUMP=y | 333 | CONFIG_SCSI_IPR_DUMP=y |
330 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
331 | # CONFIG_SCSI_QLOGIC_FC is not set | 334 | # CONFIG_SCSI_QLOGIC_FC is not set |
332 | # CONFIG_SCSI_QLOGIC_1280 is not set | 335 | # CONFIG_SCSI_QLOGIC_1280 is not set |
333 | CONFIG_SCSI_QLA2XXX=y | 336 | CONFIG_SCSI_QLA2XXX=y |
@@ -336,6 +339,7 @@ CONFIG_SCSI_QLA22XX=m | |||
336 | CONFIG_SCSI_QLA2300=m | 339 | CONFIG_SCSI_QLA2300=m |
337 | CONFIG_SCSI_QLA2322=m | 340 | CONFIG_SCSI_QLA2322=m |
338 | CONFIG_SCSI_QLA6312=m | 341 | CONFIG_SCSI_QLA6312=m |
342 | CONFIG_SCSI_LPFC=m | ||
339 | # CONFIG_SCSI_DC395x is not set | 343 | # CONFIG_SCSI_DC395x is not set |
340 | # CONFIG_SCSI_DC390T is not set | 344 | # CONFIG_SCSI_DC390T is not set |
341 | CONFIG_SCSI_DEBUG=m | 345 | CONFIG_SCSI_DEBUG=m |
@@ -358,6 +362,8 @@ CONFIG_DM_CRYPT=m | |||
358 | CONFIG_DM_SNAPSHOT=m | 362 | CONFIG_DM_SNAPSHOT=m |
359 | CONFIG_DM_MIRROR=m | 363 | CONFIG_DM_MIRROR=m |
360 | CONFIG_DM_ZERO=m | 364 | CONFIG_DM_ZERO=m |
365 | CONFIG_DM_MULTIPATH=m | ||
366 | CONFIG_DM_MULTIPATH_EMC=m | ||
361 | 367 | ||
362 | # | 368 | # |
363 | # Fusion MPT device support | 369 | # Fusion MPT device support |
@@ -405,6 +411,7 @@ CONFIG_IEEE1394_AMDTP=m | |||
405 | # | 411 | # |
406 | CONFIG_ADB=y | 412 | CONFIG_ADB=y |
407 | CONFIG_ADB_PMU=y | 413 | CONFIG_ADB_PMU=y |
414 | CONFIG_PMAC_SMU=y | ||
408 | # CONFIG_PMAC_PBOOK is not set | 415 | # CONFIG_PMAC_PBOOK is not set |
409 | # CONFIG_PMAC_BACKLIGHT is not set | 416 | # CONFIG_PMAC_BACKLIGHT is not set |
410 | # CONFIG_INPUT_ADBHID is not set | 417 | # CONFIG_INPUT_ADBHID is not set |
@@ -420,7 +427,6 @@ CONFIG_NET=y | |||
420 | # | 427 | # |
421 | CONFIG_PACKET=y | 428 | CONFIG_PACKET=y |
422 | # CONFIG_PACKET_MMAP is not set | 429 | # CONFIG_PACKET_MMAP is not set |
423 | # CONFIG_NETLINK_DEV is not set | ||
424 | CONFIG_UNIX=y | 430 | CONFIG_UNIX=y |
425 | CONFIG_NET_KEY=m | 431 | CONFIG_NET_KEY=m |
426 | CONFIG_INET=y | 432 | CONFIG_INET=y |
@@ -588,7 +594,6 @@ CONFIG_PCNET32=y | |||
588 | # CONFIG_DGRS is not set | 594 | # CONFIG_DGRS is not set |
589 | # CONFIG_EEPRO100 is not set | 595 | # CONFIG_EEPRO100 is not set |
590 | CONFIG_E100=y | 596 | CONFIG_E100=y |
591 | # CONFIG_E100_NAPI is not set | ||
592 | # CONFIG_FEALNX is not set | 597 | # CONFIG_FEALNX is not set |
593 | # CONFIG_NATSEMI is not set | 598 | # CONFIG_NATSEMI is not set |
594 | # CONFIG_NE2K_PCI is not set | 599 | # CONFIG_NE2K_PCI is not set |
@@ -614,6 +619,8 @@ CONFIG_E1000=y | |||
614 | # CONFIG_SK98LIN is not set | 619 | # CONFIG_SK98LIN is not set |
615 | # CONFIG_VIA_VELOCITY is not set | 620 | # CONFIG_VIA_VELOCITY is not set |
616 | CONFIG_TIGON3=y | 621 | CONFIG_TIGON3=y |
622 | # CONFIG_BNX2 is not set | ||
623 | # CONFIG_MV643XX_ETH is not set | ||
617 | 624 | ||
618 | # | 625 | # |
619 | # Ethernet (10000 Mbit) | 626 | # Ethernet (10000 Mbit) |
@@ -683,20 +690,6 @@ CONFIG_INPUT_EVDEV=m | |||
683 | # CONFIG_INPUT_EVBUG is not set | 690 | # CONFIG_INPUT_EVBUG is not set |
684 | 691 | ||
685 | # | 692 | # |
686 | # Input I/O drivers | ||
687 | # | ||
688 | # CONFIG_GAMEPORT is not set | ||
689 | CONFIG_SOUND_GAMEPORT=y | ||
690 | CONFIG_SERIO=y | ||
691 | CONFIG_SERIO_I8042=y | ||
692 | # CONFIG_SERIO_SERPORT is not set | ||
693 | # CONFIG_SERIO_CT82C710 is not set | ||
694 | # CONFIG_SERIO_PARKBD is not set | ||
695 | # CONFIG_SERIO_PCIPS2 is not set | ||
696 | CONFIG_SERIO_LIBPS2=y | ||
697 | # CONFIG_SERIO_RAW is not set | ||
698 | |||
699 | # | ||
700 | # Input Device Drivers | 693 | # Input Device Drivers |
701 | # | 694 | # |
702 | CONFIG_INPUT_KEYBOARD=y | 695 | CONFIG_INPUT_KEYBOARD=y |
@@ -716,6 +709,18 @@ CONFIG_INPUT_PCSPKR=m | |||
716 | # CONFIG_INPUT_UINPUT is not set | 709 | # CONFIG_INPUT_UINPUT is not set |
717 | 710 | ||
718 | # | 711 | # |
712 | # Hardware I/O ports | ||
713 | # | ||
714 | CONFIG_SERIO=y | ||
715 | CONFIG_SERIO_I8042=y | ||
716 | # CONFIG_SERIO_SERPORT is not set | ||
717 | # CONFIG_SERIO_PARKBD is not set | ||
718 | # CONFIG_SERIO_PCIPS2 is not set | ||
719 | CONFIG_SERIO_LIBPS2=y | ||
720 | # CONFIG_SERIO_RAW is not set | ||
721 | # CONFIG_GAMEPORT is not set | ||
722 | |||
723 | # | ||
719 | # Character devices | 724 | # Character devices |
720 | # | 725 | # |
721 | CONFIG_VT=y | 726 | CONFIG_VT=y |
@@ -738,6 +743,7 @@ CONFIG_SERIAL_CORE=y | |||
738 | CONFIG_SERIAL_CORE_CONSOLE=y | 743 | CONFIG_SERIAL_CORE_CONSOLE=y |
739 | # CONFIG_SERIAL_PMACZILOG is not set | 744 | # CONFIG_SERIAL_PMACZILOG is not set |
740 | CONFIG_SERIAL_ICOM=m | 745 | CONFIG_SERIAL_ICOM=m |
746 | CONFIG_SERIAL_JSM=m | ||
741 | CONFIG_UNIX98_PTYS=y | 747 | CONFIG_UNIX98_PTYS=y |
742 | CONFIG_LEGACY_PTYS=y | 748 | CONFIG_LEGACY_PTYS=y |
743 | CONFIG_LEGACY_PTY_COUNT=256 | 749 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -766,9 +772,16 @@ CONFIG_HVCS=m | |||
766 | # | 772 | # |
767 | # Ftape, the floppy tape device driver | 773 | # Ftape, the floppy tape device driver |
768 | # | 774 | # |
775 | # CONFIG_AGP is not set | ||
769 | # CONFIG_DRM is not set | 776 | # CONFIG_DRM is not set |
770 | CONFIG_RAW_DRIVER=y | 777 | CONFIG_RAW_DRIVER=y |
771 | CONFIG_MAX_RAW_DEVS=256 | 778 | CONFIG_MAX_RAW_DEVS=256 |
779 | # CONFIG_HANGCHECK_TIMER is not set | ||
780 | |||
781 | # | ||
782 | # TPM devices | ||
783 | # | ||
784 | # CONFIG_TCG_TPM is not set | ||
772 | 785 | ||
773 | # | 786 | # |
774 | # I2C support | 787 | # I2C support |
@@ -793,9 +806,9 @@ CONFIG_I2C_ALGOBIT=y | |||
793 | CONFIG_I2C_AMD8111=y | 806 | CONFIG_I2C_AMD8111=y |
794 | # CONFIG_I2C_I801 is not set | 807 | # CONFIG_I2C_I801 is not set |
795 | # CONFIG_I2C_I810 is not set | 808 | # CONFIG_I2C_I810 is not set |
809 | # CONFIG_I2C_PIIX4 is not set | ||
796 | # CONFIG_I2C_ISA is not set | 810 | # CONFIG_I2C_ISA is not set |
797 | CONFIG_I2C_KEYWEST=y | 811 | CONFIG_I2C_KEYWEST=y |
798 | # CONFIG_I2C_MPC is not set | ||
799 | # CONFIG_I2C_NFORCE2 is not set | 812 | # CONFIG_I2C_NFORCE2 is not set |
800 | # CONFIG_I2C_PARPORT is not set | 813 | # CONFIG_I2C_PARPORT is not set |
801 | # CONFIG_I2C_PARPORT_LIGHT is not set | 814 | # CONFIG_I2C_PARPORT_LIGHT is not set |
@@ -822,7 +835,9 @@ CONFIG_I2C_KEYWEST=y | |||
822 | # CONFIG_SENSORS_ASB100 is not set | 835 | # CONFIG_SENSORS_ASB100 is not set |
823 | # CONFIG_SENSORS_DS1621 is not set | 836 | # CONFIG_SENSORS_DS1621 is not set |
824 | # CONFIG_SENSORS_FSCHER is not set | 837 | # CONFIG_SENSORS_FSCHER is not set |
838 | # CONFIG_SENSORS_FSCPOS is not set | ||
825 | # CONFIG_SENSORS_GL518SM is not set | 839 | # CONFIG_SENSORS_GL518SM is not set |
840 | # CONFIG_SENSORS_GL520SM is not set | ||
826 | # CONFIG_SENSORS_IT87 is not set | 841 | # CONFIG_SENSORS_IT87 is not set |
827 | # CONFIG_SENSORS_LM63 is not set | 842 | # CONFIG_SENSORS_LM63 is not set |
828 | # CONFIG_SENSORS_LM75 is not set | 843 | # CONFIG_SENSORS_LM75 is not set |
@@ -833,9 +848,11 @@ CONFIG_I2C_KEYWEST=y | |||
833 | # CONFIG_SENSORS_LM85 is not set | 848 | # CONFIG_SENSORS_LM85 is not set |
834 | # CONFIG_SENSORS_LM87 is not set | 849 | # CONFIG_SENSORS_LM87 is not set |
835 | # CONFIG_SENSORS_LM90 is not set | 850 | # CONFIG_SENSORS_LM90 is not set |
851 | # CONFIG_SENSORS_LM92 is not set | ||
836 | # CONFIG_SENSORS_MAX1619 is not set | 852 | # CONFIG_SENSORS_MAX1619 is not set |
837 | # CONFIG_SENSORS_PC87360 is not set | 853 | # CONFIG_SENSORS_PC87360 is not set |
838 | # CONFIG_SENSORS_SMSC47B397 is not set | 854 | # CONFIG_SENSORS_SMSC47B397 is not set |
855 | # CONFIG_SENSORS_SIS5595 is not set | ||
839 | # CONFIG_SENSORS_SMSC47M1 is not set | 856 | # CONFIG_SENSORS_SMSC47M1 is not set |
840 | # CONFIG_SENSORS_VIA686A is not set | 857 | # CONFIG_SENSORS_VIA686A is not set |
841 | # CONFIG_SENSORS_W83781D is not set | 858 | # CONFIG_SENSORS_W83781D is not set |
@@ -845,6 +862,7 @@ CONFIG_I2C_KEYWEST=y | |||
845 | # | 862 | # |
846 | # Other I2C Chip support | 863 | # Other I2C Chip support |
847 | # | 864 | # |
865 | # CONFIG_SENSORS_DS1337 is not set | ||
848 | # CONFIG_SENSORS_EEPROM is not set | 866 | # CONFIG_SENSORS_EEPROM is not set |
849 | # CONFIG_SENSORS_PCF8574 is not set | 867 | # CONFIG_SENSORS_PCF8574 is not set |
850 | # CONFIG_SENSORS_PCF8591 is not set | 868 | # CONFIG_SENSORS_PCF8591 is not set |
@@ -877,6 +895,11 @@ CONFIG_I2C_KEYWEST=y | |||
877 | # Graphics support | 895 | # Graphics support |
878 | # | 896 | # |
879 | CONFIG_FB=y | 897 | CONFIG_FB=y |
898 | CONFIG_FB_CFB_FILLRECT=y | ||
899 | CONFIG_FB_CFB_COPYAREA=y | ||
900 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
901 | CONFIG_FB_SOFT_CURSOR=y | ||
902 | CONFIG_FB_MACMODES=y | ||
880 | CONFIG_FB_MODE_HELPERS=y | 903 | CONFIG_FB_MODE_HELPERS=y |
881 | CONFIG_FB_TILEBLITTING=y | 904 | CONFIG_FB_TILEBLITTING=y |
882 | # CONFIG_FB_CIRRUS is not set | 905 | # CONFIG_FB_CIRRUS is not set |
@@ -890,9 +913,8 @@ CONFIG_FB_OF=y | |||
890 | # CONFIG_FB_ASILIANT is not set | 913 | # CONFIG_FB_ASILIANT is not set |
891 | # CONFIG_FB_IMSTT is not set | 914 | # CONFIG_FB_IMSTT is not set |
892 | # CONFIG_FB_VGA16 is not set | 915 | # CONFIG_FB_VGA16 is not set |
893 | CONFIG_FB_RIVA=y | 916 | # CONFIG_FB_NVIDIA is not set |
894 | CONFIG_FB_RIVA_I2C=y | 917 | # CONFIG_FB_RIVA is not set |
895 | # CONFIG_FB_RIVA_DEBUG is not set | ||
896 | CONFIG_FB_MATROX=y | 918 | CONFIG_FB_MATROX=y |
897 | CONFIG_FB_MATROX_MILLENIUM=y | 919 | CONFIG_FB_MATROX_MILLENIUM=y |
898 | CONFIG_FB_MATROX_MYSTIQUE=y | 920 | CONFIG_FB_MATROX_MYSTIQUE=y |
@@ -913,6 +935,7 @@ CONFIG_FB_RADEON_I2C=y | |||
913 | # CONFIG_FB_3DFX is not set | 935 | # CONFIG_FB_3DFX is not set |
914 | # CONFIG_FB_VOODOO1 is not set | 936 | # CONFIG_FB_VOODOO1 is not set |
915 | # CONFIG_FB_TRIDENT is not set | 937 | # CONFIG_FB_TRIDENT is not set |
938 | # CONFIG_FB_S1D13XXX is not set | ||
916 | # CONFIG_FB_VIRTUAL is not set | 939 | # CONFIG_FB_VIRTUAL is not set |
917 | 940 | ||
918 | # | 941 | # |
@@ -946,6 +969,8 @@ CONFIG_LCD_DEVICE=y | |||
946 | # | 969 | # |
947 | # USB support | 970 | # USB support |
948 | # | 971 | # |
972 | CONFIG_USB_ARCH_HAS_HCD=y | ||
973 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
949 | CONFIG_USB=y | 974 | CONFIG_USB=y |
950 | # CONFIG_USB_DEBUG is not set | 975 | # CONFIG_USB_DEBUG is not set |
951 | 976 | ||
@@ -956,8 +981,6 @@ CONFIG_USB_DEVICEFS=y | |||
956 | # CONFIG_USB_BANDWIDTH is not set | 981 | # CONFIG_USB_BANDWIDTH is not set |
957 | # CONFIG_USB_DYNAMIC_MINORS is not set | 982 | # CONFIG_USB_DYNAMIC_MINORS is not set |
958 | # CONFIG_USB_OTG is not set | 983 | # CONFIG_USB_OTG is not set |
959 | CONFIG_USB_ARCH_HAS_HCD=y | ||
960 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
961 | 984 | ||
962 | # | 985 | # |
963 | # USB Host Controller Drivers | 986 | # USB Host Controller Drivers |
@@ -966,6 +989,8 @@ CONFIG_USB_EHCI_HCD=y | |||
966 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 989 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
967 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 990 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
968 | CONFIG_USB_OHCI_HCD=y | 991 | CONFIG_USB_OHCI_HCD=y |
992 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
993 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
969 | # CONFIG_USB_UHCI_HCD is not set | 994 | # CONFIG_USB_UHCI_HCD is not set |
970 | # CONFIG_USB_SL811_HCD is not set | 995 | # CONFIG_USB_SL811_HCD is not set |
971 | 996 | ||
@@ -981,12 +1006,11 @@ CONFIG_USB_OHCI_HCD=y | |||
981 | # | 1006 | # |
982 | CONFIG_USB_STORAGE=m | 1007 | CONFIG_USB_STORAGE=m |
983 | # CONFIG_USB_STORAGE_DEBUG is not set | 1008 | # CONFIG_USB_STORAGE_DEBUG is not set |
984 | CONFIG_USB_STORAGE_RW_DETECT=y | ||
985 | # CONFIG_USB_STORAGE_DATAFAB is not set | 1009 | # CONFIG_USB_STORAGE_DATAFAB is not set |
986 | # CONFIG_USB_STORAGE_FREECOM is not set | 1010 | # CONFIG_USB_STORAGE_FREECOM is not set |
987 | # CONFIG_USB_STORAGE_ISD200 is not set | 1011 | # CONFIG_USB_STORAGE_ISD200 is not set |
988 | # CONFIG_USB_STORAGE_DPCM is not set | 1012 | # CONFIG_USB_STORAGE_DPCM is not set |
989 | # CONFIG_USB_STORAGE_HP8200e is not set | 1013 | # CONFIG_USB_STORAGE_USBAT is not set |
990 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1014 | # CONFIG_USB_STORAGE_SDDR09 is not set |
991 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1015 | # CONFIG_USB_STORAGE_SDDR55 is not set |
992 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1016 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
@@ -1030,6 +1054,7 @@ CONFIG_USB_HIDDEV=y | |||
1030 | CONFIG_USB_PEGASUS=y | 1054 | CONFIG_USB_PEGASUS=y |
1031 | # CONFIG_USB_RTL8150 is not set | 1055 | # CONFIG_USB_RTL8150 is not set |
1032 | # CONFIG_USB_USBNET is not set | 1056 | # CONFIG_USB_USBNET is not set |
1057 | # CONFIG_USB_MON is not set | ||
1033 | 1058 | ||
1034 | # | 1059 | # |
1035 | # USB port drivers | 1060 | # USB port drivers |
@@ -1055,6 +1080,7 @@ CONFIG_USB_PEGASUS=y | |||
1055 | # CONFIG_USB_PHIDGETKIT is not set | 1080 | # CONFIG_USB_PHIDGETKIT is not set |
1056 | # CONFIG_USB_PHIDGETSERVO is not set | 1081 | # CONFIG_USB_PHIDGETSERVO is not set |
1057 | # CONFIG_USB_IDMOUSE is not set | 1082 | # CONFIG_USB_IDMOUSE is not set |
1083 | # CONFIG_USB_SISUSBVGA is not set | ||
1058 | # CONFIG_USB_TEST is not set | 1084 | # CONFIG_USB_TEST is not set |
1059 | 1085 | ||
1060 | # | 1086 | # |
@@ -1276,10 +1302,13 @@ CONFIG_OPROFILE=y | |||
1276 | # | 1302 | # |
1277 | # Kernel hacking | 1303 | # Kernel hacking |
1278 | # | 1304 | # |
1305 | # CONFIG_PRINTK_TIME is not set | ||
1279 | CONFIG_DEBUG_KERNEL=y | 1306 | CONFIG_DEBUG_KERNEL=y |
1280 | CONFIG_MAGIC_SYSRQ=y | 1307 | CONFIG_MAGIC_SYSRQ=y |
1308 | CONFIG_LOG_BUF_SHIFT=17 | ||
1281 | # CONFIG_SCHEDSTATS is not set | 1309 | # CONFIG_SCHEDSTATS is not set |
1282 | # CONFIG_DEBUG_SLAB is not set | 1310 | # CONFIG_DEBUG_SLAB is not set |
1311 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1283 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1312 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1284 | # CONFIG_DEBUG_KOBJECT is not set | 1313 | # CONFIG_DEBUG_KOBJECT is not set |
1285 | # CONFIG_DEBUG_INFO is not set | 1314 | # CONFIG_DEBUG_INFO is not set |
@@ -1311,6 +1340,7 @@ CONFIG_CRYPTO_SHA1=m | |||
1311 | CONFIG_CRYPTO_SHA256=m | 1340 | CONFIG_CRYPTO_SHA256=m |
1312 | CONFIG_CRYPTO_SHA512=m | 1341 | CONFIG_CRYPTO_SHA512=m |
1313 | CONFIG_CRYPTO_WP512=m | 1342 | CONFIG_CRYPTO_WP512=m |
1343 | CONFIG_CRYPTO_TGR192=m | ||
1314 | CONFIG_CRYPTO_DES=y | 1344 | CONFIG_CRYPTO_DES=y |
1315 | CONFIG_CRYPTO_BLOWFISH=m | 1345 | CONFIG_CRYPTO_BLOWFISH=m |
1316 | CONFIG_CRYPTO_TWOFISH=m | 1346 | CONFIG_CRYPTO_TWOFISH=m |
diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile index 323f72c64cd2..b2de9916c32c 100644 --- a/arch/um/drivers/Makefile +++ b/arch/um/drivers/Makefile | |||
@@ -22,8 +22,8 @@ obj-y := stdio_console.o fd.o chan_kern.o chan_user.o line.o | |||
22 | obj-$(CONFIG_SSL) += ssl.o | 22 | obj-$(CONFIG_SSL) += ssl.o |
23 | obj-$(CONFIG_STDERR_CONSOLE) += stderr_console.o | 23 | obj-$(CONFIG_STDERR_CONSOLE) += stderr_console.o |
24 | 24 | ||
25 | obj-$(CONFIG_UML_NET_SLIP) += slip.o | 25 | obj-$(CONFIG_UML_NET_SLIP) += slip.o slip_common.o |
26 | obj-$(CONFIG_UML_NET_SLIRP) += slirp.o | 26 | obj-$(CONFIG_UML_NET_SLIRP) += slirp.o slip_common.o |
27 | obj-$(CONFIG_UML_NET_DAEMON) += daemon.o | 27 | obj-$(CONFIG_UML_NET_DAEMON) += daemon.o |
28 | obj-$(CONFIG_UML_NET_MCAST) += mcast.o | 28 | obj-$(CONFIG_UML_NET_MCAST) += mcast.o |
29 | #obj-$(CONFIG_UML_NET_PCAP) += pcap.o $(PCAP) | 29 | #obj-$(CONFIG_UML_NET_PCAP) += pcap.o $(PCAP) |
@@ -41,6 +41,6 @@ obj-$(CONFIG_UML_WATCHDOG) += harddog.o | |||
41 | obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o | 41 | obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o |
42 | obj-$(CONFIG_UML_RANDOM) += random.o | 42 | obj-$(CONFIG_UML_RANDOM) += random.o |
43 | 43 | ||
44 | USER_OBJS := fd.o null.o pty.o tty.o xterm.o | 44 | USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o |
45 | 45 | ||
46 | include arch/um/scripts/Makefile.rules | 46 | include arch/um/scripts/Makefile.rules |
diff --git a/arch/um/drivers/slip.h b/arch/um/drivers/slip.h index d523618cd5ac..bb0dab41c2e4 100644 --- a/arch/um/drivers/slip.h +++ b/arch/um/drivers/slip.h | |||
@@ -1,10 +1,7 @@ | |||
1 | #ifndef __UM_SLIP_H | 1 | #ifndef __UM_SLIP_H |
2 | #define __UM_SLIP_H | 2 | #define __UM_SLIP_H |
3 | 3 | ||
4 | #define BUF_SIZE 1500 | 4 | #include "slip_common.h" |
5 | /* two bytes each for a (pathological) max packet of escaped chars + * | ||
6 | * terminating END char + initial END char */ | ||
7 | #define ENC_BUF_SIZE (2 * BUF_SIZE + 2) | ||
8 | 5 | ||
9 | struct slip_data { | 6 | struct slip_data { |
10 | void *dev; | 7 | void *dev; |
@@ -12,28 +9,12 @@ struct slip_data { | |||
12 | char *addr; | 9 | char *addr; |
13 | char *gate_addr; | 10 | char *gate_addr; |
14 | int slave; | 11 | int slave; |
15 | unsigned char ibuf[ENC_BUF_SIZE]; | 12 | struct slip_proto slip; |
16 | unsigned char obuf[ENC_BUF_SIZE]; | ||
17 | int more; /* more data: do not read fd until ibuf has been drained */ | ||
18 | int pos; | ||
19 | int esc; | ||
20 | }; | 13 | }; |
21 | 14 | ||
22 | extern struct net_user_info slip_user_info; | 15 | extern struct net_user_info slip_user_info; |
23 | 16 | ||
24 | extern int set_umn_addr(int fd, char *addr, char *ptp_addr); | ||
25 | extern int slip_user_read(int fd, void *buf, int len, struct slip_data *pri); | 17 | extern int slip_user_read(int fd, void *buf, int len, struct slip_data *pri); |
26 | extern int slip_user_write(int fd, void *buf, int len, struct slip_data *pri); | 18 | extern int slip_user_write(int fd, void *buf, int len, struct slip_data *pri); |
27 | 19 | ||
28 | #endif | 20 | #endif |
29 | |||
30 | /* | ||
31 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
32 | * Emacs will notice this stuff at the end of the file and automatically | ||
33 | * adjust the settings for this buffer only. This must remain at the end | ||
34 | * of the file. | ||
35 | * --------------------------------------------------------------------------- | ||
36 | * Local variables: | ||
37 | * c-file-style: "linux" | ||
38 | * End: | ||
39 | */ | ||
diff --git a/arch/um/drivers/slip_common.c b/arch/um/drivers/slip_common.c new file mode 100644 index 000000000000..e89cfc68fc3e --- /dev/null +++ b/arch/um/drivers/slip_common.c | |||
@@ -0,0 +1,54 @@ | |||
1 | #include <string.h> | ||
2 | #include "slip_common.h" | ||
3 | #include "net_user.h" | ||
4 | |||
5 | int slip_proto_read(int fd, void *buf, int len, struct slip_proto *slip) | ||
6 | { | ||
7 | int i, n, size, start; | ||
8 | |||
9 | if(slip->more > 0){ | ||
10 | i = 0; | ||
11 | while(i < slip->more){ | ||
12 | size = slip_unesc(slip->ibuf[i++], slip->ibuf, | ||
13 | &slip->pos, &slip->esc); | ||
14 | if(size){ | ||
15 | memcpy(buf, slip->ibuf, size); | ||
16 | memmove(slip->ibuf, &slip->ibuf[i], | ||
17 | slip->more - i); | ||
18 | slip->more = slip->more - i; | ||
19 | return size; | ||
20 | } | ||
21 | } | ||
22 | slip->more = 0; | ||
23 | } | ||
24 | |||
25 | n = net_read(fd, &slip->ibuf[slip->pos], | ||
26 | sizeof(slip->ibuf) - slip->pos); | ||
27 | if(n <= 0) | ||
28 | return n; | ||
29 | |||
30 | start = slip->pos; | ||
31 | for(i = 0; i < n; i++){ | ||
32 | size = slip_unesc(slip->ibuf[start + i], slip->ibuf,&slip->pos, | ||
33 | &slip->esc); | ||
34 | if(size){ | ||
35 | memcpy(buf, slip->ibuf, size); | ||
36 | memmove(slip->ibuf, &slip->ibuf[start+i+1], | ||
37 | n - (i + 1)); | ||
38 | slip->more = n - (i + 1); | ||
39 | return size; | ||
40 | } | ||
41 | } | ||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | int slip_proto_write(int fd, void *buf, int len, struct slip_proto *slip) | ||
46 | { | ||
47 | int actual, n; | ||
48 | |||
49 | actual = slip_esc(buf, slip->obuf, len); | ||
50 | n = net_write(fd, slip->obuf, actual); | ||
51 | if(n < 0) | ||
52 | return n; | ||
53 | else return len; | ||
54 | } | ||
diff --git a/arch/um/drivers/slip_proto.h b/arch/um/drivers/slip_common.h index 4c4d94a33100..2ae76d8f1be1 100644 --- a/arch/um/drivers/slip_proto.h +++ b/arch/um/drivers/slip_common.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /* | 1 | #ifndef __UM_SLIP_COMMON_H |
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | 2 | #define __UM_SLIP_COMMON_H |
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | 3 | ||
6 | #ifndef __UM_SLIP_PROTO_H__ | 4 | #define BUF_SIZE 1500 |
7 | #define __UM_SLIP_PROTO_H__ | 5 | /* two bytes each for a (pathological) max packet of escaped chars + * |
6 | * terminating END char + initial END char */ | ||
7 | #define ENC_BUF_SIZE (2 * BUF_SIZE + 2) | ||
8 | 8 | ||
9 | /* SLIP protocol characters. */ | 9 | /* SLIP protocol characters. */ |
10 | #define SLIP_END 0300 /* indicates end of frame */ | 10 | #define SLIP_END 0300 /* indicates end of frame */ |
@@ -80,15 +80,25 @@ static inline int slip_esc(unsigned char *s, unsigned char *d, int len) | |||
80 | return (ptr - d); | 80 | return (ptr - d); |
81 | } | 81 | } |
82 | 82 | ||
83 | #endif | 83 | struct slip_proto { |
84 | unsigned char ibuf[ENC_BUF_SIZE]; | ||
85 | unsigned char obuf[ENC_BUF_SIZE]; | ||
86 | int more; /* more data: do not read fd until ibuf has been drained */ | ||
87 | int pos; | ||
88 | int esc; | ||
89 | }; | ||
90 | |||
91 | #define SLIP_PROTO_INIT { \ | ||
92 | .ibuf = { '\0' }, \ | ||
93 | .obuf = { '\0' }, \ | ||
94 | .more = 0, \ | ||
95 | .pos = 0, \ | ||
96 | .esc = 0 \ | ||
97 | } | ||
84 | 98 | ||
85 | /* | 99 | extern int slip_proto_read(int fd, void *buf, int len, |
86 | * Overrides for Emacs so that we follow Linus's tabbing style. | 100 | struct slip_proto *slip); |
87 | * Emacs will notice this stuff at the end of the file and automatically | 101 | extern int slip_proto_write(int fd, void *buf, int len, |
88 | * adjust the settings for this buffer only. This must remain at the end | 102 | struct slip_proto *slip); |
89 | * of the file. | 103 | |
90 | * --------------------------------------------------------------------------- | 104 | #endif |
91 | * Local variables: | ||
92 | * c-file-style: "linux" | ||
93 | * End: | ||
94 | */ | ||
diff --git a/arch/um/drivers/slip_kern.c b/arch/um/drivers/slip_kern.c index 0886eedba213..9a6f5c85f902 100644 --- a/arch/um/drivers/slip_kern.c +++ b/arch/um/drivers/slip_kern.c | |||
@@ -26,16 +26,16 @@ void slip_init(struct net_device *dev, void *data) | |||
26 | .addr = NULL, | 26 | .addr = NULL, |
27 | .gate_addr = init->gate_addr, | 27 | .gate_addr = init->gate_addr, |
28 | .slave = -1, | 28 | .slave = -1, |
29 | .ibuf = { '\0' }, | 29 | .slip = SLIP_PROTO_INIT, |
30 | .obuf = { '\0' }, | ||
31 | .pos = 0, | ||
32 | .esc = 0, | ||
33 | .dev = dev }); | 30 | .dev = dev }); |
34 | 31 | ||
35 | dev->init = NULL; | 32 | dev->init = NULL; |
33 | dev->header_cache_update = NULL; | ||
34 | dev->hard_header_cache = NULL; | ||
35 | dev->hard_header = NULL; | ||
36 | dev->hard_header_len = 0; | 36 | dev->hard_header_len = 0; |
37 | dev->addr_len = 4; | 37 | dev->addr_len = 0; |
38 | dev->type = ARPHRD_ETHER; | 38 | dev->type = ARPHRD_SLIP; |
39 | dev->tx_queue_len = 256; | 39 | dev->tx_queue_len = 256; |
40 | dev->flags = IFF_NOARP; | 40 | dev->flags = IFF_NOARP; |
41 | printk("SLIP backend - SLIP IP = %s\n", spri->gate_addr); | 41 | printk("SLIP backend - SLIP IP = %s\n", spri->gate_addr); |
diff --git a/arch/um/drivers/slip_user.c b/arch/um/drivers/slip_user.c index d94846b1b4cf..71af444e591f 100644 --- a/arch/um/drivers/slip_user.c +++ b/arch/um/drivers/slip_user.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include "user.h" | 13 | #include "user.h" |
14 | #include "net_user.h" | 14 | #include "net_user.h" |
15 | #include "slip.h" | 15 | #include "slip.h" |
16 | #include "slip_proto.h" | 16 | #include "slip_common.h" |
17 | #include "helper.h" | 17 | #include "helper.h" |
18 | #include "os.h" | 18 | #include "os.h" |
19 | 19 | ||
@@ -77,41 +77,51 @@ static int slip_tramp(char **argv, int fd) | |||
77 | err = os_pipe(fds, 1, 0); | 77 | err = os_pipe(fds, 1, 0); |
78 | if(err < 0){ | 78 | if(err < 0){ |
79 | printk("slip_tramp : pipe failed, err = %d\n", -err); | 79 | printk("slip_tramp : pipe failed, err = %d\n", -err); |
80 | return(err); | 80 | goto out; |
81 | } | 81 | } |
82 | 82 | ||
83 | err = 0; | 83 | err = 0; |
84 | pe_data.stdin = fd; | 84 | pe_data.stdin = fd; |
85 | pe_data.stdout = fds[1]; | 85 | pe_data.stdout = fds[1]; |
86 | pe_data.close_me = fds[0]; | 86 | pe_data.close_me = fds[0]; |
87 | pid = run_helper(slip_pre_exec, &pe_data, argv, NULL); | 87 | err = run_helper(slip_pre_exec, &pe_data, argv, NULL); |
88 | if(err < 0) | ||
89 | goto out_close; | ||
90 | pid = err; | ||
91 | |||
92 | output_len = page_size(); | ||
93 | output = um_kmalloc(output_len); | ||
94 | if(output == NULL){ | ||
95 | printk("slip_tramp : failed to allocate output buffer\n"); | ||
96 | os_kill_process(pid, 1); | ||
97 | err = -ENOMEM; | ||
98 | goto out_free; | ||
99 | } | ||
88 | 100 | ||
89 | if(pid < 0) err = pid; | 101 | os_close_file(fds[1]); |
90 | else { | 102 | read_output(fds[0], output, output_len); |
91 | output_len = page_size(); | 103 | printk("%s", output); |
92 | output = um_kmalloc(output_len); | 104 | |
93 | if(output == NULL) | 105 | CATCH_EINTR(err = waitpid(pid, &status, 0)); |
94 | printk("slip_tramp : failed to allocate output " | 106 | if(err < 0) |
95 | "buffer\n"); | 107 | err = errno; |
96 | 108 | else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0)){ | |
97 | os_close_file(fds[1]); | 109 | printk("'%s' didn't exit with status 0\n", argv[0]); |
98 | read_output(fds[0], output, output_len); | 110 | err = -EINVAL; |
99 | if(output != NULL){ | ||
100 | printk("%s", output); | ||
101 | kfree(output); | ||
102 | } | ||
103 | CATCH_EINTR(err = waitpid(pid, &status, 0)); | ||
104 | if(err < 0) | ||
105 | err = errno; | ||
106 | else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0)){ | ||
107 | printk("'%s' didn't exit with status 0\n", argv[0]); | ||
108 | err = -EINVAL; | ||
109 | } | ||
110 | } | 111 | } |
112 | else err = 0; | ||
111 | 113 | ||
112 | os_close_file(fds[0]); | 114 | os_close_file(fds[0]); |
113 | 115 | ||
114 | return(err); | 116 | out_free: |
117 | kfree(output); | ||
118 | return err; | ||
119 | |||
120 | out_close: | ||
121 | os_close_file(fds[0]); | ||
122 | os_close_file(fds[1]); | ||
123 | out: | ||
124 | return err; | ||
115 | } | 125 | } |
116 | 126 | ||
117 | static int slip_open(void *data) | 127 | static int slip_open(void *data) |
@@ -123,21 +133,26 @@ static int slip_open(void *data) | |||
123 | NULL }; | 133 | NULL }; |
124 | int sfd, mfd, err; | 134 | int sfd, mfd, err; |
125 | 135 | ||
126 | mfd = get_pty(); | 136 | err = get_pty(); |
127 | if(mfd < 0){ | 137 | if(err < 0){ |
128 | printk("umn : Failed to open pty, err = %d\n", -mfd); | 138 | printk("slip-open : Failed to open pty, err = %d\n", -err); |
129 | return(mfd); | 139 | goto out; |
130 | } | 140 | } |
131 | sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0); | 141 | mfd = err; |
132 | if(sfd < 0){ | 142 | |
133 | printk("Couldn't open tty for slip line, err = %d\n", -sfd); | 143 | err = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0); |
134 | os_close_file(mfd); | 144 | if(err < 0){ |
135 | return(sfd); | 145 | printk("Couldn't open tty for slip line, err = %d\n", -err); |
146 | goto out_close; | ||
136 | } | 147 | } |
137 | if(set_up_tty(sfd)) return(-1); | 148 | sfd = err; |
149 | |||
150 | if(set_up_tty(sfd)) | ||
151 | goto out_close2; | ||
152 | |||
138 | pri->slave = sfd; | 153 | pri->slave = sfd; |
139 | pri->pos = 0; | 154 | pri->slip.pos = 0; |
140 | pri->esc = 0; | 155 | pri->slip.esc = 0; |
141 | if(pri->gate_addr != NULL){ | 156 | if(pri->gate_addr != NULL){ |
142 | sprintf(version_buf, "%d", UML_NET_VERSION); | 157 | sprintf(version_buf, "%d", UML_NET_VERSION); |
143 | strcpy(gate_buf, pri->gate_addr); | 158 | strcpy(gate_buf, pri->gate_addr); |
@@ -146,12 +161,12 @@ static int slip_open(void *data) | |||
146 | 161 | ||
147 | if(err < 0){ | 162 | if(err < 0){ |
148 | printk("slip_tramp failed - err = %d\n", -err); | 163 | printk("slip_tramp failed - err = %d\n", -err); |
149 | return(err); | 164 | goto out_close2; |
150 | } | 165 | } |
151 | err = os_get_ifname(pri->slave, pri->name); | 166 | err = os_get_ifname(pri->slave, pri->name); |
152 | if(err < 0){ | 167 | if(err < 0){ |
153 | printk("get_ifname failed, err = %d\n", -err); | 168 | printk("get_ifname failed, err = %d\n", -err); |
154 | return(err); | 169 | goto out_close2; |
155 | } | 170 | } |
156 | iter_addresses(pri->dev, open_addr, pri->name); | 171 | iter_addresses(pri->dev, open_addr, pri->name); |
157 | } | 172 | } |
@@ -160,10 +175,16 @@ static int slip_open(void *data) | |||
160 | if(err < 0){ | 175 | if(err < 0){ |
161 | printk("Failed to set slip discipline encapsulation - " | 176 | printk("Failed to set slip discipline encapsulation - " |
162 | "err = %d\n", -err); | 177 | "err = %d\n", -err); |
163 | return(err); | 178 | goto out_close2; |
164 | } | 179 | } |
165 | } | 180 | } |
166 | return(mfd); | 181 | return(mfd); |
182 | out_close2: | ||
183 | os_close_file(sfd); | ||
184 | out_close: | ||
185 | os_close_file(mfd); | ||
186 | out: | ||
187 | return err; | ||
167 | } | 188 | } |
168 | 189 | ||
169 | static void slip_close(int fd, void *data) | 190 | static void slip_close(int fd, void *data) |
@@ -190,48 +211,12 @@ static void slip_close(int fd, void *data) | |||
190 | 211 | ||
191 | int slip_user_read(int fd, void *buf, int len, struct slip_data *pri) | 212 | int slip_user_read(int fd, void *buf, int len, struct slip_data *pri) |
192 | { | 213 | { |
193 | int i, n, size, start; | 214 | return slip_proto_read(fd, buf, len, &pri->slip); |
194 | |||
195 | if(pri->more>0) { | ||
196 | i = 0; | ||
197 | while(i < pri->more) { | ||
198 | size = slip_unesc(pri->ibuf[i++], | ||
199 | pri->ibuf, &pri->pos, &pri->esc); | ||
200 | if(size){ | ||
201 | memcpy(buf, pri->ibuf, size); | ||
202 | memmove(pri->ibuf, &pri->ibuf[i], pri->more-i); | ||
203 | pri->more=pri->more-i; | ||
204 | return(size); | ||
205 | } | ||
206 | } | ||
207 | pri->more=0; | ||
208 | } | ||
209 | |||
210 | n = net_read(fd, &pri->ibuf[pri->pos], sizeof(pri->ibuf) - pri->pos); | ||
211 | if(n <= 0) return(n); | ||
212 | |||
213 | start = pri->pos; | ||
214 | for(i = 0; i < n; i++){ | ||
215 | size = slip_unesc(pri->ibuf[start + i], | ||
216 | pri->ibuf, &pri->pos, &pri->esc); | ||
217 | if(size){ | ||
218 | memcpy(buf, pri->ibuf, size); | ||
219 | memmove(pri->ibuf, &pri->ibuf[start+i+1], n-(i+1)); | ||
220 | pri->more=n-(i+1); | ||
221 | return(size); | ||
222 | } | ||
223 | } | ||
224 | return(0); | ||
225 | } | 215 | } |
226 | 216 | ||
227 | int slip_user_write(int fd, void *buf, int len, struct slip_data *pri) | 217 | int slip_user_write(int fd, void *buf, int len, struct slip_data *pri) |
228 | { | 218 | { |
229 | int actual, n; | 219 | return slip_proto_write(fd, buf, len, &pri->slip); |
230 | |||
231 | actual = slip_esc(buf, pri->obuf, len); | ||
232 | n = net_write(fd, pri->obuf, actual); | ||
233 | if(n < 0) return(n); | ||
234 | else return(len); | ||
235 | } | 220 | } |
236 | 221 | ||
237 | static int slip_set_mtu(int mtu, void *data) | 222 | static int slip_set_mtu(int mtu, void *data) |
@@ -267,14 +252,3 @@ struct net_user_info slip_user_info = { | |||
267 | .delete_address = slip_del_addr, | 252 | .delete_address = slip_del_addr, |
268 | .max_packet = BUF_SIZE | 253 | .max_packet = BUF_SIZE |
269 | }; | 254 | }; |
270 | |||
271 | /* | ||
272 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
273 | * Emacs will notice this stuff at the end of the file and automatically | ||
274 | * adjust the settings for this buffer only. This must remain at the end | ||
275 | * of the file. | ||
276 | * --------------------------------------------------------------------------- | ||
277 | * Local variables: | ||
278 | * c-file-style: "linux" | ||
279 | * End: | ||
280 | */ | ||
diff --git a/arch/um/drivers/slirp.h b/arch/um/drivers/slirp.h index afa4e30284fd..6cf88ab580c9 100644 --- a/arch/um/drivers/slirp.h +++ b/arch/um/drivers/slirp.h | |||
@@ -1,10 +1,7 @@ | |||
1 | #ifndef __UM_SLIRP_H | 1 | #ifndef __UM_SLIRP_H |
2 | #define __UM_SLIRP_H | 2 | #define __UM_SLIRP_H |
3 | 3 | ||
4 | #define BUF_SIZE 1500 | 4 | #include "slip_common.h" |
5 | /* two bytes each for a (pathological) max packet of escaped chars + * | ||
6 | * terminating END char + initial END char */ | ||
7 | #define ENC_BUF_SIZE (2 * BUF_SIZE + 2) | ||
8 | 5 | ||
9 | #define SLIRP_MAX_ARGS 100 | 6 | #define SLIRP_MAX_ARGS 100 |
10 | /* | 7 | /* |
@@ -24,28 +21,13 @@ struct slirp_data { | |||
24 | struct arg_list_dummy_wrapper argw; | 21 | struct arg_list_dummy_wrapper argw; |
25 | int pid; | 22 | int pid; |
26 | int slave; | 23 | int slave; |
27 | unsigned char ibuf[ENC_BUF_SIZE]; | 24 | struct slip_proto slip; |
28 | unsigned char obuf[ENC_BUF_SIZE]; | ||
29 | int more; /* more data: do not read fd until ibuf has been drained */ | ||
30 | int pos; | ||
31 | int esc; | ||
32 | }; | 25 | }; |
33 | 26 | ||
34 | extern struct net_user_info slirp_user_info; | 27 | extern struct net_user_info slirp_user_info; |
35 | 28 | ||
36 | extern int set_umn_addr(int fd, char *addr, char *ptp_addr); | ||
37 | extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri); | 29 | extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri); |
38 | extern int slirp_user_write(int fd, void *buf, int len, struct slirp_data *pri); | 30 | extern int slirp_user_write(int fd, void *buf, int len, |
31 | struct slirp_data *pri); | ||
39 | 32 | ||
40 | #endif | 33 | #endif |
41 | |||
42 | /* | ||
43 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
44 | * Emacs will notice this stuff at the end of the file and automatically | ||
45 | * adjust the settings for this buffer only. This must remain at the end | ||
46 | * of the file. | ||
47 | * --------------------------------------------------------------------------- | ||
48 | * Local variables: | ||
49 | * c-file-style: "linux" | ||
50 | * End: | ||
51 | */ | ||
diff --git a/arch/um/drivers/slirp_kern.c b/arch/um/drivers/slirp_kern.c index c9d6b52a831d..9864d27afdbe 100644 --- a/arch/um/drivers/slirp_kern.c +++ b/arch/um/drivers/slirp_kern.c | |||
@@ -25,10 +25,7 @@ void slirp_init(struct net_device *dev, void *data) | |||
25 | { .argw = init->argw, | 25 | { .argw = init->argw, |
26 | .pid = -1, | 26 | .pid = -1, |
27 | .slave = -1, | 27 | .slave = -1, |
28 | .ibuf = { '\0' }, | 28 | .slip = SLIP_PROTO_INIT, |
29 | .obuf = { '\0' }, | ||
30 | .pos = 0, | ||
31 | .esc = 0, | ||
32 | .dev = dev }); | 29 | .dev = dev }); |
33 | 30 | ||
34 | dev->init = NULL; | 31 | dev->init = NULL; |
diff --git a/arch/um/drivers/slirp_user.c b/arch/um/drivers/slirp_user.c index c322515c71cc..8d91f663d82c 100644 --- a/arch/um/drivers/slirp_user.c +++ b/arch/um/drivers/slirp_user.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include "user.h" | 12 | #include "user.h" |
13 | #include "net_user.h" | 13 | #include "net_user.h" |
14 | #include "slirp.h" | 14 | #include "slirp.h" |
15 | #include "slip_proto.h" | 15 | #include "slip_common.h" |
16 | #include "helper.h" | 16 | #include "helper.h" |
17 | #include "os.h" | 17 | #include "os.h" |
18 | 18 | ||
@@ -48,47 +48,32 @@ static int slirp_tramp(char **argv, int fd) | |||
48 | return(pid); | 48 | return(pid); |
49 | } | 49 | } |
50 | 50 | ||
51 | /* XXX This is just a trivial wrapper around os_pipe */ | ||
52 | static int slirp_datachan(int *mfd, int *sfd) | ||
53 | { | ||
54 | int fds[2], err; | ||
55 | |||
56 | err = os_pipe(fds, 1, 1); | ||
57 | if(err < 0){ | ||
58 | printk("slirp_datachan: Failed to open pipe, err = %d\n", -err); | ||
59 | return(err); | ||
60 | } | ||
61 | |||
62 | *mfd = fds[0]; | ||
63 | *sfd = fds[1]; | ||
64 | return(0); | ||
65 | } | ||
66 | |||
67 | static int slirp_open(void *data) | 51 | static int slirp_open(void *data) |
68 | { | 52 | { |
69 | struct slirp_data *pri = data; | 53 | struct slirp_data *pri = data; |
70 | int sfd, mfd, pid, err; | 54 | int fds[2], pid, err; |
71 | 55 | ||
72 | err = slirp_datachan(&mfd, &sfd); | 56 | err = os_pipe(fds, 1, 1); |
73 | if(err) | 57 | if(err) |
74 | return(err); | 58 | return(err); |
75 | 59 | ||
76 | pid = slirp_tramp(pri->argw.argv, sfd); | 60 | err = slirp_tramp(pri->argw.argv, fds[1]); |
77 | 61 | if(err < 0){ | |
78 | if(pid < 0){ | 62 | printk("slirp_tramp failed - errno = %d\n", -err); |
79 | printk("slirp_tramp failed - errno = %d\n", -pid); | 63 | goto out; |
80 | os_close_file(sfd); | ||
81 | os_close_file(mfd); | ||
82 | return(pid); | ||
83 | } | 64 | } |
84 | 65 | pid = err; | |
85 | pri->slave = sfd; | 66 | |
86 | pri->pos = 0; | 67 | pri->slave = fds[1]; |
87 | pri->esc = 0; | 68 | pri->slip.pos = 0; |
88 | 69 | pri->slip.esc = 0; | |
89 | pri->pid = pid; | 70 | pri->pid = err; |
90 | 71 | ||
91 | return(mfd); | 72 | return(fds[0]); |
73 | out: | ||
74 | os_close_file(fds[0]); | ||
75 | os_close_file(fds[1]); | ||
76 | return err; | ||
92 | } | 77 | } |
93 | 78 | ||
94 | static void slirp_close(int fd, void *data) | 79 | static void slirp_close(int fd, void *data) |
@@ -129,48 +114,12 @@ static void slirp_close(int fd, void *data) | |||
129 | 114 | ||
130 | int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri) | 115 | int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri) |
131 | { | 116 | { |
132 | int i, n, size, start; | 117 | return slip_proto_read(fd, buf, len, &pri->slip); |
133 | |||
134 | if(pri->more>0) { | ||
135 | i = 0; | ||
136 | while(i < pri->more) { | ||
137 | size = slip_unesc(pri->ibuf[i++], | ||
138 | pri->ibuf,&pri->pos,&pri->esc); | ||
139 | if(size){ | ||
140 | memcpy(buf, pri->ibuf, size); | ||
141 | memmove(pri->ibuf, &pri->ibuf[i], pri->more-i); | ||
142 | pri->more=pri->more-i; | ||
143 | return(size); | ||
144 | } | ||
145 | } | ||
146 | pri->more=0; | ||
147 | } | ||
148 | |||
149 | n = net_read(fd, &pri->ibuf[pri->pos], sizeof(pri->ibuf) - pri->pos); | ||
150 | if(n <= 0) return(n); | ||
151 | |||
152 | start = pri->pos; | ||
153 | for(i = 0; i < n; i++){ | ||
154 | size = slip_unesc(pri->ibuf[start + i], | ||
155 | pri->ibuf,&pri->pos,&pri->esc); | ||
156 | if(size){ | ||
157 | memcpy(buf, pri->ibuf, size); | ||
158 | memmove(pri->ibuf, &pri->ibuf[start+i+1], n-(i+1)); | ||
159 | pri->more=n-(i+1); | ||
160 | return(size); | ||
161 | } | ||
162 | } | ||
163 | return(0); | ||
164 | } | 118 | } |
165 | 119 | ||
166 | int slirp_user_write(int fd, void *buf, int len, struct slirp_data *pri) | 120 | int slirp_user_write(int fd, void *buf, int len, struct slirp_data *pri) |
167 | { | 121 | { |
168 | int actual, n; | 122 | return slip_proto_write(fd, buf, len, &pri->slip); |
169 | |||
170 | actual = slip_esc(buf, pri->obuf, len); | ||
171 | n = net_write(fd, pri->obuf, actual); | ||
172 | if(n < 0) return(n); | ||
173 | else return(len); | ||
174 | } | 123 | } |
175 | 124 | ||
176 | static int slirp_set_mtu(int mtu, void *data) | 125 | static int slirp_set_mtu(int mtu, void *data) |
@@ -188,14 +137,3 @@ struct net_user_info slirp_user_info = { | |||
188 | .delete_address = NULL, | 137 | .delete_address = NULL, |
189 | .max_packet = BUF_SIZE | 138 | .max_packet = BUF_SIZE |
190 | }; | 139 | }; |
191 | |||
192 | /* | ||
193 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
194 | * Emacs will notice this stuff at the end of the file and automatically | ||
195 | * adjust the settings for this buffer only. This must remain at the end | ||
196 | * of the file. | ||
197 | * --------------------------------------------------------------------------- | ||
198 | * Local variables: | ||
199 | * c-file-style: "linux" | ||
200 | * End: | ||
201 | */ | ||
diff --git a/arch/um/include/sysdep-i386/ptrace.h b/arch/um/include/sysdep-i386/ptrace.h index 6eaeb9919983..c8ee9559f3ab 100644 --- a/arch/um/include/sysdep-i386/ptrace.h +++ b/arch/um/include/sysdep-i386/ptrace.h | |||
@@ -8,6 +8,8 @@ | |||
8 | 8 | ||
9 | #include "uml-config.h" | 9 | #include "uml-config.h" |
10 | #include "user_constants.h" | 10 | #include "user_constants.h" |
11 | #include "sysdep/faultinfo.h" | ||
12 | #include "choose-mode.h" | ||
11 | 13 | ||
12 | #define MAX_REG_NR (UM_FRAME_SIZE / sizeof(unsigned long)) | 14 | #define MAX_REG_NR (UM_FRAME_SIZE / sizeof(unsigned long)) |
13 | #define MAX_REG_OFFSET (UM_FRAME_SIZE) | 15 | #define MAX_REG_OFFSET (UM_FRAME_SIZE) |
@@ -58,9 +60,6 @@ extern int sysemu_supported; | |||
58 | #define PTRACE_SYSEMU_SINGLESTEP 32 | 60 | #define PTRACE_SYSEMU_SINGLESTEP 32 |
59 | #endif | 61 | #endif |
60 | 62 | ||
61 | #include "sysdep/faultinfo.h" | ||
62 | #include "choose-mode.h" | ||
63 | |||
64 | union uml_pt_regs { | 63 | union uml_pt_regs { |
65 | #ifdef UML_CONFIG_MODE_TT | 64 | #ifdef UML_CONFIG_MODE_TT |
66 | struct tt_regs { | 65 | struct tt_regs { |
diff --git a/arch/um/kernel/main.c b/arch/um/kernel/main.c index e42e6364ca13..e59f58152678 100644 --- a/arch/um/kernel/main.c +++ b/arch/um/kernel/main.c | |||
@@ -24,8 +24,6 @@ | |||
24 | #include "mode.h" | 24 | #include "mode.h" |
25 | #include "choose-mode.h" | 25 | #include "choose-mode.h" |
26 | #include "uml-config.h" | 26 | #include "uml-config.h" |
27 | #include "irq_user.h" | ||
28 | #include "time_user.h" | ||
29 | #include "os.h" | 27 | #include "os.h" |
30 | 28 | ||
31 | /* Set in set_stklim, which is called from main and __wrap_malloc. | 29 | /* Set in set_stklim, which is called from main and __wrap_malloc. |
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index 51f8e5a8ac6a..1b5ef3e96c71 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include "init.h" | 30 | #include "init.h" |
31 | #include "os.h" | 31 | #include "os.h" |
32 | #include "uml-config.h" | 32 | #include "uml-config.h" |
33 | #include "ptrace_user.h" | ||
34 | #include "choose-mode.h" | 33 | #include "choose-mode.h" |
35 | #include "mode.h" | 34 | #include "mode.h" |
36 | #ifdef UML_CONFIG_MODE_SKAS | 35 | #ifdef UML_CONFIG_MODE_SKAS |
@@ -131,7 +130,7 @@ int start_fork_tramp(void *thread_arg, unsigned long temp_stack, | |||
131 | return(arg.pid); | 130 | return(arg.pid); |
132 | } | 131 | } |
133 | 132 | ||
134 | static int ptrace_child(void *arg) | 133 | static int ptrace_child(void) |
135 | { | 134 | { |
136 | int ret; | 135 | int ret; |
137 | int pid = os_getpid(), ppid = getppid(); | 136 | int pid = os_getpid(), ppid = getppid(); |
@@ -160,20 +159,16 @@ static int ptrace_child(void *arg) | |||
160 | _exit(ret); | 159 | _exit(ret); |
161 | } | 160 | } |
162 | 161 | ||
163 | static int start_ptraced_child(void **stack_out) | 162 | static int start_ptraced_child(void) |
164 | { | 163 | { |
165 | void *stack; | ||
166 | unsigned long sp; | ||
167 | int pid, n, status; | 164 | int pid, n, status; |
168 | 165 | ||
169 | stack = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, | 166 | pid = fork(); |
170 | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); | 167 | if(pid == 0) |
171 | if(stack == MAP_FAILED) | 168 | ptrace_child(); |
172 | panic("check_ptrace : mmap failed, errno = %d", errno); | 169 | |
173 | sp = (unsigned long) stack + PAGE_SIZE - sizeof(void *); | ||
174 | pid = clone(ptrace_child, (void *) sp, SIGCHLD, NULL); | ||
175 | if(pid < 0) | 170 | if(pid < 0) |
176 | panic("check_ptrace : clone failed, errno = %d", errno); | 171 | panic("check_ptrace : fork failed, errno = %d", errno); |
177 | CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED)); | 172 | CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED)); |
178 | if(n < 0) | 173 | if(n < 0) |
179 | panic("check_ptrace : wait failed, errno = %d", errno); | 174 | panic("check_ptrace : wait failed, errno = %d", errno); |
@@ -181,7 +176,6 @@ static int start_ptraced_child(void **stack_out) | |||
181 | panic("check_ptrace : expected SIGSTOP, got status = %d", | 176 | panic("check_ptrace : expected SIGSTOP, got status = %d", |
182 | status); | 177 | status); |
183 | 178 | ||
184 | *stack_out = stack; | ||
185 | return(pid); | 179 | return(pid); |
186 | } | 180 | } |
187 | 181 | ||
@@ -189,12 +183,12 @@ static int start_ptraced_child(void **stack_out) | |||
189 | * just avoid using sysemu, not panic, but only if SYSEMU features are broken. | 183 | * just avoid using sysemu, not panic, but only if SYSEMU features are broken. |
190 | * So only for SYSEMU features we test mustpanic, while normal host features | 184 | * So only for SYSEMU features we test mustpanic, while normal host features |
191 | * must work anyway!*/ | 185 | * must work anyway!*/ |
192 | static int stop_ptraced_child(int pid, void *stack, int exitcode, int mustpanic) | 186 | static int stop_ptraced_child(int pid, int exitcode, int mustexit) |
193 | { | 187 | { |
194 | int status, n, ret = 0; | 188 | int status, n, ret = 0; |
195 | 189 | ||
196 | if(ptrace(PTRACE_CONT, pid, 0, 0) < 0) | 190 | if(ptrace(PTRACE_CONT, pid, 0, 0) < 0) |
197 | panic("check_ptrace : ptrace failed, errno = %d", errno); | 191 | panic("stop_ptraced_child : ptrace failed, errno = %d", errno); |
198 | CATCH_EINTR(n = waitpid(pid, &status, 0)); | 192 | CATCH_EINTR(n = waitpid(pid, &status, 0)); |
199 | if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { | 193 | if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { |
200 | int exit_with = WEXITSTATUS(status); | 194 | int exit_with = WEXITSTATUS(status); |
@@ -205,15 +199,13 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode, int mustpanic) | |||
205 | printk("check_ptrace : child exited with exitcode %d, while " | 199 | printk("check_ptrace : child exited with exitcode %d, while " |
206 | "expecting %d; status 0x%x", exit_with, | 200 | "expecting %d; status 0x%x", exit_with, |
207 | exitcode, status); | 201 | exitcode, status); |
208 | if (mustpanic) | 202 | if (mustexit) |
209 | panic("\n"); | 203 | panic("\n"); |
210 | else | 204 | else |
211 | printk("\n"); | 205 | printk("\n"); |
212 | ret = -1; | 206 | ret = -1; |
213 | } | 207 | } |
214 | 208 | ||
215 | if(munmap(stack, PAGE_SIZE) < 0) | ||
216 | panic("check_ptrace : munmap failed, errno = %d", errno); | ||
217 | return ret; | 209 | return ret; |
218 | } | 210 | } |
219 | 211 | ||
@@ -235,12 +227,11 @@ __uml_setup("nosysemu", nosysemu_cmd_param, | |||
235 | 227 | ||
236 | static void __init check_sysemu(void) | 228 | static void __init check_sysemu(void) |
237 | { | 229 | { |
238 | void *stack; | ||
239 | int pid, syscall, n, status, count=0; | 230 | int pid, syscall, n, status, count=0; |
240 | 231 | ||
241 | printk("Checking syscall emulation patch for ptrace..."); | 232 | printk("Checking syscall emulation patch for ptrace..."); |
242 | sysemu_supported = 0; | 233 | sysemu_supported = 0; |
243 | pid = start_ptraced_child(&stack); | 234 | pid = start_ptraced_child(); |
244 | 235 | ||
245 | if(ptrace(PTRACE_SYSEMU, pid, 0, 0) < 0) | 236 | if(ptrace(PTRACE_SYSEMU, pid, 0, 0) < 0) |
246 | goto fail; | 237 | goto fail; |
@@ -258,7 +249,7 @@ static void __init check_sysemu(void) | |||
258 | panic("check_sysemu : failed to modify system " | 249 | panic("check_sysemu : failed to modify system " |
259 | "call return, errno = %d", errno); | 250 | "call return, errno = %d", errno); |
260 | 251 | ||
261 | if (stop_ptraced_child(pid, stack, 0, 0) < 0) | 252 | if (stop_ptraced_child(pid, 0, 0) < 0) |
262 | goto fail_stopped; | 253 | goto fail_stopped; |
263 | 254 | ||
264 | sysemu_supported = 1; | 255 | sysemu_supported = 1; |
@@ -266,7 +257,7 @@ static void __init check_sysemu(void) | |||
266 | set_using_sysemu(!force_sysemu_disabled); | 257 | set_using_sysemu(!force_sysemu_disabled); |
267 | 258 | ||
268 | printk("Checking advanced syscall emulation patch for ptrace..."); | 259 | printk("Checking advanced syscall emulation patch for ptrace..."); |
269 | pid = start_ptraced_child(&stack); | 260 | pid = start_ptraced_child(); |
270 | while(1){ | 261 | while(1){ |
271 | count++; | 262 | count++; |
272 | if(ptrace(PTRACE_SYSEMU_SINGLESTEP, pid, 0, 0) < 0) | 263 | if(ptrace(PTRACE_SYSEMU_SINGLESTEP, pid, 0, 0) < 0) |
@@ -291,7 +282,7 @@ static void __init check_sysemu(void) | |||
291 | break; | 282 | break; |
292 | } | 283 | } |
293 | } | 284 | } |
294 | if (stop_ptraced_child(pid, stack, 0, 0) < 0) | 285 | if (stop_ptraced_child(pid, 0, 0) < 0) |
295 | goto fail_stopped; | 286 | goto fail_stopped; |
296 | 287 | ||
297 | sysemu_supported = 2; | 288 | sysemu_supported = 2; |
@@ -302,18 +293,17 @@ static void __init check_sysemu(void) | |||
302 | return; | 293 | return; |
303 | 294 | ||
304 | fail: | 295 | fail: |
305 | stop_ptraced_child(pid, stack, 1, 0); | 296 | stop_ptraced_child(pid, 1, 0); |
306 | fail_stopped: | 297 | fail_stopped: |
307 | printk("missing\n"); | 298 | printk("missing\n"); |
308 | } | 299 | } |
309 | 300 | ||
310 | void __init check_ptrace(void) | 301 | void __init check_ptrace(void) |
311 | { | 302 | { |
312 | void *stack; | ||
313 | int pid, syscall, n, status; | 303 | int pid, syscall, n, status; |
314 | 304 | ||
315 | printk("Checking that ptrace can change system call numbers..."); | 305 | printk("Checking that ptrace can change system call numbers..."); |
316 | pid = start_ptraced_child(&stack); | 306 | pid = start_ptraced_child(); |
317 | 307 | ||
318 | if (ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0) | 308 | if (ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0) |
319 | panic("check_ptrace: PTRACE_SETOPTIONS failed, errno = %d", errno); | 309 | panic("check_ptrace: PTRACE_SETOPTIONS failed, errno = %d", errno); |
@@ -340,7 +330,7 @@ void __init check_ptrace(void) | |||
340 | break; | 330 | break; |
341 | } | 331 | } |
342 | } | 332 | } |
343 | stop_ptraced_child(pid, stack, 0, 1); | 333 | stop_ptraced_child(pid, 0, 1); |
344 | printk("OK\n"); | 334 | printk("OK\n"); |
345 | check_sysemu(); | 335 | check_sysemu(); |
346 | } | 336 | } |
@@ -372,11 +362,10 @@ void forward_pending_sigio(int target) | |||
372 | static inline int check_skas3_ptrace_support(void) | 362 | static inline int check_skas3_ptrace_support(void) |
373 | { | 363 | { |
374 | struct ptrace_faultinfo fi; | 364 | struct ptrace_faultinfo fi; |
375 | void *stack; | ||
376 | int pid, n, ret = 1; | 365 | int pid, n, ret = 1; |
377 | 366 | ||
378 | printf("Checking for the skas3 patch in the host..."); | 367 | printf("Checking for the skas3 patch in the host..."); |
379 | pid = start_ptraced_child(&stack); | 368 | pid = start_ptraced_child(); |
380 | 369 | ||
381 | n = ptrace(PTRACE_FAULTINFO, pid, 0, &fi); | 370 | n = ptrace(PTRACE_FAULTINFO, pid, 0, &fi); |
382 | if (n < 0) { | 371 | if (n < 0) { |
@@ -391,7 +380,7 @@ static inline int check_skas3_ptrace_support(void) | |||
391 | } | 380 | } |
392 | 381 | ||
393 | init_registers(pid); | 382 | init_registers(pid); |
394 | stop_ptraced_child(pid, stack, 1, 1); | 383 | stop_ptraced_child(pid, 1, 1); |
395 | 384 | ||
396 | return(ret); | 385 | return(ret); |
397 | } | 386 | } |
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c index 418427107b29..8736d098f0ee 100644 --- a/arch/um/kernel/um_arch.c +++ b/arch/um/kernel/um_arch.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include "asm/setup.h" | 26 | #include "asm/setup.h" |
27 | #include "ubd_user.h" | 27 | #include "ubd_user.h" |
28 | #include "asm/current.h" | 28 | #include "asm/current.h" |
29 | #include "asm/setup.h" | ||
30 | #include "user_util.h" | 29 | #include "user_util.h" |
31 | #include "kern_util.h" | 30 | #include "kern_util.h" |
32 | #include "kern.h" | 31 | #include "kern.h" |
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index 0b2491883d9c..98346c711493 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
@@ -14,7 +14,7 @@ quiet_cmd_make_link = SYMLINK $@ | |||
14 | cmd_make_link = ln -sf $(srctree)/arch/$(SUBARCH)/$($(notdir $@)-dir)/$(notdir $@) $@ | 14 | cmd_make_link = ln -sf $(srctree)/arch/$(SUBARCH)/$($(notdir $@)-dir)/$(notdir $@) $@ |
15 | 15 | ||
16 | # this needs to be before the foreach, because targets does not accept | 16 | # this needs to be before the foreach, because targets does not accept |
17 | # complete paths like $(obj)/$(f). To make sure this works, use a := assignment, | 17 | # complete paths like $(obj)/$(f). To make sure this works, use a := assignment |
18 | # or we will get $(obj)/$(f) in the "targets" value. | 18 | # or we will get $(obj)/$(f) in the "targets" value. |
19 | # Also, this forces you to use the := syntax when assigning to targets. | 19 | # Also, this forces you to use the := syntax when assigning to targets. |
20 | # Otherwise the line below will cause an infinite loop (if you don't know why, | 20 | # Otherwise the line below will cause an infinite loop (if you don't know why, |