aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/calls.S6
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.c4
-rw-r--r--arch/arm/mm/Kconfig2
-rw-r--r--arch/arm/mm/proc-v6.S2
-rw-r--r--arch/arm/nwfpe/softfloat.c34
-rw-r--r--arch/i386/kernel/apic.c4
-rw-r--r--arch/i386/kernel/nmi.c4
-rw-r--r--arch/ia64/Kconfig11
-rw-r--r--arch/ia64/configs/sn2_defconfig262
-rw-r--r--arch/ia64/configs/tiger_defconfig149
-rw-r--r--arch/ia64/configs/zx1_defconfig226
-rw-r--r--arch/ia64/hp/sim/boot/boot_head.S2
-rw-r--r--arch/ia64/kernel/domain.c2
-rw-r--r--arch/ia64/kernel/perfmon.c1
-rw-r--r--arch/ia64/kernel/salinfo.c3
-rw-r--r--arch/ia64/sn/kernel/io_init.c19
-rw-r--r--arch/ppc/syslib/ppc4xx_dma.c10
-rw-r--r--arch/ppc64/kernel/LparData.c79
-rw-r--r--arch/ppc64/kernel/Makefile5
-rw-r--r--arch/ppc64/kernel/head.S6
-rw-r--r--arch/ppc64/kernel/iommu.c7
-rw-r--r--arch/ppc64/kernel/lparmap.c31
-rw-r--r--arch/sh/kernel/entry.S5
-rw-r--r--arch/sh64/kernel/syscalls.S5
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c5
-rw-r--r--arch/sparc64/kernel/Makefile2
-rw-r--r--arch/sparc64/kernel/traps.c3
-rw-r--r--arch/sparc64/kernel/una_asm.S153
-rw-r--r--arch/sparc64/kernel/unaligned.c261
-rw-r--r--arch/sparc64/kernel/us2e_cpufreq.c36
-rw-r--r--arch/sparc64/kernel/us3_cpufreq.c29
-rw-r--r--arch/um/kernel/skas/process.c6
-rw-r--r--arch/um/os-Linux/elf_aux.c1
-rw-r--r--arch/x86_64/kernel/smpboot.c15
-rw-r--r--arch/x86_64/mm/fault.c4
35 files changed, 735 insertions, 659 deletions
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index e5d370c235d7..2b6b4c786e65 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -327,6 +327,12 @@ __syscall_start:
327/* 310 */ .long sys_request_key 327/* 310 */ .long sys_request_key
328 .long sys_keyctl 328 .long sys_keyctl
329 .long sys_semtimedop 329 .long sys_semtimedop
330/* vserver */ .long sys_ni_syscall
331 .long sys_ioprio_set
332/* 315 */ .long sys_ioprio_get
333 .long sys_inotify_init
334 .long sys_inotify_add_watch
335 .long sys_inotify_rm_watch
330__syscall_end: 336__syscall_end:
331 337
332 .rept NR_syscalls - (__syscall_end - __syscall_start) / 4 338 .rept NR_syscalls - (__syscall_end - __syscall_start) / 4
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c
index ff2f25409e44..0b88993dfd27 100644
--- a/arch/arm/mach-s3c2410/s3c2410.c
+++ b/arch/arm/mach-s3c2410/s3c2410.c
@@ -18,6 +18,7 @@
18 * 28-Sep-2004 BJD Updates for new serial port bits 18 * 28-Sep-2004 BJD Updates for new serial port bits
19 * 04-Nov-2004 BJD Updated UART configuration process 19 * 04-Nov-2004 BJD Updated UART configuration process
20 * 10-Jan-2005 BJD Removed s3c2410_clock_tick_rate 20 * 10-Jan-2005 BJD Removed s3c2410_clock_tick_rate
21 * 13-Aug-2005 DA Removed UART from initial I/O mappings
21*/ 22*/
22 23
23#include <linux/kernel.h> 24#include <linux/kernel.h>
@@ -49,10 +50,9 @@ static struct map_desc s3c2410_iodesc[] __initdata = {
49 IODESC_ENT(USBHOST), 50 IODESC_ENT(USBHOST),
50 IODESC_ENT(CLKPWR), 51 IODESC_ENT(CLKPWR),
51 IODESC_ENT(LCD), 52 IODESC_ENT(LCD),
52 IODESC_ENT(UART),
53 IODESC_ENT(TIMER), 53 IODESC_ENT(TIMER),
54 IODESC_ENT(ADC), 54 IODESC_ENT(ADC),
55 IODESC_ENT(WATCHDOG) 55 IODESC_ENT(WATCHDOG),
56}; 56};
57 57
58static struct resource s3c_uart0_resource[] = { 58static struct resource s3c_uart0_resource[] = {
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index afbbeb6f4658..db5e47dfc303 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -384,7 +384,7 @@ config CPU_DCACHE_DISABLE
384 384
385config CPU_DCACHE_WRITETHROUGH 385config CPU_DCACHE_WRITETHROUGH
386 bool "Force write through D-cache" 386 bool "Force write through D-cache"
387 depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DISABLE_DCACHE 387 depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE
388 default y if CPU_ARM925T 388 default y if CPU_ARM925T
389 help 389 help
390 Say Y here to use the data cache in writethrough mode. Unless you 390 Say Y here to use the data cache in writethrough mode. Unless you
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 3429ddcf65d1..139a38670c5d 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -105,7 +105,7 @@ ENTRY(cpu_v6_dcache_clean_area)
105ENTRY(cpu_v6_switch_mm) 105ENTRY(cpu_v6_switch_mm)
106 mov r2, #0 106 mov r2, #0
107 ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id 107 ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id
108 mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB 108 mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB
109 mcr p15, 0, r2, c7, c10, 4 @ drain write buffer 109 mcr p15, 0, r2, c7, c10, 4 @ drain write buffer
110 mcr p15, 0, r0, c2, c0, 0 @ set TTB 0 110 mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
111 mcr p15, 0, r1, c13, c0, 1 @ set context ID 111 mcr p15, 0, r1, c13, c0, 1 @ set context ID
diff --git a/arch/arm/nwfpe/softfloat.c b/arch/arm/nwfpe/softfloat.c
index 8b75a6e7cb3a..f9f049132a17 100644
--- a/arch/arm/nwfpe/softfloat.c
+++ b/arch/arm/nwfpe/softfloat.c
@@ -1602,9 +1602,7 @@ flag float32_le_quiet( float32 a, float32 b )
1602 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) 1602 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) )
1603 || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) 1603 || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) )
1604 ) { 1604 ) {
1605 if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { 1605 /* Do nothing, even if NaN as we're quiet */
1606 float_raise( float_flag_invalid );
1607 }
1608 return 0; 1606 return 0;
1609 } 1607 }
1610 aSign = extractFloat32Sign( a ); 1608 aSign = extractFloat32Sign( a );
@@ -1629,9 +1627,7 @@ flag float32_lt_quiet( float32 a, float32 b )
1629 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) ) 1627 if ( ( ( extractFloat32Exp( a ) == 0xFF ) && extractFloat32Frac( a ) )
1630 || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) ) 1628 || ( ( extractFloat32Exp( b ) == 0xFF ) && extractFloat32Frac( b ) )
1631 ) { 1629 ) {
1632 if ( float32_is_signaling_nan( a ) || float32_is_signaling_nan( b ) ) { 1630 /* Do nothing, even if NaN as we're quiet */
1633 float_raise( float_flag_invalid );
1634 }
1635 return 0; 1631 return 0;
1636 } 1632 }
1637 aSign = extractFloat32Sign( a ); 1633 aSign = extractFloat32Sign( a );
@@ -2493,9 +2489,7 @@ flag float64_le_quiet( float64 a, float64 b )
2493 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) 2489 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) )
2494 || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) 2490 || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) )
2495 ) { 2491 ) {
2496 if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { 2492 /* Do nothing, even if NaN as we're quiet */
2497 float_raise( float_flag_invalid );
2498 }
2499 return 0; 2493 return 0;
2500 } 2494 }
2501 aSign = extractFloat64Sign( a ); 2495 aSign = extractFloat64Sign( a );
@@ -2520,9 +2514,7 @@ flag float64_lt_quiet( float64 a, float64 b )
2520 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) ) 2514 if ( ( ( extractFloat64Exp( a ) == 0x7FF ) && extractFloat64Frac( a ) )
2521 || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) ) 2515 || ( ( extractFloat64Exp( b ) == 0x7FF ) && extractFloat64Frac( b ) )
2522 ) { 2516 ) {
2523 if ( float64_is_signaling_nan( a ) || float64_is_signaling_nan( b ) ) { 2517 /* Do nothing, even if NaN as we're quiet */
2524 float_raise( float_flag_invalid );
2525 }
2526 return 0; 2518 return 0;
2527 } 2519 }
2528 aSign = extractFloat64Sign( a ); 2520 aSign = extractFloat64Sign( a );
@@ -3256,7 +3248,7 @@ flag floatx80_eq( floatx80 a, floatx80 b )
3256 ) { 3248 ) {
3257 if ( floatx80_is_signaling_nan( a ) 3249 if ( floatx80_is_signaling_nan( a )
3258 || floatx80_is_signaling_nan( b ) ) { 3250 || floatx80_is_signaling_nan( b ) ) {
3259 roundData->exception |= float_flag_invalid; 3251 float_raise( float_flag_invalid );
3260 } 3252 }
3261 return 0; 3253 return 0;
3262 } 3254 }
@@ -3286,7 +3278,7 @@ flag floatx80_le( floatx80 a, floatx80 b )
3286 || ( ( extractFloatx80Exp( b ) == 0x7FFF ) 3278 || ( ( extractFloatx80Exp( b ) == 0x7FFF )
3287 && (bits64) ( extractFloatx80Frac( b )<<1 ) ) 3279 && (bits64) ( extractFloatx80Frac( b )<<1 ) )
3288 ) { 3280 ) {
3289 roundData->exception |= float_flag_invalid; 3281 float_raise( float_flag_invalid );
3290 return 0; 3282 return 0;
3291 } 3283 }
3292 aSign = extractFloatx80Sign( a ); 3284 aSign = extractFloatx80Sign( a );
@@ -3320,7 +3312,7 @@ flag floatx80_lt( floatx80 a, floatx80 b )
3320 || ( ( extractFloatx80Exp( b ) == 0x7FFF ) 3312 || ( ( extractFloatx80Exp( b ) == 0x7FFF )
3321 && (bits64) ( extractFloatx80Frac( b )<<1 ) ) 3313 && (bits64) ( extractFloatx80Frac( b )<<1 ) )
3322 ) { 3314 ) {
3323 roundData->exception |= float_flag_invalid; 3315 float_raise( float_flag_invalid );
3324 return 0; 3316 return 0;
3325 } 3317 }
3326 aSign = extractFloatx80Sign( a ); 3318 aSign = extractFloatx80Sign( a );
@@ -3353,7 +3345,7 @@ flag floatx80_eq_signaling( floatx80 a, floatx80 b )
3353 || ( ( extractFloatx80Exp( b ) == 0x7FFF ) 3345 || ( ( extractFloatx80Exp( b ) == 0x7FFF )
3354 && (bits64) ( extractFloatx80Frac( b )<<1 ) ) 3346 && (bits64) ( extractFloatx80Frac( b )<<1 ) )
3355 ) { 3347 ) {
3356 roundData->exception |= float_flag_invalid; 3348 float_raise( float_flag_invalid );
3357 return 0; 3349 return 0;
3358 } 3350 }
3359 return 3351 return
@@ -3382,10 +3374,7 @@ flag floatx80_le_quiet( floatx80 a, floatx80 b )
3382 || ( ( extractFloatx80Exp( b ) == 0x7FFF ) 3374 || ( ( extractFloatx80Exp( b ) == 0x7FFF )
3383 && (bits64) ( extractFloatx80Frac( b )<<1 ) ) 3375 && (bits64) ( extractFloatx80Frac( b )<<1 ) )
3384 ) { 3376 ) {
3385 if ( floatx80_is_signaling_nan( a ) 3377 /* Do nothing, even if NaN as we're quiet */
3386 || floatx80_is_signaling_nan( b ) ) {
3387 roundData->exception |= float_flag_invalid;
3388 }
3389 return 0; 3378 return 0;
3390 } 3379 }
3391 aSign = extractFloatx80Sign( a ); 3380 aSign = extractFloatx80Sign( a );
@@ -3419,10 +3408,7 @@ flag floatx80_lt_quiet( floatx80 a, floatx80 b )
3419 || ( ( extractFloatx80Exp( b ) == 0x7FFF ) 3408 || ( ( extractFloatx80Exp( b ) == 0x7FFF )
3420 && (bits64) ( extractFloatx80Frac( b )<<1 ) ) 3409 && (bits64) ( extractFloatx80Frac( b )<<1 ) )
3421 ) { 3410 ) {
3422 if ( floatx80_is_signaling_nan( a ) 3411 /* Do nothing, even if NaN as we're quiet */
3423 || floatx80_is_signaling_nan( b ) ) {
3424 roundData->exception |= float_flag_invalid;
3425 }
3426 return 0; 3412 return 0;
3427 } 3413 }
3428 aSign = extractFloatx80Sign( a ); 3414 aSign = extractFloatx80Sign( a );
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index bd1dbf3bd223..a22a866de8f9 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -726,15 +726,11 @@ __setup("apic=", apic_set_verbosity);
726static int __init detect_init_APIC (void) 726static int __init detect_init_APIC (void)
727{ 727{
728 u32 h, l, features; 728 u32 h, l, features;
729 extern void get_cpu_vendor(struct cpuinfo_x86*);
730 729
731 /* Disabled by kernel option? */ 730 /* Disabled by kernel option? */
732 if (enable_local_apic < 0) 731 if (enable_local_apic < 0)
733 return -1; 732 return -1;
734 733
735 /* Workaround for us being called before identify_cpu(). */
736 get_cpu_vendor(&boot_cpu_data);
737
738 switch (boot_cpu_data.x86_vendor) { 734 switch (boot_cpu_data.x86_vendor) {
739 case X86_VENDOR_AMD: 735 case X86_VENDOR_AMD:
740 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) || 736 if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) ||
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c
index da6c46d667cb..8c242bb1ef45 100644
--- a/arch/i386/kernel/nmi.c
+++ b/arch/i386/kernel/nmi.c
@@ -195,7 +195,7 @@ static void disable_lapic_nmi_watchdog(void)
195 wrmsr(MSR_P6_EVNTSEL0, 0, 0); 195 wrmsr(MSR_P6_EVNTSEL0, 0, 0);
196 break; 196 break;
197 case 15: 197 case 15:
198 if (boot_cpu_data.x86_model > 0x3) 198 if (boot_cpu_data.x86_model > 0x4)
199 break; 199 break;
200 200
201 wrmsr(MSR_P4_IQ_CCCR0, 0, 0); 201 wrmsr(MSR_P4_IQ_CCCR0, 0, 0);
@@ -432,7 +432,7 @@ void setup_apic_nmi_watchdog (void)
432 setup_p6_watchdog(); 432 setup_p6_watchdog();
433 break; 433 break;
434 case 15: 434 case 15:
435 if (boot_cpu_data.x86_model > 0x3) 435 if (boot_cpu_data.x86_model > 0x4)
436 return; 436 return;
437 437
438 if (!setup_p4_watchdog()) 438 if (!setup_p4_watchdog())
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index cbb3e0cef93a..80988136f26d 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -392,15 +392,8 @@ menu "Bus options (PCI, PCMCIA)"
392config PCI 392config PCI
393 bool "PCI support" 393 bool "PCI support"
394 help 394 help
395 Find out whether you have a PCI motherboard. PCI is the name of a 395 Real IA-64 machines all have PCI/PCI-X/PCI Express busses. Say Y
396 bus system, i.e. the way the CPU talks to the other stuff inside 396 here unless you are using a simulator without PCI support.
397 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
398 VESA. If you have PCI, say Y, otherwise N.
399
400 The PCI-HOWTO, available from
401 <http://www.tldp.org/docs.html#howto>, contains valuable
402 information about which PCI hardware does work under Linux and which
403 doesn't.
404 397
405config PCI_DOMAINS 398config PCI_DOMAINS
406 bool 399 bool
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig
index 04d0b00a2b8c..dccf35c60b94 100644
--- a/arch/ia64/configs/sn2_defconfig
+++ b/arch/ia64/configs/sn2_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.10 3# Linux kernel version: 2.6.13-rc6
4# Mon Jan 10 13:57:35 2005 4# Tue Aug 16 14:40:41 2005
5# 5#
6 6
7# 7#
@@ -10,6 +10,7 @@
10CONFIG_EXPERIMENTAL=y 10CONFIG_EXPERIMENTAL=y
11CONFIG_CLEAN_COMPILE=y 11CONFIG_CLEAN_COMPILE=y
12CONFIG_LOCK_KERNEL=y 12CONFIG_LOCK_KERNEL=y
13CONFIG_INIT_ENV_ARG_LIMIT=32
13 14
14# 15#
15# General setup 16# General setup
@@ -21,24 +22,26 @@ CONFIG_POSIX_MQUEUE=y
21# CONFIG_BSD_PROCESS_ACCT is not set 22# CONFIG_BSD_PROCESS_ACCT is not set
22CONFIG_SYSCTL=y 23CONFIG_SYSCTL=y
23# CONFIG_AUDIT is not set 24# CONFIG_AUDIT is not set
24CONFIG_LOG_BUF_SHIFT=20
25CONFIG_HOTPLUG=y 25CONFIG_HOTPLUG=y
26CONFIG_KOBJECT_UEVENT=y 26CONFIG_KOBJECT_UEVENT=y
27# CONFIG_IKCONFIG is not set 27# CONFIG_IKCONFIG is not set
28CONFIG_CPUSETS=y
28# CONFIG_EMBEDDED is not set 29# CONFIG_EMBEDDED is not set
29CONFIG_KALLSYMS=y 30CONFIG_KALLSYMS=y
30CONFIG_KALLSYMS_ALL=y 31CONFIG_KALLSYMS_ALL=y
31# CONFIG_KALLSYMS_EXTRA_PASS is not set 32# CONFIG_KALLSYMS_EXTRA_PASS is not set
33CONFIG_PRINTK=y
34CONFIG_BUG=y
35CONFIG_BASE_FULL=y
32CONFIG_FUTEX=y 36CONFIG_FUTEX=y
33CONFIG_EPOLL=y 37CONFIG_EPOLL=y
34CONFIG_CPUSETS=y
35# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
36CONFIG_SHMEM=y 38CONFIG_SHMEM=y
37CONFIG_CC_ALIGN_FUNCTIONS=0 39CONFIG_CC_ALIGN_FUNCTIONS=0
38CONFIG_CC_ALIGN_LABELS=0 40CONFIG_CC_ALIGN_LABELS=0
39CONFIG_CC_ALIGN_LOOPS=0 41CONFIG_CC_ALIGN_LOOPS=0
40CONFIG_CC_ALIGN_JUMPS=0 42CONFIG_CC_ALIGN_JUMPS=0
41# CONFIG_TINY_SHMEM is not set 43# CONFIG_TINY_SHMEM is not set
44CONFIG_BASE_SMALL=0
42 45
43# 46#
44# Loadable module support 47# Loadable module support
@@ -63,9 +66,12 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
63CONFIG_TIME_INTERPOLATION=y 66CONFIG_TIME_INTERPOLATION=y
64CONFIG_EFI=y 67CONFIG_EFI=y
65CONFIG_GENERIC_IOMAP=y 68CONFIG_GENERIC_IOMAP=y
69CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
70CONFIG_IA64_UNCACHED_ALLOCATOR=y
66# CONFIG_IA64_GENERIC is not set 71# CONFIG_IA64_GENERIC is not set
67# CONFIG_IA64_DIG is not set 72# CONFIG_IA64_DIG is not set
68# CONFIG_IA64_HP_ZX1 is not set 73# CONFIG_IA64_HP_ZX1 is not set
74# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
69CONFIG_IA64_SGI_SN2=y 75CONFIG_IA64_SGI_SN2=y
70# CONFIG_IA64_HP_SIM is not set 76# CONFIG_IA64_HP_SIM is not set
71# CONFIG_ITANIUM is not set 77# CONFIG_ITANIUM is not set
@@ -74,6 +80,10 @@ CONFIG_MCKINLEY=y
74# CONFIG_IA64_PAGE_SIZE_8KB is not set 80# CONFIG_IA64_PAGE_SIZE_8KB is not set
75CONFIG_IA64_PAGE_SIZE_16KB=y 81CONFIG_IA64_PAGE_SIZE_16KB=y
76# CONFIG_IA64_PAGE_SIZE_64KB is not set 82# CONFIG_IA64_PAGE_SIZE_64KB is not set
83# CONFIG_HZ_100 is not set
84CONFIG_HZ_250=y
85# CONFIG_HZ_1000 is not set
86CONFIG_HZ=250
77CONFIG_IA64_L1_CACHE_SHIFT=7 87CONFIG_IA64_L1_CACHE_SHIFT=7
78CONFIG_NUMA=y 88CONFIG_NUMA=y
79CONFIG_VIRTUAL_MEM_MAP=y 89CONFIG_VIRTUAL_MEM_MAP=y
@@ -81,11 +91,20 @@ CONFIG_HOLES_IN_ZONE=y
81CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 91CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
82# CONFIG_IA64_CYCLONE is not set 92# CONFIG_IA64_CYCLONE is not set
83CONFIG_IOSAPIC=y 93CONFIG_IOSAPIC=y
94CONFIG_IA64_SGI_SN_XP=m
84CONFIG_FORCE_MAX_ZONEORDER=18 95CONFIG_FORCE_MAX_ZONEORDER=18
85CONFIG_SMP=y 96CONFIG_SMP=y
86CONFIG_NR_CPUS=512 97CONFIG_NR_CPUS=512
87# CONFIG_HOTPLUG_CPU is not set 98# CONFIG_HOTPLUG_CPU is not set
99CONFIG_SCHED_SMT=y
88CONFIG_PREEMPT=y 100CONFIG_PREEMPT=y
101CONFIG_SELECT_MEMORY_MODEL=y
102# CONFIG_FLATMEM_MANUAL is not set
103CONFIG_DISCONTIGMEM_MANUAL=y
104# CONFIG_SPARSEMEM_MANUAL is not set
105CONFIG_DISCONTIGMEM=y
106CONFIG_FLAT_NODE_MEM_MAP=y
107CONFIG_NEED_MULTIPLE_NODES=y
89CONFIG_HAVE_DEC_LOCK=y 108CONFIG_HAVE_DEC_LOCK=y
90CONFIG_IA32_SUPPORT=y 109CONFIG_IA32_SUPPORT=y
91CONFIG_COMPAT=y 110CONFIG_COMPAT=y
@@ -105,6 +124,7 @@ CONFIG_BINFMT_ELF=y
105# 124#
106# Power management and ACPI 125# Power management and ACPI
107# 126#
127CONFIG_PM=y
108CONFIG_ACPI=y 128CONFIG_ACPI=y
109 129
110# 130#
@@ -114,6 +134,7 @@ CONFIG_ACPI_BOOT=y
114CONFIG_ACPI_INTERPRETER=y 134CONFIG_ACPI_INTERPRETER=y
115# CONFIG_ACPI_BUTTON is not set 135# CONFIG_ACPI_BUTTON is not set
116CONFIG_ACPI_VIDEO=m 136CONFIG_ACPI_VIDEO=m
137CONFIG_ACPI_HOTKEY=m
117# CONFIG_ACPI_FAN is not set 138# CONFIG_ACPI_FAN is not set
118# CONFIG_ACPI_PROCESSOR is not set 139# CONFIG_ACPI_PROCESSOR is not set
119CONFIG_ACPI_NUMA=y 140CONFIG_ACPI_NUMA=y
@@ -133,6 +154,7 @@ CONFIG_PCI_DOMAINS=y
133# CONFIG_PCI_MSI is not set 154# CONFIG_PCI_MSI is not set
134CONFIG_PCI_LEGACY_PROC=y 155CONFIG_PCI_LEGACY_PROC=y
135CONFIG_PCI_NAMES=y 156CONFIG_PCI_NAMES=y
157# CONFIG_PCI_DEBUG is not set
136 158
137# 159#
138# PCI Hotplug Support 160# PCI Hotplug Support
@@ -141,7 +163,6 @@ CONFIG_HOTPLUG_PCI=y
141# CONFIG_HOTPLUG_PCI_FAKE is not set 163# CONFIG_HOTPLUG_PCI_FAKE is not set
142# CONFIG_HOTPLUG_PCI_ACPI is not set 164# CONFIG_HOTPLUG_PCI_ACPI is not set
143# CONFIG_HOTPLUG_PCI_CPCI is not set 165# CONFIG_HOTPLUG_PCI_CPCI is not set
144# CONFIG_HOTPLUG_PCI_PCIE is not set
145# CONFIG_HOTPLUG_PCI_SHPC is not set 166# CONFIG_HOTPLUG_PCI_SHPC is not set
146CONFIG_HOTPLUG_PCI_SGI=y 167CONFIG_HOTPLUG_PCI_SGI=y
147 168
@@ -151,8 +172,70 @@ CONFIG_HOTPLUG_PCI_SGI=y
151# CONFIG_PCCARD is not set 172# CONFIG_PCCARD is not set
152 173
153# 174#
154# PC-card bridges 175# Networking
176#
177CONFIG_NET=y
178
179#
180# Networking options
181#
182CONFIG_PACKET=y
183CONFIG_PACKET_MMAP=y
184CONFIG_UNIX=y
185# CONFIG_NET_KEY is not set
186CONFIG_INET=y
187CONFIG_IP_MULTICAST=y
188# CONFIG_IP_ADVANCED_ROUTER is not set
189CONFIG_IP_FIB_HASH=y
190# CONFIG_IP_PNP is not set
191# CONFIG_NET_IPIP is not set
192# CONFIG_NET_IPGRE is not set
193# CONFIG_IP_MROUTE is not set
194# CONFIG_ARPD is not set
195CONFIG_SYN_COOKIES=y
196# CONFIG_INET_AH is not set
197# CONFIG_INET_ESP is not set
198# CONFIG_INET_IPCOMP is not set
199# CONFIG_INET_TUNNEL is not set
200CONFIG_IP_TCPDIAG=y
201# CONFIG_IP_TCPDIAG_IPV6 is not set
202# CONFIG_TCP_CONG_ADVANCED is not set
203CONFIG_TCP_CONG_BIC=y
204CONFIG_IPV6=m
205# CONFIG_IPV6_PRIVACY is not set
206# CONFIG_INET6_AH is not set
207# CONFIG_INET6_ESP is not set
208# CONFIG_INET6_IPCOMP is not set
209# CONFIG_INET6_TUNNEL is not set
210# CONFIG_IPV6_TUNNEL is not set
211# CONFIG_NETFILTER is not set
212
213#
214# SCTP Configuration (EXPERIMENTAL)
215#
216# CONFIG_IP_SCTP is not set
217# CONFIG_ATM is not set
218# CONFIG_BRIDGE is not set
219# CONFIG_VLAN_8021Q is not set
220# CONFIG_DECNET is not set
221# CONFIG_LLC2 is not set
222# CONFIG_IPX is not set
223# CONFIG_ATALK is not set
224# CONFIG_X25 is not set
225# CONFIG_LAPB is not set
226# CONFIG_NET_DIVERT is not set
227# CONFIG_ECONET is not set
228# CONFIG_WAN_ROUTER is not set
229# CONFIG_NET_SCHED is not set
230# CONFIG_NET_CLS_ROUTE is not set
231
232#
233# Network testing
155# 234#
235# CONFIG_NET_PKTGEN is not set
236# CONFIG_HAMRADIO is not set
237# CONFIG_IRDA is not set
238# CONFIG_BT is not set
156 239
157# 240#
158# Device Drivers 241# Device Drivers
@@ -163,7 +246,7 @@ CONFIG_HOTPLUG_PCI_SGI=y
163# 246#
164CONFIG_STANDALONE=y 247CONFIG_STANDALONE=y
165CONFIG_PREVENT_FIRMWARE_BUILD=y 248CONFIG_PREVENT_FIRMWARE_BUILD=y
166CONFIG_FW_LOADER=m 249CONFIG_FW_LOADER=y
167# CONFIG_DEBUG_DRIVER is not set 250# CONFIG_DEBUG_DRIVER is not set
168 251
169# 252#
@@ -188,6 +271,7 @@ CONFIG_FW_LOADER=m
188# CONFIG_BLK_CPQ_CISS_DA is not set 271# CONFIG_BLK_CPQ_CISS_DA is not set
189# CONFIG_BLK_DEV_DAC960 is not set 272# CONFIG_BLK_DEV_DAC960 is not set
190# CONFIG_BLK_DEV_UMEM is not set 273# CONFIG_BLK_DEV_UMEM is not set
274# CONFIG_BLK_DEV_COW_COMMON is not set
191CONFIG_BLK_DEV_LOOP=y 275CONFIG_BLK_DEV_LOOP=y
192CONFIG_BLK_DEV_CRYPTOLOOP=m 276CONFIG_BLK_DEV_CRYPTOLOOP=m
193CONFIG_BLK_DEV_NBD=m 277CONFIG_BLK_DEV_NBD=m
@@ -252,6 +336,7 @@ CONFIG_IDEDMA_PCI_AUTO=y
252# CONFIG_BLK_DEV_HPT366 is not set 336# CONFIG_BLK_DEV_HPT366 is not set
253# CONFIG_BLK_DEV_SC1200 is not set 337# CONFIG_BLK_DEV_SC1200 is not set
254# CONFIG_BLK_DEV_PIIX is not set 338# CONFIG_BLK_DEV_PIIX is not set
339# CONFIG_BLK_DEV_IT821X is not set
255# CONFIG_BLK_DEV_NS87415 is not set 340# CONFIG_BLK_DEV_NS87415 is not set
256# CONFIG_BLK_DEV_PDC202XX_OLD is not set 341# CONFIG_BLK_DEV_PDC202XX_OLD is not set
257# CONFIG_BLK_DEV_PDC202XX_NEW is not set 342# CONFIG_BLK_DEV_PDC202XX_NEW is not set
@@ -282,6 +367,7 @@ CONFIG_CHR_DEV_ST=m
282CONFIG_BLK_DEV_SR=m 367CONFIG_BLK_DEV_SR=m
283# CONFIG_BLK_DEV_SR_VENDOR is not set 368# CONFIG_BLK_DEV_SR_VENDOR is not set
284CONFIG_CHR_DEV_SG=m 369CONFIG_CHR_DEV_SG=m
370CONFIG_CHR_DEV_SCH=m
285 371
286# 372#
287# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 373# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
@@ -315,24 +401,20 @@ CONFIG_SCSI_SATA=y
315# CONFIG_SCSI_ATA_PIIX is not set 401# CONFIG_SCSI_ATA_PIIX is not set
316# CONFIG_SCSI_SATA_NV is not set 402# CONFIG_SCSI_SATA_NV is not set
317# CONFIG_SCSI_SATA_PROMISE is not set 403# CONFIG_SCSI_SATA_PROMISE is not set
404# CONFIG_SCSI_SATA_QSTOR is not set
318# CONFIG_SCSI_SATA_SX4 is not set 405# CONFIG_SCSI_SATA_SX4 is not set
319# CONFIG_SCSI_SATA_SIL is not set 406# CONFIG_SCSI_SATA_SIL is not set
320# CONFIG_SCSI_SATA_SIS is not set 407# CONFIG_SCSI_SATA_SIS is not set
321# CONFIG_SCSI_SATA_ULI is not set 408# CONFIG_SCSI_SATA_ULI is not set
322# CONFIG_SCSI_SATA_VIA is not set 409# CONFIG_SCSI_SATA_VIA is not set
323CONFIG_SCSI_SATA_VITESSE=y 410CONFIG_SCSI_SATA_VITESSE=y
324# CONFIG_SCSI_BUSLOGIC is not set
325# CONFIG_SCSI_DMX3191D is not set 411# CONFIG_SCSI_DMX3191D is not set
326# CONFIG_SCSI_EATA is not set
327# CONFIG_SCSI_EATA_PIO is not set
328# CONFIG_SCSI_FUTURE_DOMAIN is not set 412# CONFIG_SCSI_FUTURE_DOMAIN is not set
329# CONFIG_SCSI_GDTH is not set
330# CONFIG_SCSI_IPS is not set 413# CONFIG_SCSI_IPS is not set
331# CONFIG_SCSI_INITIO is not set 414# CONFIG_SCSI_INITIO is not set
332# CONFIG_SCSI_INIA100 is not set 415# CONFIG_SCSI_INIA100 is not set
333# CONFIG_SCSI_SYM53C8XX_2 is not set 416# CONFIG_SCSI_SYM53C8XX_2 is not set
334# CONFIG_SCSI_IPR is not set 417# CONFIG_SCSI_IPR is not set
335# CONFIG_SCSI_QLOGIC_ISP is not set
336# CONFIG_SCSI_QLOGIC_FC is not set 418# CONFIG_SCSI_QLOGIC_FC is not set
337CONFIG_SCSI_QLOGIC_1280=y 419CONFIG_SCSI_QLOGIC_1280=y
338# CONFIG_SCSI_QLOGIC_1280_1040 is not set 420# CONFIG_SCSI_QLOGIC_1280_1040 is not set
@@ -342,6 +424,8 @@ CONFIG_SCSI_QLA22XX=y
342CONFIG_SCSI_QLA2300=y 424CONFIG_SCSI_QLA2300=y
343CONFIG_SCSI_QLA2322=y 425CONFIG_SCSI_QLA2322=y
344# CONFIG_SCSI_QLA6312 is not set 426# CONFIG_SCSI_QLA6312 is not set
427# CONFIG_SCSI_QLA24XX is not set
428# CONFIG_SCSI_LPFC is not set
345# CONFIG_SCSI_DC395x is not set 429# CONFIG_SCSI_DC395x is not set
346# CONFIG_SCSI_DC390T is not set 430# CONFIG_SCSI_DC390T is not set
347# CONFIG_SCSI_DEBUG is not set 431# CONFIG_SCSI_DEBUG is not set
@@ -364,11 +448,15 @@ CONFIG_DM_CRYPT=m
364CONFIG_DM_SNAPSHOT=m 448CONFIG_DM_SNAPSHOT=m
365CONFIG_DM_MIRROR=m 449CONFIG_DM_MIRROR=m
366CONFIG_DM_ZERO=m 450CONFIG_DM_ZERO=m
451CONFIG_DM_MULTIPATH=m
452CONFIG_DM_MULTIPATH_EMC=m
367 453
368# 454#
369# Fusion MPT device support 455# Fusion MPT device support
370# 456#
371CONFIG_FUSION=y 457CONFIG_FUSION=y
458CONFIG_FUSION_SPI=y
459CONFIG_FUSION_FC=y
372CONFIG_FUSION_MAX_SGE=128 460CONFIG_FUSION_MAX_SGE=128
373CONFIG_FUSION_CTL=m 461CONFIG_FUSION_CTL=m
374 462
@@ -383,82 +471,13 @@ CONFIG_FUSION_CTL=m
383# CONFIG_I2O is not set 471# CONFIG_I2O is not set
384 472
385# 473#
386# Networking support 474# Network device support
387#
388CONFIG_NET=y
389
390#
391# Networking options
392#
393CONFIG_PACKET=y
394CONFIG_PACKET_MMAP=y
395CONFIG_NETLINK_DEV=y
396CONFIG_UNIX=y
397# CONFIG_NET_KEY is not set
398CONFIG_INET=y
399CONFIG_IP_MULTICAST=y
400# CONFIG_IP_ADVANCED_ROUTER is not set
401# CONFIG_IP_PNP is not set
402# CONFIG_NET_IPIP is not set
403# CONFIG_NET_IPGRE is not set
404# CONFIG_IP_MROUTE is not set
405# CONFIG_ARPD is not set
406CONFIG_SYN_COOKIES=y
407# CONFIG_INET_AH is not set
408# CONFIG_INET_ESP is not set
409# CONFIG_INET_IPCOMP is not set
410# CONFIG_INET_TUNNEL is not set
411CONFIG_IP_TCPDIAG=y
412# CONFIG_IP_TCPDIAG_IPV6 is not set
413CONFIG_IPV6=m
414# CONFIG_IPV6_PRIVACY is not set
415# CONFIG_INET6_AH is not set
416# CONFIG_INET6_ESP is not set
417# CONFIG_INET6_IPCOMP is not set
418# CONFIG_INET6_TUNNEL is not set
419# CONFIG_IPV6_TUNNEL is not set
420# CONFIG_NETFILTER is not set
421
422#
423# SCTP Configuration (EXPERIMENTAL)
424#
425# CONFIG_IP_SCTP is not set
426# CONFIG_ATM is not set
427# CONFIG_BRIDGE is not set
428# CONFIG_VLAN_8021Q is not set
429# CONFIG_DECNET is not set
430# CONFIG_LLC2 is not set
431# CONFIG_IPX is not set
432# CONFIG_ATALK is not set
433# CONFIG_X25 is not set
434# CONFIG_LAPB is not set
435# CONFIG_NET_DIVERT is not set
436# CONFIG_ECONET is not set
437# CONFIG_WAN_ROUTER is not set
438
439#
440# QoS and/or fair queueing
441#
442# CONFIG_NET_SCHED is not set
443# CONFIG_NET_CLS_ROUTE is not set
444
445#
446# Network testing
447# 475#
448# CONFIG_NET_PKTGEN is not set
449CONFIG_NETPOLL=y
450# CONFIG_NETPOLL_RX is not set
451# CONFIG_NETPOLL_TRAP is not set
452CONFIG_NET_POLL_CONTROLLER=y
453# CONFIG_HAMRADIO is not set
454# CONFIG_IRDA is not set
455# CONFIG_BT is not set
456CONFIG_NETDEVICES=y 476CONFIG_NETDEVICES=y
457# CONFIG_DUMMY is not set 477# CONFIG_DUMMY is not set
458# CONFIG_BONDING is not set 478# CONFIG_BONDING is not set
459# CONFIG_EQUALIZER is not set 479# CONFIG_EQUALIZER is not set
460# CONFIG_TUN is not set 480# CONFIG_TUN is not set
461# CONFIG_ETHERTAP is not set
462 481
463# 482#
464# ARCnet devices 483# ARCnet devices
@@ -480,8 +499,10 @@ CONFIG_NETDEVICES=y
480# CONFIG_HAMACHI is not set 499# CONFIG_HAMACHI is not set
481# CONFIG_YELLOWFIN is not set 500# CONFIG_YELLOWFIN is not set
482# CONFIG_R8169 is not set 501# CONFIG_R8169 is not set
502# CONFIG_SKGE is not set
483# CONFIG_SK98LIN is not set 503# CONFIG_SK98LIN is not set
484CONFIG_TIGON3=y 504CONFIG_TIGON3=y
505# CONFIG_BNX2 is not set
485 506
486# 507#
487# Ethernet (10000 Mbit) 508# Ethernet (10000 Mbit)
@@ -512,6 +533,10 @@ CONFIG_S2IO=m
512# CONFIG_NET_FC is not set 533# CONFIG_NET_FC is not set
513# CONFIG_SHAPER is not set 534# CONFIG_SHAPER is not set
514CONFIG_NETCONSOLE=y 535CONFIG_NETCONSOLE=y
536CONFIG_NETPOLL=y
537# CONFIG_NETPOLL_RX is not set
538# CONFIG_NETPOLL_TRAP is not set
539CONFIG_NET_POLL_CONTROLLER=y
515 540
516# 541#
517# ISDN subsystem 542# ISDN subsystem
@@ -541,14 +566,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
541# CONFIG_INPUT_EVBUG is not set 566# CONFIG_INPUT_EVBUG is not set
542 567
543# 568#
544# Input I/O drivers
545#
546# CONFIG_GAMEPORT is not set
547CONFIG_SOUND_GAMEPORT=y
548# CONFIG_SERIO is not set
549# CONFIG_SERIO_I8042 is not set
550
551#
552# Input Device Drivers 569# Input Device Drivers
553# 570#
554# CONFIG_INPUT_KEYBOARD is not set 571# CONFIG_INPUT_KEYBOARD is not set
@@ -558,6 +575,12 @@ CONFIG_SOUND_GAMEPORT=y
558# CONFIG_INPUT_MISC is not set 575# CONFIG_INPUT_MISC is not set
559 576
560# 577#
578# Hardware I/O ports
579#
580# CONFIG_SERIO is not set
581# CONFIG_GAMEPORT is not set
582
583#
561# Character devices 584# Character devices
562# 585#
563CONFIG_VT=y 586CONFIG_VT=y
@@ -568,9 +591,10 @@ CONFIG_SERIAL_NONSTANDARD=y
568# CONFIG_CYCLADES is not set 591# CONFIG_CYCLADES is not set
569# CONFIG_MOXA_SMARTIO is not set 592# CONFIG_MOXA_SMARTIO is not set
570# CONFIG_ISI is not set 593# CONFIG_ISI is not set
571# CONFIG_SYNCLINK is not set
572# CONFIG_SYNCLINKMP is not set 594# CONFIG_SYNCLINKMP is not set
573# CONFIG_N_HDLC is not set 595# CONFIG_N_HDLC is not set
596# CONFIG_SPECIALIX is not set
597# CONFIG_SX is not set
574# CONFIG_STALDRV is not set 598# CONFIG_STALDRV is not set
575CONFIG_SGI_SNSC=y 599CONFIG_SGI_SNSC=y
576CONFIG_SGI_TIOCX=y 600CONFIG_SGI_TIOCX=y
@@ -587,6 +611,7 @@ CONFIG_SGI_MBCS=m
587CONFIG_SERIAL_CORE=y 611CONFIG_SERIAL_CORE=y
588CONFIG_SERIAL_CORE_CONSOLE=y 612CONFIG_SERIAL_CORE_CONSOLE=y
589CONFIG_SERIAL_SGI_L1_CONSOLE=y 613CONFIG_SERIAL_SGI_L1_CONSOLE=y
614# CONFIG_SERIAL_JSM is not set
590CONFIG_SERIAL_SGI_IOC4=y 615CONFIG_SERIAL_SGI_IOC4=y
591CONFIG_UNIX98_PTYS=y 616CONFIG_UNIX98_PTYS=y
592CONFIG_LEGACY_PTYS=y 617CONFIG_LEGACY_PTYS=y
@@ -615,12 +640,19 @@ CONFIG_EFI_RTC=y
615CONFIG_RAW_DRIVER=m 640CONFIG_RAW_DRIVER=m
616# CONFIG_HPET is not set 641# CONFIG_HPET is not set
617CONFIG_MAX_RAW_DEVS=256 642CONFIG_MAX_RAW_DEVS=256
643# CONFIG_HANGCHECK_TIMER is not set
618CONFIG_MMTIMER=y 644CONFIG_MMTIMER=y
619 645
620# 646#
647# TPM devices
648#
649# CONFIG_TCG_TPM is not set
650
651#
621# I2C support 652# I2C support
622# 653#
623# CONFIG_I2C is not set 654# CONFIG_I2C is not set
655# CONFIG_I2C_SENSOR is not set
624 656
625# 657#
626# Dallas's 1-wire bus 658# Dallas's 1-wire bus
@@ -628,6 +660,11 @@ CONFIG_MMTIMER=y
628# CONFIG_W1 is not set 660# CONFIG_W1 is not set
629 661
630# 662#
663# Hardware Monitoring support
664#
665# CONFIG_HWMON is not set
666
667#
631# Misc devices 668# Misc devices
632# 669#
633 670
@@ -660,6 +697,8 @@ CONFIG_DUMMY_CONSOLE=y
660# 697#
661# USB support 698# USB support
662# 699#
700CONFIG_USB_ARCH_HAS_HCD=y
701CONFIG_USB_ARCH_HAS_OHCI=y
663CONFIG_USB=m 702CONFIG_USB=m
664# CONFIG_USB_DEBUG is not set 703# CONFIG_USB_DEBUG is not set
665 704
@@ -669,9 +708,8 @@ CONFIG_USB=m
669# CONFIG_USB_DEVICEFS is not set 708# CONFIG_USB_DEVICEFS is not set
670# CONFIG_USB_BANDWIDTH is not set 709# CONFIG_USB_BANDWIDTH is not set
671# CONFIG_USB_DYNAMIC_MINORS is not set 710# CONFIG_USB_DYNAMIC_MINORS is not set
711# CONFIG_USB_SUSPEND is not set
672# CONFIG_USB_OTG is not set 712# CONFIG_USB_OTG is not set
673CONFIG_USB_ARCH_HAS_HCD=y
674CONFIG_USB_ARCH_HAS_OHCI=y
675 713
676# 714#
677# USB Host Controller Drivers 715# USB Host Controller Drivers
@@ -679,7 +717,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
679CONFIG_USB_EHCI_HCD=m 717CONFIG_USB_EHCI_HCD=m
680# CONFIG_USB_EHCI_SPLIT_ISO is not set 718# CONFIG_USB_EHCI_SPLIT_ISO is not set
681# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 719# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
720# CONFIG_USB_ISP116X_HCD is not set
682CONFIG_USB_OHCI_HCD=m 721CONFIG_USB_OHCI_HCD=m
722# CONFIG_USB_OHCI_BIG_ENDIAN is not set
723CONFIG_USB_OHCI_LITTLE_ENDIAN=y
683CONFIG_USB_UHCI_HCD=m 724CONFIG_USB_UHCI_HCD=m
684# CONFIG_USB_SL811_HCD is not set 725# CONFIG_USB_SL811_HCD is not set
685 726
@@ -710,12 +751,15 @@ CONFIG_USB_HIDINPUT=y
710# CONFIG_USB_MOUSE is not set 751# CONFIG_USB_MOUSE is not set
711# CONFIG_USB_AIPTEK is not set 752# CONFIG_USB_AIPTEK is not set
712# CONFIG_USB_WACOM is not set 753# CONFIG_USB_WACOM is not set
754# CONFIG_USB_ACECAD is not set
713# CONFIG_USB_KBTAB is not set 755# CONFIG_USB_KBTAB is not set
714# CONFIG_USB_POWERMATE is not set 756# CONFIG_USB_POWERMATE is not set
715# CONFIG_USB_MTOUCH is not set 757# CONFIG_USB_MTOUCH is not set
758# CONFIG_USB_ITMTOUCH is not set
716# CONFIG_USB_EGALAX is not set 759# CONFIG_USB_EGALAX is not set
717# CONFIG_USB_XPAD is not set 760# CONFIG_USB_XPAD is not set
718# CONFIG_USB_ATI_REMOTE is not set 761# CONFIG_USB_ATI_REMOTE is not set
762# CONFIG_USB_KEYSPAN_REMOTE is not set
719 763
720# 764#
721# USB Imaging devices 765# USB Imaging devices
@@ -740,6 +784,7 @@ CONFIG_USB_HIDINPUT=y
740# CONFIG_USB_PEGASUS is not set 784# CONFIG_USB_PEGASUS is not set
741# CONFIG_USB_RTL8150 is not set 785# CONFIG_USB_RTL8150 is not set
742# CONFIG_USB_USBNET is not set 786# CONFIG_USB_USBNET is not set
787CONFIG_USB_MON=y
743 788
744# 789#
745# USB port drivers 790# USB port drivers
@@ -763,9 +808,12 @@ CONFIG_USB_HIDINPUT=y
763# CONFIG_USB_CYTHERM is not set 808# CONFIG_USB_CYTHERM is not set
764# CONFIG_USB_PHIDGETKIT is not set 809# CONFIG_USB_PHIDGETKIT is not set
765# CONFIG_USB_PHIDGETSERVO is not set 810# CONFIG_USB_PHIDGETSERVO is not set
811# CONFIG_USB_IDMOUSE is not set
812# CONFIG_USB_SISUSBVGA is not set
813# CONFIG_USB_LD is not set
766 814
767# 815#
768# USB ATM/DSL drivers 816# USB DSL modem support
769# 817#
770 818
771# 819#
@@ -782,6 +830,7 @@ CONFIG_USB_HIDINPUT=y
782# InfiniBand support 830# InfiniBand support
783# 831#
784CONFIG_INFINIBAND=m 832CONFIG_INFINIBAND=m
833CONFIG_INFINIBAND_USER_VERBS=m
785CONFIG_INFINIBAND_MTHCA=m 834CONFIG_INFINIBAND_MTHCA=m
786# CONFIG_INFINIBAND_MTHCA_DEBUG is not set 835# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
787CONFIG_INFINIBAND_IPOIB=m 836CONFIG_INFINIBAND_IPOIB=m
@@ -799,6 +848,7 @@ CONFIG_EXT2_FS=y
799CONFIG_EXT2_FS_XATTR=y 848CONFIG_EXT2_FS_XATTR=y
800CONFIG_EXT2_FS_POSIX_ACL=y 849CONFIG_EXT2_FS_POSIX_ACL=y
801CONFIG_EXT2_FS_SECURITY=y 850CONFIG_EXT2_FS_SECURITY=y
851# CONFIG_EXT2_FS_XIP is not set
802CONFIG_EXT3_FS=y 852CONFIG_EXT3_FS=y
803CONFIG_EXT3_FS_XATTR=y 853CONFIG_EXT3_FS_XATTR=y
804CONFIG_EXT3_FS_POSIX_ACL=y 854CONFIG_EXT3_FS_POSIX_ACL=y
@@ -814,13 +864,19 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
814CONFIG_REISERFS_FS_SECURITY=y 864CONFIG_REISERFS_FS_SECURITY=y
815# CONFIG_JFS_FS is not set 865# CONFIG_JFS_FS is not set
816CONFIG_FS_POSIX_ACL=y 866CONFIG_FS_POSIX_ACL=y
867
868#
869# XFS support
870#
817CONFIG_XFS_FS=y 871CONFIG_XFS_FS=y
872CONFIG_XFS_EXPORT=y
818CONFIG_XFS_RT=y 873CONFIG_XFS_RT=y
819CONFIG_XFS_QUOTA=y 874CONFIG_XFS_QUOTA=y
820# CONFIG_XFS_SECURITY is not set 875# CONFIG_XFS_SECURITY is not set
821CONFIG_XFS_POSIX_ACL=y 876CONFIG_XFS_POSIX_ACL=y
822# CONFIG_MINIX_FS is not set 877# CONFIG_MINIX_FS is not set
823# CONFIG_ROMFS_FS is not set 878# CONFIG_ROMFS_FS is not set
879CONFIG_INOTIFY=y
824CONFIG_QUOTA=y 880CONFIG_QUOTA=y
825# CONFIG_QFMT_V1 is not set 881# CONFIG_QFMT_V1 is not set
826# CONFIG_QFMT_V2 is not set 882# CONFIG_QFMT_V2 is not set
@@ -854,7 +910,6 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
854CONFIG_PROC_FS=y 910CONFIG_PROC_FS=y
855CONFIG_PROC_KCORE=y 911CONFIG_PROC_KCORE=y
856CONFIG_SYSFS=y 912CONFIG_SYSFS=y
857# CONFIG_DEVFS_FS is not set
858# CONFIG_DEVPTS_FS_XATTR is not set 913# CONFIG_DEVPTS_FS_XATTR is not set
859CONFIG_TMPFS=y 914CONFIG_TMPFS=y
860CONFIG_TMPFS_XATTR=y 915CONFIG_TMPFS_XATTR=y
@@ -885,15 +940,18 @@ CONFIG_RAMFS=y
885# 940#
886CONFIG_NFS_FS=m 941CONFIG_NFS_FS=m
887CONFIG_NFS_V3=y 942CONFIG_NFS_V3=y
943# CONFIG_NFS_V3_ACL is not set
888CONFIG_NFS_V4=y 944CONFIG_NFS_V4=y
889CONFIG_NFS_DIRECTIO=y 945CONFIG_NFS_DIRECTIO=y
890CONFIG_NFSD=m 946CONFIG_NFSD=m
891CONFIG_NFSD_V3=y 947CONFIG_NFSD_V3=y
948# CONFIG_NFSD_V3_ACL is not set
892CONFIG_NFSD_V4=y 949CONFIG_NFSD_V4=y
893CONFIG_NFSD_TCP=y 950CONFIG_NFSD_TCP=y
894CONFIG_LOCKD=m 951CONFIG_LOCKD=m
895CONFIG_LOCKD_V4=y 952CONFIG_LOCKD_V4=y
896CONFIG_EXPORTFS=m 953CONFIG_EXPORTFS=y
954CONFIG_NFS_COMMON=y
897CONFIG_SUNRPC=m 955CONFIG_SUNRPC=m
898CONFIG_SUNRPC_GSS=m 956CONFIG_SUNRPC_GSS=m
899CONFIG_RPCSEC_GSS_KRB5=m 957CONFIG_RPCSEC_GSS_KRB5=m
@@ -980,6 +1038,9 @@ CONFIG_CRC32=y
980# CONFIG_LIBCRC32C is not set 1038# CONFIG_LIBCRC32C is not set
981CONFIG_ZLIB_INFLATE=m 1039CONFIG_ZLIB_INFLATE=m
982CONFIG_ZLIB_DEFLATE=m 1040CONFIG_ZLIB_DEFLATE=m
1041CONFIG_GENERIC_ALLOCATOR=y
1042CONFIG_GENERIC_HARDIRQS=y
1043CONFIG_GENERIC_IRQ_PROBE=y
983 1044
984# 1045#
985# Profiling support 1046# Profiling support
@@ -989,15 +1050,19 @@ CONFIG_ZLIB_DEFLATE=m
989# 1050#
990# Kernel hacking 1051# Kernel hacking
991# 1052#
1053# CONFIG_PRINTK_TIME is not set
992CONFIG_DEBUG_KERNEL=y 1054CONFIG_DEBUG_KERNEL=y
993CONFIG_MAGIC_SYSRQ=y 1055CONFIG_MAGIC_SYSRQ=y
1056CONFIG_LOG_BUF_SHIFT=20
994# CONFIG_SCHEDSTATS is not set 1057# CONFIG_SCHEDSTATS is not set
995# CONFIG_DEBUG_SLAB is not set 1058# CONFIG_DEBUG_SLAB is not set
1059CONFIG_DEBUG_PREEMPT=y
996# CONFIG_DEBUG_SPINLOCK is not set 1060# CONFIG_DEBUG_SPINLOCK is not set
997# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1061# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
998# CONFIG_DEBUG_KOBJECT is not set 1062# CONFIG_DEBUG_KOBJECT is not set
999CONFIG_DEBUG_INFO=y 1063CONFIG_DEBUG_INFO=y
1000# CONFIG_DEBUG_FS is not set 1064# CONFIG_DEBUG_FS is not set
1065# CONFIG_KPROBES is not set
1001CONFIG_IA64_GRANULE_16MB=y 1066CONFIG_IA64_GRANULE_16MB=y
1002# CONFIG_IA64_GRANULE_64MB is not set 1067# CONFIG_IA64_GRANULE_64MB is not set
1003# CONFIG_IA64_PRINT_HAZARDS is not set 1068# CONFIG_IA64_PRINT_HAZARDS is not set
@@ -1019,11 +1084,12 @@ CONFIG_CRYPTO=y
1019CONFIG_CRYPTO_HMAC=y 1084CONFIG_CRYPTO_HMAC=y
1020# CONFIG_CRYPTO_NULL is not set 1085# CONFIG_CRYPTO_NULL is not set
1021# CONFIG_CRYPTO_MD4 is not set 1086# CONFIG_CRYPTO_MD4 is not set
1022CONFIG_CRYPTO_MD5=m 1087CONFIG_CRYPTO_MD5=y
1023CONFIG_CRYPTO_SHA1=m 1088CONFIG_CRYPTO_SHA1=m
1024# CONFIG_CRYPTO_SHA256 is not set 1089# CONFIG_CRYPTO_SHA256 is not set
1025# CONFIG_CRYPTO_SHA512 is not set 1090# CONFIG_CRYPTO_SHA512 is not set
1026# CONFIG_CRYPTO_WP512 is not set 1091# CONFIG_CRYPTO_WP512 is not set
1092# CONFIG_CRYPTO_TGR192 is not set
1027CONFIG_CRYPTO_DES=m 1093CONFIG_CRYPTO_DES=m
1028# CONFIG_CRYPTO_BLOWFISH is not set 1094# CONFIG_CRYPTO_BLOWFISH is not set
1029# CONFIG_CRYPTO_TWOFISH is not set 1095# CONFIG_CRYPTO_TWOFISH is not set
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig
index 73454eee26f1..c853cfcd2d11 100644
--- a/arch/ia64/configs/tiger_defconfig
+++ b/arch/ia64/configs/tiger_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.13-rc1-20050629 3# Linux kernel version: 2.6.13-rc6-tiger-smp
4# Wed Jun 29 15:28:12 2005 4# Wed Aug 17 10:19:51 2005
5# 5#
6 6
7# 7#
@@ -132,6 +132,7 @@ CONFIG_ACPI_BOOT=y
132CONFIG_ACPI_INTERPRETER=y 132CONFIG_ACPI_INTERPRETER=y
133CONFIG_ACPI_BUTTON=m 133CONFIG_ACPI_BUTTON=m
134# CONFIG_ACPI_VIDEO is not set 134# CONFIG_ACPI_VIDEO is not set
135# CONFIG_ACPI_HOTKEY is not set
135CONFIG_ACPI_FAN=m 136CONFIG_ACPI_FAN=m
136CONFIG_ACPI_PROCESSOR=m 137CONFIG_ACPI_PROCESSOR=m
137# CONFIG_ACPI_HOTPLUG_CPU is not set 138# CONFIG_ACPI_HOTPLUG_CPU is not set
@@ -170,6 +171,66 @@ CONFIG_HOTPLUG_PCI_ACPI=m
170# CONFIG_PCCARD is not set 171# CONFIG_PCCARD is not set
171 172
172# 173#
174# Networking
175#
176CONFIG_NET=y
177
178#
179# Networking options
180#
181CONFIG_PACKET=y
182# CONFIG_PACKET_MMAP is not set
183CONFIG_UNIX=y
184# CONFIG_NET_KEY is not set
185CONFIG_INET=y
186CONFIG_IP_MULTICAST=y
187# CONFIG_IP_ADVANCED_ROUTER is not set
188CONFIG_IP_FIB_HASH=y
189# CONFIG_IP_PNP is not set
190# CONFIG_NET_IPIP is not set
191# CONFIG_NET_IPGRE is not set
192# CONFIG_IP_MROUTE is not set
193CONFIG_ARPD=y
194CONFIG_SYN_COOKIES=y
195# CONFIG_INET_AH is not set
196# CONFIG_INET_ESP is not set
197# CONFIG_INET_IPCOMP is not set
198# CONFIG_INET_TUNNEL is not set
199CONFIG_IP_TCPDIAG=y
200# CONFIG_IP_TCPDIAG_IPV6 is not set
201# CONFIG_TCP_CONG_ADVANCED is not set
202CONFIG_TCP_CONG_BIC=y
203# CONFIG_IPV6 is not set
204# CONFIG_NETFILTER is not set
205
206#
207# SCTP Configuration (EXPERIMENTAL)
208#
209# CONFIG_IP_SCTP is not set
210# CONFIG_ATM is not set
211# CONFIG_BRIDGE is not set
212# CONFIG_VLAN_8021Q is not set
213# CONFIG_DECNET is not set
214# CONFIG_LLC2 is not set
215# CONFIG_IPX is not set
216# CONFIG_ATALK is not set
217# CONFIG_X25 is not set
218# CONFIG_LAPB is not set
219# CONFIG_NET_DIVERT is not set
220# CONFIG_ECONET is not set
221# CONFIG_WAN_ROUTER is not set
222# CONFIG_NET_SCHED is not set
223# CONFIG_NET_CLS_ROUTE is not set
224
225#
226# Network testing
227#
228# CONFIG_NET_PKTGEN is not set
229# CONFIG_HAMRADIO is not set
230# CONFIG_IRDA is not set
231# CONFIG_BT is not set
232
233#
173# Device Drivers 234# Device Drivers
174# 235#
175 236
@@ -178,7 +239,7 @@ CONFIG_HOTPLUG_PCI_ACPI=m
178# 239#
179CONFIG_STANDALONE=y 240CONFIG_STANDALONE=y
180CONFIG_PREVENT_FIRMWARE_BUILD=y 241CONFIG_PREVENT_FIRMWARE_BUILD=y
181# CONFIG_FW_LOADER is not set 242CONFIG_FW_LOADER=m
182# CONFIG_DEBUG_DRIVER is not set 243# CONFIG_DEBUG_DRIVER is not set
183 244
184# 245#
@@ -348,6 +409,7 @@ CONFIG_SCSI_QLA22XX=m
348CONFIG_SCSI_QLA2300=m 409CONFIG_SCSI_QLA2300=m
349CONFIG_SCSI_QLA2322=m 410CONFIG_SCSI_QLA2322=m
350# CONFIG_SCSI_QLA6312 is not set 411# CONFIG_SCSI_QLA6312 is not set
412# CONFIG_SCSI_QLA24XX is not set
351# CONFIG_SCSI_LPFC is not set 413# CONFIG_SCSI_LPFC is not set
352# CONFIG_SCSI_DC395x is not set 414# CONFIG_SCSI_DC395x is not set
353# CONFIG_SCSI_DC390T is not set 415# CONFIG_SCSI_DC390T is not set
@@ -393,72 +455,8 @@ CONFIG_FUSION_CTL=y
393# CONFIG_I2O is not set 455# CONFIG_I2O is not set
394 456
395# 457#
396# Networking support 458# Network device support
397#
398CONFIG_NET=y
399
400#
401# Networking options
402# 459#
403CONFIG_PACKET=y
404# CONFIG_PACKET_MMAP is not set
405CONFIG_UNIX=y
406# CONFIG_NET_KEY is not set
407CONFIG_INET=y
408CONFIG_IP_MULTICAST=y
409# CONFIG_IP_ADVANCED_ROUTER is not set
410CONFIG_IP_FIB_HASH=y
411# CONFIG_IP_PNP is not set
412# CONFIG_NET_IPIP is not set
413# CONFIG_NET_IPGRE is not set
414# CONFIG_IP_MROUTE is not set
415CONFIG_ARPD=y
416CONFIG_SYN_COOKIES=y
417# CONFIG_INET_AH is not set
418# CONFIG_INET_ESP is not set
419# CONFIG_INET_IPCOMP is not set
420# CONFIG_INET_TUNNEL is not set
421CONFIG_IP_TCPDIAG=y
422# CONFIG_IP_TCPDIAG_IPV6 is not set
423# CONFIG_TCP_CONG_ADVANCED is not set
424CONFIG_TCP_CONG_BIC=y
425# CONFIG_IPV6 is not set
426# CONFIG_NETFILTER is not set
427
428#
429# SCTP Configuration (EXPERIMENTAL)
430#
431# CONFIG_IP_SCTP is not set
432# CONFIG_ATM is not set
433# CONFIG_BRIDGE is not set
434# CONFIG_VLAN_8021Q is not set
435# CONFIG_DECNET is not set
436# CONFIG_LLC2 is not set
437# CONFIG_IPX is not set
438# CONFIG_ATALK is not set
439# CONFIG_X25 is not set
440# CONFIG_LAPB is not set
441# CONFIG_NET_DIVERT is not set
442# CONFIG_ECONET is not set
443# CONFIG_WAN_ROUTER is not set
444
445#
446# QoS and/or fair queueing
447#
448# CONFIG_NET_SCHED is not set
449# CONFIG_NET_CLS_ROUTE is not set
450
451#
452# Network testing
453#
454# CONFIG_NET_PKTGEN is not set
455CONFIG_NETPOLL=y
456# CONFIG_NETPOLL_RX is not set
457# CONFIG_NETPOLL_TRAP is not set
458CONFIG_NET_POLL_CONTROLLER=y
459# CONFIG_HAMRADIO is not set
460# CONFIG_IRDA is not set
461# CONFIG_BT is not set
462CONFIG_NETDEVICES=y 460CONFIG_NETDEVICES=y
463CONFIG_DUMMY=m 461CONFIG_DUMMY=m
464# CONFIG_BONDING is not set 462# CONFIG_BONDING is not set
@@ -555,6 +553,10 @@ CONFIG_TIGON3=y
555# CONFIG_NET_FC is not set 553# CONFIG_NET_FC is not set
556# CONFIG_SHAPER is not set 554# CONFIG_SHAPER is not set
557CONFIG_NETCONSOLE=y 555CONFIG_NETCONSOLE=y
556CONFIG_NETPOLL=y
557# CONFIG_NETPOLL_RX is not set
558# CONFIG_NETPOLL_TRAP is not set
559CONFIG_NET_POLL_CONTROLLER=y
558 560
559# 561#
560# ISDN subsystem 562# ISDN subsystem
@@ -680,6 +682,7 @@ CONFIG_DRM_R128=m
680CONFIG_DRM_RADEON=m 682CONFIG_DRM_RADEON=m
681CONFIG_DRM_MGA=m 683CONFIG_DRM_MGA=m
682CONFIG_DRM_SIS=m 684CONFIG_DRM_SIS=m
685# CONFIG_DRM_VIA is not set
683CONFIG_RAW_DRIVER=m 686CONFIG_RAW_DRIVER=m
684CONFIG_HPET=y 687CONFIG_HPET=y
685# CONFIG_HPET_RTC_IRQ is not set 688# CONFIG_HPET_RTC_IRQ is not set
@@ -696,6 +699,7 @@ CONFIG_MAX_RAW_DEVS=256
696# I2C support 699# I2C support
697# 700#
698# CONFIG_I2C is not set 701# CONFIG_I2C is not set
702# CONFIG_I2C_SENSOR is not set
699 703
700# 704#
701# Dallas's 1-wire bus 705# Dallas's 1-wire bus
@@ -703,6 +707,12 @@ CONFIG_MAX_RAW_DEVS=256
703# CONFIG_W1 is not set 707# CONFIG_W1 is not set
704 708
705# 709#
710# Hardware Monitoring support
711#
712CONFIG_HWMON=y
713# CONFIG_HWMON_DEBUG_CHIP is not set
714
715#
706# Misc devices 716# Misc devices
707# 717#
708 718
@@ -800,6 +810,7 @@ CONFIG_USB_HIDINPUT=y
800# CONFIG_USB_EGALAX is not set 810# CONFIG_USB_EGALAX is not set
801# CONFIG_USB_XPAD is not set 811# CONFIG_USB_XPAD is not set
802# CONFIG_USB_ATI_REMOTE is not set 812# CONFIG_USB_ATI_REMOTE is not set
813# CONFIG_USB_KEYSPAN_REMOTE is not set
803 814
804# 815#
805# USB Imaging devices 816# USB Imaging devices
@@ -850,6 +861,7 @@ CONFIG_USB_HIDINPUT=y
850# CONFIG_USB_PHIDGETSERVO is not set 861# CONFIG_USB_PHIDGETSERVO is not set
851# CONFIG_USB_IDMOUSE is not set 862# CONFIG_USB_IDMOUSE is not set
852# CONFIG_USB_SISUSBVGA is not set 863# CONFIG_USB_SISUSBVGA is not set
864# CONFIG_USB_LD is not set
853# CONFIG_USB_TEST is not set 865# CONFIG_USB_TEST is not set
854 866
855# 867#
@@ -910,6 +922,7 @@ CONFIG_XFS_EXPORT=y
910# CONFIG_XFS_POSIX_ACL is not set 922# CONFIG_XFS_POSIX_ACL is not set
911# CONFIG_MINIX_FS is not set 923# CONFIG_MINIX_FS is not set
912# CONFIG_ROMFS_FS is not set 924# CONFIG_ROMFS_FS is not set
925CONFIG_INOTIFY=y
913# CONFIG_QUOTA is not set 926# CONFIG_QUOTA is not set
914CONFIG_DNOTIFY=y 927CONFIG_DNOTIFY=y
915CONFIG_AUTOFS_FS=y 928CONFIG_AUTOFS_FS=y
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig
index b7755e4436d2..88e8867fa8e8 100644
--- a/arch/ia64/configs/zx1_defconfig
+++ b/arch/ia64/configs/zx1_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.13-rc1-20050629 3# Linux kernel version: 2.6.13-rc6
4# Wed Jun 29 15:31:11 2005 4# Wed Aug 17 10:02:43 2005
5# 5#
6 6
7# 7#
@@ -132,6 +132,7 @@ CONFIG_ACPI_BOOT=y
132CONFIG_ACPI_INTERPRETER=y 132CONFIG_ACPI_INTERPRETER=y
133CONFIG_ACPI_BUTTON=y 133CONFIG_ACPI_BUTTON=y
134CONFIG_ACPI_VIDEO=m 134CONFIG_ACPI_VIDEO=m
135CONFIG_ACPI_HOTKEY=m
135CONFIG_ACPI_FAN=y 136CONFIG_ACPI_FAN=y
136CONFIG_ACPI_PROCESSOR=y 137CONFIG_ACPI_PROCESSOR=y
137CONFIG_ACPI_THERMAL=y 138CONFIG_ACPI_THERMAL=y
@@ -169,6 +170,83 @@ CONFIG_HOTPLUG_PCI_ACPI=y
169# CONFIG_PCCARD is not set 170# CONFIG_PCCARD is not set
170 171
171# 172#
173# Networking
174#
175CONFIG_NET=y
176
177#
178# Networking options
179#
180CONFIG_PACKET=y
181# CONFIG_PACKET_MMAP is not set
182CONFIG_UNIX=y
183# CONFIG_NET_KEY is not set
184CONFIG_INET=y
185CONFIG_IP_MULTICAST=y
186# CONFIG_IP_ADVANCED_ROUTER is not set
187CONFIG_IP_FIB_HASH=y
188# CONFIG_IP_PNP is not set
189# CONFIG_NET_IPIP is not set
190# CONFIG_NET_IPGRE is not set
191# CONFIG_IP_MROUTE is not set
192# CONFIG_ARPD is not set
193# CONFIG_SYN_COOKIES is not set
194# CONFIG_INET_AH is not set
195# CONFIG_INET_ESP is not set
196# CONFIG_INET_IPCOMP is not set
197# CONFIG_INET_TUNNEL is not set
198# CONFIG_IP_TCPDIAG is not set
199# CONFIG_IP_TCPDIAG_IPV6 is not set
200# CONFIG_TCP_CONG_ADVANCED is not set
201CONFIG_TCP_CONG_BIC=y
202
203#
204# IP: Virtual Server Configuration
205#
206# CONFIG_IP_VS is not set
207# CONFIG_IPV6 is not set
208CONFIG_NETFILTER=y
209# CONFIG_NETFILTER_DEBUG is not set
210
211#
212# IP: Netfilter Configuration
213#
214# CONFIG_IP_NF_CONNTRACK is not set
215# CONFIG_IP_NF_CONNTRACK_MARK is not set
216# CONFIG_IP_NF_QUEUE is not set
217# CONFIG_IP_NF_IPTABLES is not set
218CONFIG_IP_NF_ARPTABLES=y
219# CONFIG_IP_NF_ARPFILTER is not set
220# CONFIG_IP_NF_ARP_MANGLE is not set
221
222#
223# SCTP Configuration (EXPERIMENTAL)
224#
225# CONFIG_IP_SCTP is not set
226# CONFIG_ATM is not set
227# CONFIG_BRIDGE is not set
228# CONFIG_VLAN_8021Q is not set
229# CONFIG_DECNET is not set
230# CONFIG_LLC2 is not set
231# CONFIG_IPX is not set
232# CONFIG_ATALK is not set
233# CONFIG_X25 is not set
234# CONFIG_LAPB is not set
235# CONFIG_NET_DIVERT is not set
236# CONFIG_ECONET is not set
237# CONFIG_WAN_ROUTER is not set
238# CONFIG_NET_SCHED is not set
239# CONFIG_NET_CLS_ROUTE is not set
240
241#
242# Network testing
243#
244# CONFIG_NET_PKTGEN is not set
245# CONFIG_HAMRADIO is not set
246# CONFIG_IRDA is not set
247# CONFIG_BT is not set
248
249#
172# Device Drivers 250# Device Drivers
173# 251#
174 252
@@ -349,6 +427,7 @@ CONFIG_SCSI_QLA2XXX=y
349# CONFIG_SCSI_QLA2300 is not set 427# CONFIG_SCSI_QLA2300 is not set
350# CONFIG_SCSI_QLA2322 is not set 428# CONFIG_SCSI_QLA2322 is not set
351# CONFIG_SCSI_QLA6312 is not set 429# CONFIG_SCSI_QLA6312 is not set
430# CONFIG_SCSI_QLA24XX is not set
352# CONFIG_SCSI_LPFC is not set 431# CONFIG_SCSI_LPFC is not set
353# CONFIG_SCSI_DC395x is not set 432# CONFIG_SCSI_DC395x is not set
354# CONFIG_SCSI_DC390T is not set 433# CONFIG_SCSI_DC390T is not set
@@ -362,9 +441,11 @@ CONFIG_SCSI_QLA2XXX=y
362# 441#
363# Fusion MPT device support 442# Fusion MPT device support
364# 443#
365# CONFIG_FUSION is not set 444CONFIG_FUSION=y
366# CONFIG_FUSION_SPI is not set 445CONFIG_FUSION_SPI=y
367# CONFIG_FUSION_FC is not set 446CONFIG_FUSION_FC=y
447CONFIG_FUSION_MAX_SGE=128
448CONFIG_FUSION_CTL=m
368 449
369# 450#
370# IEEE 1394 (FireWire) support 451# IEEE 1394 (FireWire) support
@@ -377,87 +458,8 @@ CONFIG_SCSI_QLA2XXX=y
377# CONFIG_I2O is not set 458# CONFIG_I2O is not set
378 459
379# 460#
380# Networking support 461# Network device support
381#
382CONFIG_NET=y
383
384#
385# Networking options
386#
387CONFIG_PACKET=y
388# CONFIG_PACKET_MMAP is not set
389CONFIG_UNIX=y
390# CONFIG_NET_KEY is not set
391CONFIG_INET=y
392CONFIG_IP_MULTICAST=y
393# CONFIG_IP_ADVANCED_ROUTER is not set
394CONFIG_IP_FIB_HASH=y
395# CONFIG_IP_PNP is not set
396# CONFIG_NET_IPIP is not set
397# CONFIG_NET_IPGRE is not set
398# CONFIG_IP_MROUTE is not set
399# CONFIG_ARPD is not set
400# CONFIG_SYN_COOKIES is not set
401# CONFIG_INET_AH is not set
402# CONFIG_INET_ESP is not set
403# CONFIG_INET_IPCOMP is not set
404# CONFIG_INET_TUNNEL is not set
405# CONFIG_IP_TCPDIAG is not set
406# CONFIG_IP_TCPDIAG_IPV6 is not set
407# CONFIG_TCP_CONG_ADVANCED is not set
408CONFIG_TCP_CONG_BIC=y
409
410#
411# IP: Virtual Server Configuration
412#
413# CONFIG_IP_VS is not set
414# CONFIG_IPV6 is not set
415CONFIG_NETFILTER=y
416# CONFIG_NETFILTER_DEBUG is not set
417
418#
419# IP: Netfilter Configuration
420# 462#
421# CONFIG_IP_NF_CONNTRACK is not set
422# CONFIG_IP_NF_CONNTRACK_MARK is not set
423# CONFIG_IP_NF_QUEUE is not set
424# CONFIG_IP_NF_IPTABLES is not set
425CONFIG_IP_NF_ARPTABLES=y
426# CONFIG_IP_NF_ARPFILTER is not set
427# CONFIG_IP_NF_ARP_MANGLE is not set
428
429#
430# SCTP Configuration (EXPERIMENTAL)
431#
432# CONFIG_IP_SCTP is not set
433# CONFIG_ATM is not set
434# CONFIG_BRIDGE is not set
435# CONFIG_VLAN_8021Q is not set
436# CONFIG_DECNET is not set
437# CONFIG_LLC2 is not set
438# CONFIG_IPX is not set
439# CONFIG_ATALK is not set
440# CONFIG_X25 is not set
441# CONFIG_LAPB is not set
442# CONFIG_NET_DIVERT is not set
443# CONFIG_ECONET is not set
444# CONFIG_WAN_ROUTER is not set
445
446#
447# QoS and/or fair queueing
448#
449# CONFIG_NET_SCHED is not set
450# CONFIG_NET_CLS_ROUTE is not set
451
452#
453# Network testing
454#
455# CONFIG_NET_PKTGEN is not set
456# CONFIG_NETPOLL is not set
457# CONFIG_NET_POLL_CONTROLLER is not set
458# CONFIG_HAMRADIO is not set
459# CONFIG_IRDA is not set
460# CONFIG_BT is not set
461CONFIG_NETDEVICES=y 463CONFIG_NETDEVICES=y
462CONFIG_DUMMY=y 464CONFIG_DUMMY=y
463# CONFIG_BONDING is not set 465# CONFIG_BONDING is not set
@@ -555,6 +557,8 @@ CONFIG_TIGON3=y
555# CONFIG_NET_FC is not set 557# CONFIG_NET_FC is not set
556# CONFIG_SHAPER is not set 558# CONFIG_SHAPER is not set
557# CONFIG_NETCONSOLE is not set 559# CONFIG_NETCONSOLE is not set
560# CONFIG_NETPOLL is not set
561# CONFIG_NET_POLL_CONTROLLER is not set
558 562
559# 563#
560# ISDN subsystem 564# ISDN subsystem
@@ -659,6 +663,7 @@ CONFIG_DRM=y
659CONFIG_DRM_RADEON=y 663CONFIG_DRM_RADEON=y
660# CONFIG_DRM_MGA is not set 664# CONFIG_DRM_MGA is not set
661# CONFIG_DRM_SIS is not set 665# CONFIG_DRM_SIS is not set
666# CONFIG_DRM_VIA is not set
662# CONFIG_RAW_DRIVER is not set 667# CONFIG_RAW_DRIVER is not set
663# CONFIG_HPET is not set 668# CONFIG_HPET is not set
664# CONFIG_HANGCHECK_TIMER is not set 669# CONFIG_HANGCHECK_TIMER is not set
@@ -706,47 +711,10 @@ CONFIG_I2C_ALGOPCF=y
706# CONFIG_I2C_VIAPRO is not set 711# CONFIG_I2C_VIAPRO is not set
707# CONFIG_I2C_VOODOO3 is not set 712# CONFIG_I2C_VOODOO3 is not set
708# CONFIG_I2C_PCA_ISA is not set 713# CONFIG_I2C_PCA_ISA is not set
714# CONFIG_I2C_SENSOR is not set
709 715
710# 716#
711# Hardware Sensors Chip support 717# Miscellaneous I2C Chip support
712#
713# CONFIG_I2C_SENSOR is not set
714# CONFIG_SENSORS_ADM1021 is not set
715# CONFIG_SENSORS_ADM1025 is not set
716# CONFIG_SENSORS_ADM1026 is not set
717# CONFIG_SENSORS_ADM1031 is not set
718# CONFIG_SENSORS_ADM9240 is not set
719# CONFIG_SENSORS_ASB100 is not set
720# CONFIG_SENSORS_ATXP1 is not set
721# CONFIG_SENSORS_DS1621 is not set
722# CONFIG_SENSORS_FSCHER is not set
723# CONFIG_SENSORS_FSCPOS is not set
724# CONFIG_SENSORS_GL518SM is not set
725# CONFIG_SENSORS_GL520SM is not set
726# CONFIG_SENSORS_IT87 is not set
727# CONFIG_SENSORS_LM63 is not set
728# CONFIG_SENSORS_LM75 is not set
729# CONFIG_SENSORS_LM77 is not set
730# CONFIG_SENSORS_LM78 is not set
731# CONFIG_SENSORS_LM80 is not set
732# CONFIG_SENSORS_LM83 is not set
733# CONFIG_SENSORS_LM85 is not set
734# CONFIG_SENSORS_LM87 is not set
735# CONFIG_SENSORS_LM90 is not set
736# CONFIG_SENSORS_LM92 is not set
737# CONFIG_SENSORS_MAX1619 is not set
738# CONFIG_SENSORS_PC87360 is not set
739# CONFIG_SENSORS_SMSC47B397 is not set
740# CONFIG_SENSORS_SIS5595 is not set
741# CONFIG_SENSORS_SMSC47M1 is not set
742# CONFIG_SENSORS_VIA686A is not set
743# CONFIG_SENSORS_W83781D is not set
744# CONFIG_SENSORS_W83L785TS is not set
745# CONFIG_SENSORS_W83627HF is not set
746# CONFIG_SENSORS_W83627EHF is not set
747
748#
749# Other I2C Chip support
750# 718#
751# CONFIG_SENSORS_DS1337 is not set 719# CONFIG_SENSORS_DS1337 is not set
752# CONFIG_SENSORS_DS1374 is not set 720# CONFIG_SENSORS_DS1374 is not set
@@ -767,6 +735,11 @@ CONFIG_I2C_ALGOPCF=y
767# CONFIG_W1 is not set 735# CONFIG_W1 is not set
768 736
769# 737#
738# Hardware Monitoring support
739#
740# CONFIG_HWMON is not set
741
742#
770# Misc devices 743# Misc devices
771# 744#
772 745
@@ -782,7 +755,6 @@ CONFIG_VIDEO_DEV=y
782# 755#
783# Video Adapters 756# Video Adapters
784# 757#
785# CONFIG_TUNER_MULTI_I2C is not set
786# CONFIG_VIDEO_BT848 is not set 758# CONFIG_VIDEO_BT848 is not set
787# CONFIG_VIDEO_CPIA is not set 759# CONFIG_VIDEO_CPIA is not set
788# CONFIG_VIDEO_SAA5246A is not set 760# CONFIG_VIDEO_SAA5246A is not set
@@ -1025,6 +997,7 @@ CONFIG_USB_HIDDEV=y
1025# CONFIG_USB_EGALAX is not set 997# CONFIG_USB_EGALAX is not set
1026# CONFIG_USB_XPAD is not set 998# CONFIG_USB_XPAD is not set
1027# CONFIG_USB_ATI_REMOTE is not set 999# CONFIG_USB_ATI_REMOTE is not set
1000# CONFIG_USB_KEYSPAN_REMOTE is not set
1028 1001
1029# 1002#
1030# USB Imaging devices 1003# USB Imaging devices
@@ -1080,6 +1053,7 @@ CONFIG_USB_MON=y
1080# CONFIG_USB_PHIDGETSERVO is not set 1053# CONFIG_USB_PHIDGETSERVO is not set
1081# CONFIG_USB_IDMOUSE is not set 1054# CONFIG_USB_IDMOUSE is not set
1082# CONFIG_USB_SISUSBVGA is not set 1055# CONFIG_USB_SISUSBVGA is not set
1056# CONFIG_USB_LD is not set
1083 1057
1084# 1058#
1085# USB DSL modem support 1059# USB DSL modem support
@@ -1121,6 +1095,7 @@ CONFIG_JBD=y
1121CONFIG_FS_MBCACHE=y 1095CONFIG_FS_MBCACHE=y
1122# CONFIG_REISERFS_FS is not set 1096# CONFIG_REISERFS_FS is not set
1123# CONFIG_JFS_FS is not set 1097# CONFIG_JFS_FS is not set
1098# CONFIG_FS_POSIX_ACL is not set
1124 1099
1125# 1100#
1126# XFS support 1101# XFS support
@@ -1128,6 +1103,7 @@ CONFIG_FS_MBCACHE=y
1128# CONFIG_XFS_FS is not set 1103# CONFIG_XFS_FS is not set
1129# CONFIG_MINIX_FS is not set 1104# CONFIG_MINIX_FS is not set
1130# CONFIG_ROMFS_FS is not set 1105# CONFIG_ROMFS_FS is not set
1106# CONFIG_INOTIFY is not set
1131# CONFIG_QUOTA is not set 1107# CONFIG_QUOTA is not set
1132CONFIG_DNOTIFY=y 1108CONFIG_DNOTIFY=y
1133CONFIG_AUTOFS_FS=y 1109CONFIG_AUTOFS_FS=y
diff --git a/arch/ia64/hp/sim/boot/boot_head.S b/arch/ia64/hp/sim/boot/boot_head.S
index 9364199e5632..1c8c7e6a9a5e 100644
--- a/arch/ia64/hp/sim/boot/boot_head.S
+++ b/arch/ia64/hp/sim/boot/boot_head.S
@@ -22,7 +22,7 @@ GLOBAL_ENTRY(_start)
22 .save rp, r0 22 .save rp, r0
23 .body 23 .body
24 movl gp = __gp 24 movl gp = __gp
25 movl sp = stack_mem 25 movl sp = stack_mem+16384-16
26 bsw.1 26 bsw.1
27 br.call.sptk.many rp=start_bootloader 27 br.call.sptk.many rp=start_bootloader
28END(_start) 28END(_start)
diff --git a/arch/ia64/kernel/domain.c b/arch/ia64/kernel/domain.c
index d65e87b6394f..bbb8efe126b7 100644
--- a/arch/ia64/kernel/domain.c
+++ b/arch/ia64/kernel/domain.c
@@ -341,7 +341,7 @@ next_sg:
341#endif 341#endif
342 342
343 /* Attach the domains */ 343 /* Attach the domains */
344 for_each_online_cpu(i) { 344 for_each_cpu_mask(i, *cpu_map) {
345 struct sched_domain *sd; 345 struct sched_domain *sd;
346#ifdef CONFIG_SCHED_SMT 346#ifdef CONFIG_SCHED_SMT
347 sd = &per_cpu(cpu_domains, i); 347 sd = &per_cpu(cpu_domains, i);
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index b8ebb8e427ef..f1201ac8a116 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -4312,6 +4312,7 @@ pfm_context_load(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
4312 DPRINT(("before cmpxchg() old_ctx=%p new_ctx=%p\n", 4312 DPRINT(("before cmpxchg() old_ctx=%p new_ctx=%p\n",
4313 thread->pfm_context, ctx)); 4313 thread->pfm_context, ctx));
4314 4314
4315 ret = -EBUSY;
4315 old = ia64_cmpxchg(acq, &thread->pfm_context, NULL, ctx, sizeof(pfm_context_t *)); 4316 old = ia64_cmpxchg(acq, &thread->pfm_context, NULL, ctx, sizeof(pfm_context_t *));
4316 if (old != NULL) { 4317 if (old != NULL) {
4317 DPRINT(("load_pid [%d] already has a context\n", req->load_pid)); 4318 DPRINT(("load_pid [%d] already has a context\n", req->load_pid));
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index d227fabecd02..6f0cc7a6634e 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -143,7 +143,8 @@ struct salinfo_data {
143 143
144static struct salinfo_data salinfo_data[ARRAY_SIZE(salinfo_log_name)]; 144static struct salinfo_data salinfo_data[ARRAY_SIZE(salinfo_log_name)];
145 145
146static spinlock_t data_lock, data_saved_lock; 146static DEFINE_SPINLOCK(data_lock);
147static DEFINE_SPINLOCK(data_saved_lock);
147 148
148/** salinfo_platform_oemdata - optional callback to decode oemdata from an error 149/** salinfo_platform_oemdata - optional callback to decode oemdata from an error
149 * record. 150 * record.
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index a6649baf629a..414cdf2e3c96 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -203,6 +203,7 @@ static void sn_fixup_ionodes(void)
203 continue; 203 continue;
204 } 204 }
205 205
206 spin_lock_init(&sn_flush_device_list->sfdl_flush_lock);
206 hubdev->hdi_flush_nasid_list.widget_p[widget] = 207 hubdev->hdi_flush_nasid_list.widget_p[widget] =
207 sn_flush_device_list; 208 sn_flush_device_list;
208 } 209 }
@@ -322,7 +323,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
322 struct pci_controller *controller; 323 struct pci_controller *controller;
323 struct pcibus_bussoft *prom_bussoft_ptr; 324 struct pcibus_bussoft *prom_bussoft_ptr;
324 struct hubdev_info *hubdev_info; 325 struct hubdev_info *hubdev_info;
325 void *provider_soft; 326 void *provider_soft = NULL;
326 struct sn_pcibus_provider *provider; 327 struct sn_pcibus_provider *provider;
327 328
328 status = sal_get_pcibus_info((u64) segment, (u64) busnum, 329 status = sal_get_pcibus_info((u64) segment, (u64) busnum,
@@ -338,7 +339,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
338 if (bus == NULL) { 339 if (bus == NULL) {
339 bus = pci_scan_bus(busnum, &pci_root_ops, controller); 340 bus = pci_scan_bus(busnum, &pci_root_ops, controller);
340 if (bus == NULL) 341 if (bus == NULL)
341 return; /* error, or bus already scanned */ 342 goto error_return; /* error, or bus already scanned */
342 bus->sysdata = NULL; 343 bus->sysdata = NULL;
343 } 344 }
344 345
@@ -351,28 +352,30 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
351 */ 352 */
352 353
353 if (prom_bussoft_ptr->bs_asic_type >= PCIIO_ASIC_MAX_TYPES) 354 if (prom_bussoft_ptr->bs_asic_type >= PCIIO_ASIC_MAX_TYPES)
354 return; /* unsupported asic type */ 355 goto error_return; /* unsupported asic type */
355 356
356 if (prom_bussoft_ptr->bs_asic_type == PCIIO_ASIC_TYPE_PPB) 357 if (prom_bussoft_ptr->bs_asic_type == PCIIO_ASIC_TYPE_PPB)
357 goto error_return; /* no further fixup necessary */ 358 goto error_return; /* no further fixup necessary */
358 359
359 provider = sn_pci_provider[prom_bussoft_ptr->bs_asic_type]; 360 provider = sn_pci_provider[prom_bussoft_ptr->bs_asic_type];
360 if (provider == NULL) 361 if (provider == NULL)
361 return; /* no provider registerd for this asic */ 362 goto error_return; /* no provider registerd for this asic */
362 363
363 provider_soft = NULL; 364 bus->sysdata = controller;
364 if (provider->bus_fixup) 365 if (provider->bus_fixup)
365 provider_soft = (*provider->bus_fixup) (prom_bussoft_ptr, controller); 366 provider_soft = (*provider->bus_fixup) (prom_bussoft_ptr, controller);
366 367
367 if (provider_soft == NULL) 368 if (provider_soft == NULL) {
368 return; /* fixup failed or not applicable */ 369 /* fixup failed or not applicable */
370 bus->sysdata = NULL;
371 goto error_return;
372 }
369 373
370 /* 374 /*
371 * Generic bus fixup goes here. Don't reference prom_bussoft_ptr 375 * Generic bus fixup goes here. Don't reference prom_bussoft_ptr
372 * after this point. 376 * after this point.
373 */ 377 */
374 378
375 bus->sysdata = controller;
376 PCI_CONTROLLER(bus)->platform_data = provider_soft; 379 PCI_CONTROLLER(bus)->platform_data = provider_soft;
377 nasid = NASID_GET(SN_PCIBUS_BUSSOFT(bus)->bs_base); 380 nasid = NASID_GET(SN_PCIBUS_BUSSOFT(bus)->bs_base);
378 cnode = nasid_to_cnodeid(nasid); 381 cnode = nasid_to_cnodeid(nasid);
diff --git a/arch/ppc/syslib/ppc4xx_dma.c b/arch/ppc/syslib/ppc4xx_dma.c
index 5015ab99afd2..f15e64285f96 100644
--- a/arch/ppc/syslib/ppc4xx_dma.c
+++ b/arch/ppc/syslib/ppc4xx_dma.c
@@ -620,6 +620,7 @@ ppc4xx_clr_dma_status(unsigned int dmanr)
620 return DMA_STATUS_GOOD; 620 return DMA_STATUS_GOOD;
621} 621}
622 622
623#ifdef CONFIG_PPC4xx_EDMA
623/* 624/*
624 * Enables the burst on the channel (BTEN bit in the control/count register) 625 * Enables the burst on the channel (BTEN bit in the control/count register)
625 * Note: 626 * Note:
@@ -685,6 +686,11 @@ ppc4xx_set_burst_size(unsigned int dmanr, unsigned int bsize)
685 return DMA_STATUS_GOOD; 686 return DMA_STATUS_GOOD;
686} 687}
687 688
689EXPORT_SYMBOL(ppc4xx_enable_burst);
690EXPORT_SYMBOL(ppc4xx_disable_burst);
691EXPORT_SYMBOL(ppc4xx_set_burst_size);
692#endif /* CONFIG_PPC4xx_EDMA */
693
688EXPORT_SYMBOL(ppc4xx_init_dma_channel); 694EXPORT_SYMBOL(ppc4xx_init_dma_channel);
689EXPORT_SYMBOL(ppc4xx_get_channel_config); 695EXPORT_SYMBOL(ppc4xx_get_channel_config);
690EXPORT_SYMBOL(ppc4xx_set_channel_priority); 696EXPORT_SYMBOL(ppc4xx_set_channel_priority);
@@ -703,6 +709,4 @@ EXPORT_SYMBOL(ppc4xx_enable_dma_interrupt);
703EXPORT_SYMBOL(ppc4xx_disable_dma_interrupt); 709EXPORT_SYMBOL(ppc4xx_disable_dma_interrupt);
704EXPORT_SYMBOL(ppc4xx_get_dma_status); 710EXPORT_SYMBOL(ppc4xx_get_dma_status);
705EXPORT_SYMBOL(ppc4xx_clr_dma_status); 711EXPORT_SYMBOL(ppc4xx_clr_dma_status);
706EXPORT_SYMBOL(ppc4xx_enable_burst); 712
707EXPORT_SYMBOL(ppc4xx_disable_burst);
708EXPORT_SYMBOL(ppc4xx_set_burst_size);
diff --git a/arch/ppc64/kernel/LparData.c b/arch/ppc64/kernel/LparData.c
index 76cfd1449d52..1c11031c838e 100644
--- a/arch/ppc64/kernel/LparData.c
+++ b/arch/ppc64/kernel/LparData.c
@@ -32,32 +32,12 @@
32/* The HvReleaseData is the root of the information shared between 32/* The HvReleaseData is the root of the information shared between
33 * the hypervisor and Linux. 33 * the hypervisor and Linux.
34 */ 34 */
35
36/*
37 * WARNING - magic here
38 *
39 * Ok, this is a horrid hack below, but marginally better than the
40 * alternatives. What we really want is just to initialize
41 * hvReleaseData in C as in the #if 0 section here. However, gcc
42 * refuses to believe that (u32)&x is a constant expression, so will
43 * not allow the xMsNucDataOffset field to be properly initialized.
44 * So, we declare hvReleaseData in inline asm instead. We use inline
45 * asm, rather than a .S file, because the assembler won't generate
46 * the necessary relocation for the LparMap either, unless that symbol
47 * is declared in the same source file. Finally, we put the asm in a
48 * dummy, attribute-used function, instead of at file scope, because
49 * file scope asms don't allow contraints. We want to use the "i"
50 * constraints to put sizeof() and offsetof() expressions in there,
51 * because including asm/offsets.h in C code then stringifying causes
52 * all manner of warnings.
53 */
54#if 0
55struct HvReleaseData hvReleaseData = { 35struct HvReleaseData hvReleaseData = {
56 .xDesc = 0xc8a5d9c4, /* "HvRD" ebcdic */ 36 .xDesc = 0xc8a5d9c4, /* "HvRD" ebcdic */
57 .xSize = sizeof(struct HvReleaseData), 37 .xSize = sizeof(struct HvReleaseData),
58 .xVpdAreasPtrOffset = offsetof(struct naca_struct, xItVpdAreas), 38 .xVpdAreasPtrOffset = offsetof(struct naca_struct, xItVpdAreas),
59 .xSlicNacaAddr = &naca, /* 64-bit Naca address */ 39 .xSlicNacaAddr = &naca, /* 64-bit Naca address */
60 .xMsNucDataOffset = (u32)((unsigned long)&xLparMap - KERNELBASE), 40 .xMsNucDataOffset = LPARMAP_PHYS,
61 .xFlags = HVREL_TAGSINACTIVE /* tags inactive */ 41 .xFlags = HVREL_TAGSINACTIVE /* tags inactive */
62 /* 64 bit */ 42 /* 64 bit */
63 /* shared processors */ 43 /* shared processors */
@@ -70,63 +50,6 @@ struct HvReleaseData hvReleaseData = {
70 0xa7, 0x40, 0xf2, 0x4b, 50 0xa7, 0x40, 0xf2, 0x4b,
71 0xf4, 0x4b, 0xf6, 0xf4 }, 51 0xf4, 0x4b, 0xf6, 0xf4 },
72}; 52};
73#endif
74
75
76extern struct HvReleaseData hvReleaseData;
77
78static void __attribute_used__ hvReleaseData_wrapper(void)
79{
80 /* This doesn't appear to need any alignment (even 4 byte) */
81 asm volatile (
82 " lparMapPhys = xLparMap - %3\n"
83 " .data\n"
84 " .globl hvReleaseData\n"
85 "hvReleaseData:\n"
86 " .long 0xc8a5d9c4\n" /* xDesc */
87 /* "HvRD" in ebcdic */
88 " .short %0\n" /* xSize */
89 " .short %1\n" /* xVpdAreasPtrOffset */
90 " .llong naca\n" /* xSlicNacaAddr */
91 " .long lparMapPhys\n" /* xMsNucDataOffset */
92 " .long 0\n" /* xRsvd1 */
93 " .short %2\n" /* xFlags */
94 " .short 4\n" /* xVrmIndex - v5r2m0 */
95 " .short 3\n" /* xMinSupportedPlicVrmIndex - v5r1m0 */
96 " .short 3\n" /* xMinCompatablePlicVrmIndex - v5r1m0 */
97 " .long 0xd38995a4\n" /* xVrmName */
98 " .long 0xa740f24b\n" /* "Linux 2.4.64" ebcdic */
99 " .long 0xf44bf6f4\n"
100 " . = hvReleaseData + %0\n"
101 " .previous\n"
102 : : "i"(sizeof(hvReleaseData)),
103 "i"(offsetof(struct naca_struct, xItVpdAreas)),
104 "i"(HVREL_TAGSINACTIVE /* tags inactive, 64 bit, */
105 /* shared processors, HMT allowed */
106 | 6), /* TEMP: This allows non-GA drivers */
107 "i"(KERNELBASE)
108 );
109}
110
111struct LparMap __attribute__((aligned (16))) xLparMap = {
112 .xNumberEsids = HvEsidsToMap,
113 .xNumberRanges = HvRangesToMap,
114 .xSegmentTableOffs = STAB0_PAGE,
115
116 .xEsids = {
117 { .xKernelEsid = GET_ESID(KERNELBASE),
118 .xKernelVsid = KERNEL_VSID(KERNELBASE), },
119 { .xKernelEsid = GET_ESID(VMALLOCBASE),
120 .xKernelVsid = KERNEL_VSID(VMALLOCBASE), },
121 },
122
123 .xRanges = {
124 { .xPages = HvPagesToMap,
125 .xOffset = 0,
126 .xVPN = KERNEL_VSID(KERNELBASE) << (SID_SHIFT - PAGE_SHIFT),
127 },
128 },
129};
130 53
131extern void system_reset_iSeries(void); 54extern void system_reset_iSeries(void);
132extern void machine_check_iSeries(void); 55extern void machine_check_iSeries(void);
diff --git a/arch/ppc64/kernel/Makefile b/arch/ppc64/kernel/Makefile
index d9b2660ef221..2ecccb6b4f8c 100644
--- a/arch/ppc64/kernel/Makefile
+++ b/arch/ppc64/kernel/Makefile
@@ -73,3 +73,8 @@ obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o
73obj-$(CONFIG_KPROBES) += kprobes.o 73obj-$(CONFIG_KPROBES) += kprobes.o
74 74
75CFLAGS_ioctl32.o += -Ifs/ 75CFLAGS_ioctl32.o += -Ifs/
76
77ifeq ($(CONFIG_PPC_ISERIES),y)
78arch/ppc64/kernel/head.o: arch/ppc64/kernel/lparmap.s
79AFLAGS_head.o += -Iarch/ppc64/kernel
80endif
diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S
index 784f56d4684c..accaa052d31f 100644
--- a/arch/ppc64/kernel/head.S
+++ b/arch/ppc64/kernel/head.S
@@ -38,6 +38,7 @@
38#include <asm/cputable.h> 38#include <asm/cputable.h>
39#include <asm/setup.h> 39#include <asm/setup.h>
40#include <asm/hvcall.h> 40#include <asm/hvcall.h>
41#include <asm/iSeries/LparMap.h>
41 42
42#ifdef CONFIG_PPC_ISERIES 43#ifdef CONFIG_PPC_ISERIES
43#define DO_SOFT_DISABLE 44#define DO_SOFT_DISABLE
@@ -679,6 +680,11 @@ hardware_interrupt_iSeries_masked:
679 .globl fwnmi_data_area 680 .globl fwnmi_data_area
680fwnmi_data_area: 681fwnmi_data_area:
681 682
683#ifdef CONFIG_PPC_ISERIES
684 . = LPARMAP_PHYS
685#include "lparmap.s"
686#endif /* CONFIG_PPC_ISERIES */
687
682/* 688/*
683 * Vectors for the FWNMI option. Share common code. 689 * Vectors for the FWNMI option. Share common code.
684 */ 690 */
diff --git a/arch/ppc64/kernel/iommu.c b/arch/ppc64/kernel/iommu.c
index 8316426ccaf6..845eebd1e28d 100644
--- a/arch/ppc64/kernel/iommu.c
+++ b/arch/ppc64/kernel/iommu.c
@@ -242,7 +242,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
242 dma_addr_t dma_next = 0, dma_addr; 242 dma_addr_t dma_next = 0, dma_addr;
243 unsigned long flags; 243 unsigned long flags;
244 struct scatterlist *s, *outs, *segstart; 244 struct scatterlist *s, *outs, *segstart;
245 int outcount; 245 int outcount, incount;
246 unsigned long handle; 246 unsigned long handle;
247 247
248 BUG_ON(direction == DMA_NONE); 248 BUG_ON(direction == DMA_NONE);
@@ -252,6 +252,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
252 252
253 outs = s = segstart = &sglist[0]; 253 outs = s = segstart = &sglist[0];
254 outcount = 1; 254 outcount = 1;
255 incount = nelems;
255 handle = 0; 256 handle = 0;
256 257
257 /* Init first segment length for backout at failure */ 258 /* Init first segment length for backout at failure */
@@ -338,10 +339,10 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
338 339
339 DBG("mapped %d elements:\n", outcount); 340 DBG("mapped %d elements:\n", outcount);
340 341
341 /* For the sake of iommu_free_sg, we clear out the length in the 342 /* For the sake of iommu_unmap_sg, we clear out the length in the
342 * next entry of the sglist if we didn't fill the list completely 343 * next entry of the sglist if we didn't fill the list completely
343 */ 344 */
344 if (outcount < nelems) { 345 if (outcount < incount) {
345 outs++; 346 outs++;
346 outs->dma_address = DMA_ERROR_CODE; 347 outs->dma_address = DMA_ERROR_CODE;
347 outs->dma_length = 0; 348 outs->dma_length = 0;
diff --git a/arch/ppc64/kernel/lparmap.c b/arch/ppc64/kernel/lparmap.c
new file mode 100644
index 000000000000..b81de286df5e
--- /dev/null
+++ b/arch/ppc64/kernel/lparmap.c
@@ -0,0 +1,31 @@
1/*
2 * Copyright (C) 2005 Stephen Rothwell IBM Corp.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 */
9#include <asm/mmu.h>
10#include <asm/page.h>
11#include <asm/iSeries/LparMap.h>
12
13const struct LparMap __attribute__((__section__(".text"))) xLparMap = {
14 .xNumberEsids = HvEsidsToMap,
15 .xNumberRanges = HvRangesToMap,
16 .xSegmentTableOffs = STAB0_PAGE,
17
18 .xEsids = {
19 { .xKernelEsid = GET_ESID(KERNELBASE),
20 .xKernelVsid = KERNEL_VSID(KERNELBASE), },
21 { .xKernelEsid = GET_ESID(VMALLOCBASE),
22 .xKernelVsid = KERNEL_VSID(VMALLOCBASE), },
23 },
24
25 .xRanges = {
26 { .xPages = HvPagesToMap,
27 .xOffset = 0,
28 .xVPN = KERNEL_VSID(KERNELBASE) << (SID_SHIFT - PAGE_SHIFT),
29 },
30 },
31};
diff --git a/arch/sh/kernel/entry.S b/arch/sh/kernel/entry.S
index 6615e4838ee4..fb6368159dd0 100644
--- a/arch/sh/kernel/entry.S
+++ b/arch/sh/kernel/entry.S
@@ -1145,5 +1145,10 @@ ENTRY(sys_call_table)
1145 .long sys_add_key /* 285 */ 1145 .long sys_add_key /* 285 */
1146 .long sys_request_key 1146 .long sys_request_key
1147 .long sys_keyctl 1147 .long sys_keyctl
1148 .long sys_ioprio_set
1149 .long sys_ioprio_get
1150 .long sys_inotify_init /* 290 */
1151 .long sys_inotify_add_watch
1152 .long sys_inotify_rm_watch
1148 1153
1149/* End of entry.S */ 1154/* End of entry.S */
diff --git a/arch/sh64/kernel/syscalls.S b/arch/sh64/kernel/syscalls.S
index 6aabc63e4518..a3d037805f1c 100644
--- a/arch/sh64/kernel/syscalls.S
+++ b/arch/sh64/kernel/syscalls.S
@@ -342,4 +342,9 @@ sys_call_table:
342 .long sys_add_key 342 .long sys_add_key
343 .long sys_request_key 343 .long sys_request_key
344 .long sys_keyctl /* 315 */ 344 .long sys_keyctl /* 315 */
345 .long sys_ioprio_set
346 .long sys_ioprio_get
347 .long sys_inotify_init
348 .long sys_inotify_add_watch
349 .long sys_inotify_rm_watch /* 320 */
345 350
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index 1bd430d0ca06..8faa8dc4de43 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -98,8 +98,9 @@ extern void ___rw_write_enter(void);
98 * The module references will be fixed up by module_frob_arch_sections. 98 * The module references will be fixed up by module_frob_arch_sections.
99 */ 99 */
100#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \ 100#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \
101 extern __ret __x(__arg1, __arg2) \ 101 extern __ret __x(__arg1, __arg2); \
102 __attribute__((weak, alias("." # __x))); 102 asm(".weak " #__x);\
103 asm(#__x "=." #__x);
103 104
104DOT_ALIAS2(int, div, int, int) 105DOT_ALIAS2(int, div, int, int)
105DOT_ALIAS2(int, mul, int, int) 106DOT_ALIAS2(int, mul, int, int)
diff --git a/arch/sparc64/kernel/Makefile b/arch/sparc64/kernel/Makefile
index 093281bdf85f..6f00ab8b9d23 100644
--- a/arch/sparc64/kernel/Makefile
+++ b/arch/sparc64/kernel/Makefile
@@ -8,7 +8,7 @@ EXTRA_CFLAGS := -Werror
8extra-y := head.o init_task.o vmlinux.lds 8extra-y := head.o init_task.o vmlinux.lds
9 9
10obj-y := process.o setup.o cpu.o idprom.o \ 10obj-y := process.o setup.o cpu.o idprom.o \
11 traps.o devices.o auxio.o \ 11 traps.o devices.o auxio.o una_asm.o \
12 irq.o ptrace.o time.o sys_sparc.o signal.o \ 12 irq.o ptrace.o time.o sys_sparc.o signal.o \
13 unaligned.o central.o pci.o starfire.o semaphore.o \ 13 unaligned.o central.o pci.o starfire.o semaphore.o \
14 power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o 14 power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 100b0107c4be..0c9e54b2f0c8 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -2127,6 +2127,9 @@ void __init trap_init(void)
2127 TI_PRE_COUNT != offsetof(struct thread_info, preempt_count) || 2127 TI_PRE_COUNT != offsetof(struct thread_info, preempt_count) ||
2128 TI_NEW_CHILD != offsetof(struct thread_info, new_child) || 2128 TI_NEW_CHILD != offsetof(struct thread_info, new_child) ||
2129 TI_SYS_NOERROR != offsetof(struct thread_info, syscall_noerror) || 2129 TI_SYS_NOERROR != offsetof(struct thread_info, syscall_noerror) ||
2130 TI_RESTART_BLOCK != offsetof(struct thread_info, restart_block) ||
2131 TI_KUNA_REGS != offsetof(struct thread_info, kern_una_regs) ||
2132 TI_KUNA_INSN != offsetof(struct thread_info, kern_una_insn) ||
2130 TI_FPREGS != offsetof(struct thread_info, fpregs) || 2133 TI_FPREGS != offsetof(struct thread_info, fpregs) ||
2131 (TI_FPREGS & (64 - 1))) 2134 (TI_FPREGS & (64 - 1)))
2132 thread_info_offsets_are_bolixed_dave(); 2135 thread_info_offsets_are_bolixed_dave();
diff --git a/arch/sparc64/kernel/una_asm.S b/arch/sparc64/kernel/una_asm.S
new file mode 100644
index 000000000000..cbb40585253c
--- /dev/null
+++ b/arch/sparc64/kernel/una_asm.S
@@ -0,0 +1,153 @@
1/* una_asm.S: Kernel unaligned trap assembler helpers.
2 *
3 * Copyright (C) 1996,2005 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
5 */
6
7 .text
8
9kernel_unaligned_trap_fault:
10 call kernel_mna_trap_fault
11 nop
12 retl
13 nop
14 .size kern_unaligned_trap_fault, .-kern_unaligned_trap_fault
15
16 .globl __do_int_store
17__do_int_store:
18 rd %asi, %o4
19 wr %o3, 0, %asi
20 ldx [%o2], %g3
21 cmp %o1, 2
22 be,pn %icc, 2f
23 cmp %o1, 4
24 be,pt %icc, 1f
25 srlx %g3, 24, %g2
26 srlx %g3, 56, %g1
27 srlx %g3, 48, %g7
284: stba %g1, [%o0] %asi
29 srlx %g3, 40, %g1
305: stba %g7, [%o0 + 1] %asi
31 srlx %g3, 32, %g7
326: stba %g1, [%o0 + 2] %asi
337: stba %g7, [%o0 + 3] %asi
34 srlx %g3, 16, %g1
358: stba %g2, [%o0 + 4] %asi
36 srlx %g3, 8, %g7
379: stba %g1, [%o0 + 5] %asi
3810: stba %g7, [%o0 + 6] %asi
39 ba,pt %xcc, 0f
4011: stba %g3, [%o0 + 7] %asi
411: srl %g3, 16, %g7
4212: stba %g2, [%o0] %asi
43 srl %g3, 8, %g2
4413: stba %g7, [%o0 + 1] %asi
4514: stba %g2, [%o0 + 2] %asi
46 ba,pt %xcc, 0f
4715: stba %g3, [%o0 + 3] %asi
482: srl %g3, 8, %g2
4916: stba %g2, [%o0] %asi
5017: stba %g3, [%o0 + 1] %asi
510:
52 wr %o4, 0x0, %asi
53 retl
54 nop
55 .size __do_int_store, .-__do_int_store
56
57 .section __ex_table
58 .word 4b, kernel_unaligned_trap_fault
59 .word 5b, kernel_unaligned_trap_fault
60 .word 6b, kernel_unaligned_trap_fault
61 .word 7b, kernel_unaligned_trap_fault
62 .word 8b, kernel_unaligned_trap_fault
63 .word 9b, kernel_unaligned_trap_fault
64 .word 10b, kernel_unaligned_trap_fault
65 .word 11b, kernel_unaligned_trap_fault
66 .word 12b, kernel_unaligned_trap_fault
67 .word 13b, kernel_unaligned_trap_fault
68 .word 14b, kernel_unaligned_trap_fault
69 .word 15b, kernel_unaligned_trap_fault
70 .word 16b, kernel_unaligned_trap_fault
71 .word 17b, kernel_unaligned_trap_fault
72 .previous
73
74 .globl do_int_load
75do_int_load:
76 rd %asi, %o5
77 wr %o4, 0, %asi
78 cmp %o1, 8
79 bge,pn %icc, 9f
80 cmp %o1, 4
81 be,pt %icc, 6f
824: lduba [%o2] %asi, %g2
835: lduba [%o2 + 1] %asi, %g3
84 sll %g2, 8, %g2
85 brz,pt %o3, 3f
86 add %g2, %g3, %g2
87 sllx %g2, 48, %g2
88 srax %g2, 48, %g2
893: ba,pt %xcc, 0f
90 stx %g2, [%o0]
916: lduba [%o2 + 1] %asi, %g3
92 sll %g2, 24, %g2
937: lduba [%o2 + 2] %asi, %g7
94 sll %g3, 16, %g3
958: lduba [%o2 + 3] %asi, %g1
96 sll %g7, 8, %g7
97 or %g2, %g3, %g2
98 or %g7, %g1, %g7
99 or %g2, %g7, %g2
100 brnz,a,pt %o3, 3f
101 sra %g2, 0, %g2
1023: ba,pt %xcc, 0f
103 stx %g2, [%o0]
1049: lduba [%o2] %asi, %g2
10510: lduba [%o2 + 1] %asi, %g3
106 sllx %g2, 56, %g2
10711: lduba [%o2 + 2] %asi, %g7
108 sllx %g3, 48, %g3
10912: lduba [%o2 + 3] %asi, %g1
110 sllx %g7, 40, %g7
111 sllx %g1, 32, %g1
112 or %g2, %g3, %g2
113 or %g7, %g1, %g7
11413: lduba [%o2 + 4] %asi, %g3
115 or %g2, %g7, %g7
11614: lduba [%o2 + 5] %asi, %g1
117 sllx %g3, 24, %g3
11815: lduba [%o2 + 6] %asi, %g2
119 sllx %g1, 16, %g1
120 or %g7, %g3, %g7
12116: lduba [%o2 + 7] %asi, %g3
122 sllx %g2, 8, %g2
123 or %g7, %g1, %g7
124 or %g2, %g3, %g2
125 or %g7, %g2, %g7
126 cmp %o1, 8
127 be,a,pt %icc, 0f
128 stx %g7, [%o0]
129 srlx %g7, 32, %g2
130 sra %g7, 0, %g7
131 stx %g2, [%o0]
132 stx %g7, [%o0 + 8]
1330:
134 wr %o5, 0x0, %asi
135 retl
136 nop
137 .size __do_int_load, .-__do_int_load
138
139 .section __ex_table
140 .word 4b, kernel_unaligned_trap_fault
141 .word 5b, kernel_unaligned_trap_fault
142 .word 6b, kernel_unaligned_trap_fault
143 .word 7b, kernel_unaligned_trap_fault
144 .word 8b, kernel_unaligned_trap_fault
145 .word 9b, kernel_unaligned_trap_fault
146 .word 10b, kernel_unaligned_trap_fault
147 .word 11b, kernel_unaligned_trap_fault
148 .word 12b, kernel_unaligned_trap_fault
149 .word 13b, kernel_unaligned_trap_fault
150 .word 14b, kernel_unaligned_trap_fault
151 .word 15b, kernel_unaligned_trap_fault
152 .word 16b, kernel_unaligned_trap_fault
153 .previous
diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c
index 4372bf32ecf6..11c3e88732e4 100644
--- a/arch/sparc64/kernel/unaligned.c
+++ b/arch/sparc64/kernel/unaligned.c
@@ -180,169 +180,28 @@ static void __attribute_used__ unaligned_panic(char *str, struct pt_regs *regs)
180 die_if_kernel(str, regs); 180 die_if_kernel(str, regs);
181} 181}
182 182
183#define do_integer_load(dest_reg, size, saddr, is_signed, asi, errh) ({ \ 183extern void do_int_load(unsigned long *dest_reg, int size,
184__asm__ __volatile__ ( \ 184 unsigned long *saddr, int is_signed, int asi);
185 "wr %4, 0, %%asi\n\t" \
186 "cmp %1, 8\n\t" \
187 "bge,pn %%icc, 9f\n\t" \
188 " cmp %1, 4\n\t" \
189 "be,pt %%icc, 6f\n" \
190"4:\t" " lduba [%2] %%asi, %%l1\n" \
191"5:\t" "lduba [%2 + 1] %%asi, %%l2\n\t" \
192 "sll %%l1, 8, %%l1\n\t" \
193 "brz,pt %3, 3f\n\t" \
194 " add %%l1, %%l2, %%l1\n\t" \
195 "sllx %%l1, 48, %%l1\n\t" \
196 "srax %%l1, 48, %%l1\n" \
197"3:\t" "ba,pt %%xcc, 0f\n\t" \
198 " stx %%l1, [%0]\n" \
199"6:\t" "lduba [%2 + 1] %%asi, %%l2\n\t" \
200 "sll %%l1, 24, %%l1\n" \
201"7:\t" "lduba [%2 + 2] %%asi, %%g7\n\t" \
202 "sll %%l2, 16, %%l2\n" \
203"8:\t" "lduba [%2 + 3] %%asi, %%g1\n\t" \
204 "sll %%g7, 8, %%g7\n\t" \
205 "or %%l1, %%l2, %%l1\n\t" \
206 "or %%g7, %%g1, %%g7\n\t" \
207 "or %%l1, %%g7, %%l1\n\t" \
208 "brnz,a,pt %3, 3f\n\t" \
209 " sra %%l1, 0, %%l1\n" \
210"3:\t" "ba,pt %%xcc, 0f\n\t" \
211 " stx %%l1, [%0]\n" \
212"9:\t" "lduba [%2] %%asi, %%l1\n" \
213"10:\t" "lduba [%2 + 1] %%asi, %%l2\n\t" \
214 "sllx %%l1, 56, %%l1\n" \
215"11:\t" "lduba [%2 + 2] %%asi, %%g7\n\t" \
216 "sllx %%l2, 48, %%l2\n" \
217"12:\t" "lduba [%2 + 3] %%asi, %%g1\n\t" \
218 "sllx %%g7, 40, %%g7\n\t" \
219 "sllx %%g1, 32, %%g1\n\t" \
220 "or %%l1, %%l2, %%l1\n\t" \
221 "or %%g7, %%g1, %%g7\n" \
222"13:\t" "lduba [%2 + 4] %%asi, %%l2\n\t" \
223 "or %%l1, %%g7, %%g7\n" \
224"14:\t" "lduba [%2 + 5] %%asi, %%g1\n\t" \
225 "sllx %%l2, 24, %%l2\n" \
226"15:\t" "lduba [%2 + 6] %%asi, %%l1\n\t" \
227 "sllx %%g1, 16, %%g1\n\t" \
228 "or %%g7, %%l2, %%g7\n" \
229"16:\t" "lduba [%2 + 7] %%asi, %%l2\n\t" \
230 "sllx %%l1, 8, %%l1\n\t" \
231 "or %%g7, %%g1, %%g7\n\t" \
232 "or %%l1, %%l2, %%l1\n\t" \
233 "or %%g7, %%l1, %%g7\n\t" \
234 "cmp %1, 8\n\t" \
235 "be,a,pt %%icc, 0f\n\t" \
236 " stx %%g7, [%0]\n\t" \
237 "srlx %%g7, 32, %%l1\n\t" \
238 "sra %%g7, 0, %%g7\n\t" \
239 "stx %%l1, [%0]\n\t" \
240 "stx %%g7, [%0 + 8]\n" \
241"0:\n\t" \
242 "wr %%g0, %5, %%asi\n\n\t" \
243 ".section __ex_table\n\t" \
244 ".word 4b, " #errh "\n\t" \
245 ".word 5b, " #errh "\n\t" \
246 ".word 6b, " #errh "\n\t" \
247 ".word 7b, " #errh "\n\t" \
248 ".word 8b, " #errh "\n\t" \
249 ".word 9b, " #errh "\n\t" \
250 ".word 10b, " #errh "\n\t" \
251 ".word 11b, " #errh "\n\t" \
252 ".word 12b, " #errh "\n\t" \
253 ".word 13b, " #errh "\n\t" \
254 ".word 14b, " #errh "\n\t" \
255 ".word 15b, " #errh "\n\t" \
256 ".word 16b, " #errh "\n\n\t" \
257 ".previous\n\t" \
258 : : "r" (dest_reg), "r" (size), "r" (saddr), "r" (is_signed), \
259 "r" (asi), "i" (ASI_AIUS) \
260 : "l1", "l2", "g7", "g1", "cc"); \
261})
262 185
263#define store_common(dst_addr, size, src_val, asi, errh) ({ \ 186extern void __do_int_store(unsigned long *dst_addr, int size,
264__asm__ __volatile__ ( \ 187 unsigned long *src_val, int asi);
265 "wr %3, 0, %%asi\n\t" \ 188
266 "ldx [%2], %%l1\n" \ 189static inline void do_int_store(int reg_num, int size, unsigned long *dst_addr,
267 "cmp %1, 2\n\t" \ 190 struct pt_regs *regs, int asi)
268 "be,pn %%icc, 2f\n\t" \ 191{
269 " cmp %1, 4\n\t" \ 192 unsigned long zero = 0;
270 "be,pt %%icc, 1f\n\t" \ 193 unsigned long *src_val = &zero;
271 " srlx %%l1, 24, %%l2\n\t" \ 194
272 "srlx %%l1, 56, %%g1\n\t" \ 195 if (size == 16) {
273 "srlx %%l1, 48, %%g7\n" \ 196 size = 8;
274"4:\t" "stba %%g1, [%0] %%asi\n\t" \ 197 zero = (((long)(reg_num ?
275 "srlx %%l1, 40, %%g1\n" \ 198 (unsigned)fetch_reg(reg_num, regs) : 0)) << 32) |
276"5:\t" "stba %%g7, [%0 + 1] %%asi\n\t" \ 199 (unsigned)fetch_reg(reg_num + 1, regs);
277 "srlx %%l1, 32, %%g7\n" \ 200 } else if (reg_num) {
278"6:\t" "stba %%g1, [%0 + 2] %%asi\n" \ 201 src_val = fetch_reg_addr(reg_num, regs);
279"7:\t" "stba %%g7, [%0 + 3] %%asi\n\t" \ 202 }
280 "srlx %%l1, 16, %%g1\n" \ 203 __do_int_store(dst_addr, size, src_val, asi);
281"8:\t" "stba %%l2, [%0 + 4] %%asi\n\t" \ 204}
282 "srlx %%l1, 8, %%g7\n" \
283"9:\t" "stba %%g1, [%0 + 5] %%asi\n" \
284"10:\t" "stba %%g7, [%0 + 6] %%asi\n\t" \
285 "ba,pt %%xcc, 0f\n" \
286"11:\t" " stba %%l1, [%0 + 7] %%asi\n" \
287"1:\t" "srl %%l1, 16, %%g7\n" \
288"12:\t" "stba %%l2, [%0] %%asi\n\t" \
289 "srl %%l1, 8, %%l2\n" \
290"13:\t" "stba %%g7, [%0 + 1] %%asi\n" \
291"14:\t" "stba %%l2, [%0 + 2] %%asi\n\t" \
292 "ba,pt %%xcc, 0f\n" \
293"15:\t" " stba %%l1, [%0 + 3] %%asi\n" \
294"2:\t" "srl %%l1, 8, %%l2\n" \
295"16:\t" "stba %%l2, [%0] %%asi\n" \
296"17:\t" "stba %%l1, [%0 + 1] %%asi\n" \
297"0:\n\t" \
298 "wr %%g0, %4, %%asi\n\n\t" \
299 ".section __ex_table\n\t" \
300 ".word 4b, " #errh "\n\t" \
301 ".word 5b, " #errh "\n\t" \
302 ".word 6b, " #errh "\n\t" \
303 ".word 7b, " #errh "\n\t" \
304 ".word 8b, " #errh "\n\t" \
305 ".word 9b, " #errh "\n\t" \
306 ".word 10b, " #errh "\n\t" \
307 ".word 11b, " #errh "\n\t" \
308 ".word 12b, " #errh "\n\t" \
309 ".word 13b, " #errh "\n\t" \
310 ".word 14b, " #errh "\n\t" \
311 ".word 15b, " #errh "\n\t" \
312 ".word 16b, " #errh "\n\t" \
313 ".word 17b, " #errh "\n\n\t" \
314 ".previous\n\t" \
315 : : "r" (dst_addr), "r" (size), "r" (src_val), "r" (asi), "i" (ASI_AIUS)\
316 : "l1", "l2", "g7", "g1", "cc"); \
317})
318
319#define do_integer_store(reg_num, size, dst_addr, regs, asi, errh) ({ \
320 unsigned long zero = 0; \
321 unsigned long *src_val = &zero; \
322 \
323 if (size == 16) { \
324 size = 8; \
325 zero = (((long)(reg_num ? \
326 (unsigned)fetch_reg(reg_num, regs) : 0)) << 32) | \
327 (unsigned)fetch_reg(reg_num + 1, regs); \
328 } else if (reg_num) src_val = fetch_reg_addr(reg_num, regs); \
329 store_common(dst_addr, size, src_val, asi, errh); \
330})
331
332extern void smp_capture(void);
333extern void smp_release(void);
334
335#define do_atomic(srcdest_reg, mem, errh) ({ \
336 unsigned long flags, tmp; \
337 \
338 smp_capture(); \
339 local_irq_save(flags); \
340 tmp = *srcdest_reg; \
341 do_integer_load(srcdest_reg, 4, mem, 0, errh); \
342 store_common(mem, 4, &tmp, errh); \
343 local_irq_restore(flags); \
344 smp_release(); \
345})
346 205
347static inline void advance(struct pt_regs *regs) 206static inline void advance(struct pt_regs *regs)
348{ 207{
@@ -364,24 +223,29 @@ static inline int ok_for_kernel(unsigned int insn)
364 return !floating_point_load_or_store_p(insn); 223 return !floating_point_load_or_store_p(insn);
365} 224}
366 225
367void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) __asm__ ("kernel_mna_trap_fault"); 226void kernel_mna_trap_fault(void)
368
369void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn)
370{ 227{
371 unsigned long g2 = regs->u_regs [UREG_G2]; 228 struct pt_regs *regs = current_thread_info()->kern_una_regs;
229 unsigned int insn = current_thread_info()->kern_una_insn;
230 unsigned long g2 = regs->u_regs[UREG_G2];
372 unsigned long fixup = search_extables_range(regs->tpc, &g2); 231 unsigned long fixup = search_extables_range(regs->tpc, &g2);
373 232
374 if (!fixup) { 233 if (!fixup) {
375 unsigned long address = compute_effective_address(regs, insn, ((insn >> 25) & 0x1f)); 234 unsigned long address;
235
236 address = compute_effective_address(regs, insn,
237 ((insn >> 25) & 0x1f));
376 if (address < PAGE_SIZE) { 238 if (address < PAGE_SIZE) {
377 printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference in mna handler"); 239 printk(KERN_ALERT "Unable to handle kernel NULL "
240 "pointer dereference in mna handler");
378 } else 241 } else
379 printk(KERN_ALERT "Unable to handle kernel paging request in mna handler"); 242 printk(KERN_ALERT "Unable to handle kernel paging "
243 "request in mna handler");
380 printk(KERN_ALERT " at virtual address %016lx\n",address); 244 printk(KERN_ALERT " at virtual address %016lx\n",address);
381 printk(KERN_ALERT "current->{mm,active_mm}->context = %016lx\n", 245 printk(KERN_ALERT "current->{active_,}mm->context = %016lx\n",
382 (current->mm ? CTX_HWBITS(current->mm->context) : 246 (current->mm ? CTX_HWBITS(current->mm->context) :
383 CTX_HWBITS(current->active_mm->context))); 247 CTX_HWBITS(current->active_mm->context)));
384 printk(KERN_ALERT "current->{mm,active_mm}->pgd = %016lx\n", 248 printk(KERN_ALERT "current->{active_,}mm->pgd = %016lx\n",
385 (current->mm ? (unsigned long) current->mm->pgd : 249 (current->mm ? (unsigned long) current->mm->pgd :
386 (unsigned long) current->active_mm->pgd)); 250 (unsigned long) current->active_mm->pgd));
387 die_if_kernel("Oops", regs); 251 die_if_kernel("Oops", regs);
@@ -400,48 +264,41 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u
400 enum direction dir = decode_direction(insn); 264 enum direction dir = decode_direction(insn);
401 int size = decode_access_size(insn); 265 int size = decode_access_size(insn);
402 266
267 current_thread_info()->kern_una_regs = regs;
268 current_thread_info()->kern_una_insn = insn;
269
403 if (!ok_for_kernel(insn) || dir == both) { 270 if (!ok_for_kernel(insn) || dir == both) {
404 printk("Unsupported unaligned load/store trap for kernel at <%016lx>.\n", 271 printk("Unsupported unaligned load/store trap for kernel "
405 regs->tpc); 272 "at <%016lx>.\n", regs->tpc);
406 unaligned_panic("Kernel does fpu/atomic unaligned load/store.", regs); 273 unaligned_panic("Kernel does fpu/atomic "
407 274 "unaligned load/store.", regs);
408 __asm__ __volatile__ ("\n" 275
409"kernel_unaligned_trap_fault:\n\t" 276 kernel_mna_trap_fault();
410 "mov %0, %%o0\n\t"
411 "call kernel_mna_trap_fault\n\t"
412 " mov %1, %%o1\n\t"
413 :
414 : "r" (regs), "r" (insn)
415 : "o0", "o1", "o2", "o3", "o4", "o5", "o7",
416 "g1", "g2", "g3", "g4", "g7", "cc");
417 } else { 277 } else {
418 unsigned long addr = compute_effective_address(regs, insn, ((insn >> 25) & 0x1f)); 278 unsigned long addr;
419 279
280 addr = compute_effective_address(regs, insn,
281 ((insn >> 25) & 0x1f));
420#ifdef DEBUG_MNA 282#ifdef DEBUG_MNA
421 printk("KMNA: pc=%016lx [dir=%s addr=%016lx size=%d] retpc[%016lx]\n", 283 printk("KMNA: pc=%016lx [dir=%s addr=%016lx size=%d] "
422 regs->tpc, dirstrings[dir], addr, size, regs->u_regs[UREG_RETPC]); 284 "retpc[%016lx]\n",
285 regs->tpc, dirstrings[dir], addr, size,
286 regs->u_regs[UREG_RETPC]);
423#endif 287#endif
424 switch (dir) { 288 switch (dir) {
425 case load: 289 case load:
426 do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs), 290 do_int_load(fetch_reg_addr(((insn>>25)&0x1f), regs),
427 size, (unsigned long *) addr, 291 size, (unsigned long *) addr,
428 decode_signedness(insn), decode_asi(insn, regs), 292 decode_signedness(insn),
429 kernel_unaligned_trap_fault); 293 decode_asi(insn, regs));
430 break; 294 break;
431 295
432 case store: 296 case store:
433 do_integer_store(((insn>>25)&0x1f), size, 297 do_int_store(((insn>>25)&0x1f), size,
434 (unsigned long *) addr, regs, 298 (unsigned long *) addr, regs,
435 decode_asi(insn, regs), 299 decode_asi(insn, regs));
436 kernel_unaligned_trap_fault);
437 break;
438#if 0 /* unsupported */
439 case both:
440 do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs),
441 (unsigned long *) addr,
442 kernel_unaligned_trap_fault);
443 break; 300 break;
444#endif 301
445 default: 302 default:
446 panic("Impossible kernel unaligned trap."); 303 panic("Impossible kernel unaligned trap.");
447 /* Not reached... */ 304 /* Not reached... */
diff --git a/arch/sparc64/kernel/us2e_cpufreq.c b/arch/sparc64/kernel/us2e_cpufreq.c
index 7aae0a18aabe..686e526bec04 100644
--- a/arch/sparc64/kernel/us2e_cpufreq.c
+++ b/arch/sparc64/kernel/us2e_cpufreq.c
@@ -88,7 +88,6 @@ static void frob_mem_refresh(int cpu_slowing_down,
88{ 88{
89 unsigned long old_refr_count, refr_count, mctrl; 89 unsigned long old_refr_count, refr_count, mctrl;
90 90
91
92 refr_count = (clock_tick * MCTRL0_REFR_INTERVAL); 91 refr_count = (clock_tick * MCTRL0_REFR_INTERVAL);
93 refr_count /= (MCTRL0_REFR_CLKS_P_CNT * divisor * 1000000000UL); 92 refr_count /= (MCTRL0_REFR_CLKS_P_CNT * divisor * 1000000000UL);
94 93
@@ -230,6 +229,25 @@ static unsigned long estar_to_divisor(unsigned long estar)
230 return ret; 229 return ret;
231} 230}
232 231
232static unsigned int us2e_freq_get(unsigned int cpu)
233{
234 cpumask_t cpus_allowed;
235 unsigned long clock_tick, estar;
236
237 if (!cpu_online(cpu))
238 return 0;
239
240 cpus_allowed = current->cpus_allowed;
241 set_cpus_allowed(current, cpumask_of_cpu(cpu));
242
243 clock_tick = sparc64_get_clock_tick(cpu) / 1000;
244 estar = read_hbreg(HBIRD_ESTAR_MODE_ADDR);
245
246 set_cpus_allowed(current, cpus_allowed);
247
248 return clock_tick / estar_to_divisor(estar);
249}
250
233static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index) 251static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index)
234{ 252{
235 unsigned long new_bits, new_freq; 253 unsigned long new_bits, new_freq;
@@ -243,7 +261,7 @@ static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index)
243 cpus_allowed = current->cpus_allowed; 261 cpus_allowed = current->cpus_allowed;
244 set_cpus_allowed(current, cpumask_of_cpu(cpu)); 262 set_cpus_allowed(current, cpumask_of_cpu(cpu));
245 263
246 new_freq = clock_tick = sparc64_get_clock_tick(cpu); 264 new_freq = clock_tick = sparc64_get_clock_tick(cpu) / 1000;
247 new_bits = index_to_estar_mode(index); 265 new_bits = index_to_estar_mode(index);
248 divisor = index_to_divisor(index); 266 divisor = index_to_divisor(index);
249 new_freq /= divisor; 267 new_freq /= divisor;
@@ -258,7 +276,8 @@ static void us2e_set_cpu_divider_index(unsigned int cpu, unsigned int index)
258 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 276 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
259 277
260 if (old_divisor != divisor) 278 if (old_divisor != divisor)
261 us2e_transition(estar, new_bits, clock_tick, old_divisor, divisor); 279 us2e_transition(estar, new_bits, clock_tick * 1000,
280 old_divisor, divisor);
262 281
263 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 282 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
264 283
@@ -272,10 +291,8 @@ static int us2e_freq_target(struct cpufreq_policy *policy,
272 unsigned int new_index = 0; 291 unsigned int new_index = 0;
273 292
274 if (cpufreq_frequency_table_target(policy, 293 if (cpufreq_frequency_table_target(policy,
275 &us2e_freq_table[policy->cpu].table[0], 294 &us2e_freq_table[policy->cpu].table[0],
276 target_freq, 295 target_freq, relation, &new_index))
277 relation,
278 &new_index))
279 return -EINVAL; 296 return -EINVAL;
280 297
281 us2e_set_cpu_divider_index(policy->cpu, new_index); 298 us2e_set_cpu_divider_index(policy->cpu, new_index);
@@ -292,7 +309,7 @@ static int us2e_freq_verify(struct cpufreq_policy *policy)
292static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy) 309static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
293{ 310{
294 unsigned int cpu = policy->cpu; 311 unsigned int cpu = policy->cpu;
295 unsigned long clock_tick = sparc64_get_clock_tick(cpu); 312 unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000;
296 struct cpufreq_frequency_table *table = 313 struct cpufreq_frequency_table *table =
297 &us2e_freq_table[cpu].table[0]; 314 &us2e_freq_table[cpu].table[0];
298 315
@@ -351,9 +368,10 @@ static int __init us2e_freq_init(void)
351 memset(us2e_freq_table, 0, 368 memset(us2e_freq_table, 0,
352 (NR_CPUS * sizeof(struct us2e_freq_percpu_info))); 369 (NR_CPUS * sizeof(struct us2e_freq_percpu_info)));
353 370
371 driver->init = us2e_freq_cpu_init;
354 driver->verify = us2e_freq_verify; 372 driver->verify = us2e_freq_verify;
355 driver->target = us2e_freq_target; 373 driver->target = us2e_freq_target;
356 driver->init = us2e_freq_cpu_init; 374 driver->get = us2e_freq_get;
357 driver->exit = us2e_freq_cpu_exit; 375 driver->exit = us2e_freq_cpu_exit;
358 driver->owner = THIS_MODULE, 376 driver->owner = THIS_MODULE,
359 strcpy(driver->name, "UltraSPARC-IIe"); 377 strcpy(driver->name, "UltraSPARC-IIe");
diff --git a/arch/sparc64/kernel/us3_cpufreq.c b/arch/sparc64/kernel/us3_cpufreq.c
index 18fe54b8aa55..9080e7cd4bb0 100644
--- a/arch/sparc64/kernel/us3_cpufreq.c
+++ b/arch/sparc64/kernel/us3_cpufreq.c
@@ -56,7 +56,7 @@ static void write_safari_cfg(unsigned long val)
56 56
57static unsigned long get_current_freq(unsigned int cpu, unsigned long safari_cfg) 57static unsigned long get_current_freq(unsigned int cpu, unsigned long safari_cfg)
58{ 58{
59 unsigned long clock_tick = sparc64_get_clock_tick(cpu); 59 unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000;
60 unsigned long ret; 60 unsigned long ret;
61 61
62 switch (safari_cfg & SAFARI_CFG_DIV_MASK) { 62 switch (safari_cfg & SAFARI_CFG_DIV_MASK) {
@@ -76,6 +76,26 @@ static unsigned long get_current_freq(unsigned int cpu, unsigned long safari_cfg
76 return ret; 76 return ret;
77} 77}
78 78
79static unsigned int us3_freq_get(unsigned int cpu)
80{
81 cpumask_t cpus_allowed;
82 unsigned long reg;
83 unsigned int ret;
84
85 if (!cpu_online(cpu))
86 return 0;
87
88 cpus_allowed = current->cpus_allowed;
89 set_cpus_allowed(current, cpumask_of_cpu(cpu));
90
91 reg = read_safari_cfg();
92 ret = get_current_freq(cpu, reg);
93
94 set_cpus_allowed(current, cpus_allowed);
95
96 return ret;
97}
98
79static void us3_set_cpu_divider_index(unsigned int cpu, unsigned int index) 99static void us3_set_cpu_divider_index(unsigned int cpu, unsigned int index)
80{ 100{
81 unsigned long new_bits, new_freq, reg; 101 unsigned long new_bits, new_freq, reg;
@@ -88,7 +108,7 @@ static void us3_set_cpu_divider_index(unsigned int cpu, unsigned int index)
88 cpus_allowed = current->cpus_allowed; 108 cpus_allowed = current->cpus_allowed;
89 set_cpus_allowed(current, cpumask_of_cpu(cpu)); 109 set_cpus_allowed(current, cpumask_of_cpu(cpu));
90 110
91 new_freq = sparc64_get_clock_tick(cpu); 111 new_freq = sparc64_get_clock_tick(cpu) / 1000;
92 switch (index) { 112 switch (index) {
93 case 0: 113 case 0:
94 new_bits = SAFARI_CFG_DIV_1; 114 new_bits = SAFARI_CFG_DIV_1;
@@ -150,7 +170,7 @@ static int us3_freq_verify(struct cpufreq_policy *policy)
150static int __init us3_freq_cpu_init(struct cpufreq_policy *policy) 170static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
151{ 171{
152 unsigned int cpu = policy->cpu; 172 unsigned int cpu = policy->cpu;
153 unsigned long clock_tick = sparc64_get_clock_tick(cpu); 173 unsigned long clock_tick = sparc64_get_clock_tick(cpu) / 1000;
154 struct cpufreq_frequency_table *table = 174 struct cpufreq_frequency_table *table =
155 &us3_freq_table[cpu].table[0]; 175 &us3_freq_table[cpu].table[0];
156 176
@@ -206,9 +226,10 @@ static int __init us3_freq_init(void)
206 memset(us3_freq_table, 0, 226 memset(us3_freq_table, 0,
207 (NR_CPUS * sizeof(struct us3_freq_percpu_info))); 227 (NR_CPUS * sizeof(struct us3_freq_percpu_info)));
208 228
229 driver->init = us3_freq_cpu_init;
209 driver->verify = us3_freq_verify; 230 driver->verify = us3_freq_verify;
210 driver->target = us3_freq_target; 231 driver->target = us3_freq_target;
211 driver->init = us3_freq_cpu_init; 232 driver->get = us3_freq_get;
212 driver->exit = us3_freq_cpu_exit; 233 driver->exit = us3_freq_cpu_exit;
213 driver->owner = THIS_MODULE, 234 driver->owner = THIS_MODULE,
214 strcpy(driver->name, "UltraSPARC-III"); 235 strcpy(driver->name, "UltraSPARC-III");
diff --git a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c
index 6dd9e5bf18ed..f228f8b54194 100644
--- a/arch/um/kernel/skas/process.c
+++ b/arch/um/kernel/skas/process.c
@@ -61,7 +61,11 @@ void wait_stub_done(int pid, int sig, char * fname)
61 61
62 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED)); 62 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
63 } while((n >= 0) && WIFSTOPPED(status) && 63 } while((n >= 0) && WIFSTOPPED(status) &&
64 (WSTOPSIG(status) == SIGVTALRM)); 64 ((WSTOPSIG(status) == SIGVTALRM) ||
65 /* running UML inside a detached screen can cause
66 * SIGWINCHes
67 */
68 (WSTOPSIG(status) == SIGWINCH)));
65 69
66 if((n < 0) || !WIFSTOPPED(status) || 70 if((n < 0) || !WIFSTOPPED(status) ||
67 (WSTOPSIG(status) != SIGUSR1 && WSTOPSIG(status) != SIGTRAP)){ 71 (WSTOPSIG(status) != SIGUSR1 && WSTOPSIG(status) != SIGTRAP)){
diff --git a/arch/um/os-Linux/elf_aux.c b/arch/um/os-Linux/elf_aux.c
index 9416e1c29926..4cca3e9c23fe 100644
--- a/arch/um/os-Linux/elf_aux.c
+++ b/arch/um/os-Linux/elf_aux.c
@@ -9,7 +9,6 @@
9 */ 9 */
10#include <elf.h> 10#include <elf.h>
11#include <stddef.h> 11#include <stddef.h>
12#include <asm/elf.h>
13#include "init.h" 12#include "init.h"
14#include "elf_user.h" 13#include "elf_user.h"
15#include "mem_user.h" 14#include "mem_user.h"
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c
index b15761ff4101..fa25e39fe54d 100644
--- a/arch/x86_64/kernel/smpboot.c
+++ b/arch/x86_64/kernel/smpboot.c
@@ -492,6 +492,14 @@ void __cpuinit start_secondary(void)
492 */ 492 */
493 set_cpu_sibling_map(smp_processor_id()); 493 set_cpu_sibling_map(smp_processor_id());
494 494
495 /*
496 * Wait for TSC sync to not schedule things before.
497 * We still process interrupts, which could see an inconsistent
498 * time in that window unfortunately.
499 * Do this here because TSC sync has global unprotected state.
500 */
501 tsc_sync_wait();
502
495 /* 503 /*
496 * We need to hold call_lock, so there is no inconsistency 504 * We need to hold call_lock, so there is no inconsistency
497 * between the time smp_call_function() determines number of 505 * between the time smp_call_function() determines number of
@@ -509,13 +517,6 @@ void __cpuinit start_secondary(void)
509 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; 517 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;
510 unlock_ipi_call_lock(); 518 unlock_ipi_call_lock();
511 519
512 mb();
513
514 /* Wait for TSC sync to not schedule things before.
515 We still process interrupts, which could see an inconsistent
516 time in that window unfortunately. */
517 tsc_sync_wait();
518
519 cpu_idle(); 520 cpu_idle();
520} 521}
521 522
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c
index 493819e543a5..ca914c3bd49c 100644
--- a/arch/x86_64/mm/fault.c
+++ b/arch/x86_64/mm/fault.c
@@ -211,9 +211,7 @@ int unhandled_signal(struct task_struct *tsk, int sig)
211{ 211{
212 if (tsk->pid == 1) 212 if (tsk->pid == 1)
213 return 1; 213 return 1;
214 /* Warn for strace, but not for gdb */ 214 if (tsk->ptrace & PT_PTRACED)
215 if (!test_ti_thread_flag(tsk->thread_info, TIF_SYSCALL_TRACE) &&
216 (tsk->ptrace & PT_PTRACED))
217 return 0; 215 return 0;
218 return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) || 216 return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) ||
219 (tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL); 217 (tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL);