diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-09 16:31:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-09 16:31:07 -0500 |
commit | af1713e0f111647052953ba12fd10a59c74a5dde (patch) | |
tree | 4a0cc831c88f888e33a6d9c5ff89f80a8aee42a0 | |
parent | 9b3a89f8b052f2a6193a9691e053f986144a65a0 (diff) | |
parent | f0f32fccbffaaba8596d5c671153aa37aea9d4f0 (diff) |
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
[PATCH] x86-64: no paravirt for X86_VOYAGER or X86_VISWS
[PATCH] i386: Fix io_apic.c warning
[PATCH] i386: export smp_num_siblings for oprofile
[PATCH] x86: Work around gcc 4.2 over aggressive optimizer
[PATCH] x86: Fix boot hang due to nmi watchdog init code
[PATCH] x86: Fix verify_quirk_intel_irqbalance()
[PATCH] i386: Update defconfig
[PATCH] x86-64: Update defconfig
-rw-r--r-- | arch/i386/Kconfig | 1 | ||||
-rw-r--r-- | arch/i386/defconfig | 28 | ||||
-rw-r--r-- | arch/i386/kernel/io_apic.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/nmi.c | 8 | ||||
-rw-r--r-- | arch/i386/kernel/quirks.c | 33 | ||||
-rw-r--r-- | arch/i386/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/x86_64/defconfig | 29 | ||||
-rw-r--r-- | arch/x86_64/kernel/nmi.c | 9 | ||||
-rw-r--r-- | arch/x86_64/kernel/vmlinux.lds.S | 1 |
10 files changed, 86 insertions, 28 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index c2362c7ba749..0d67a0a1151e 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -190,6 +190,7 @@ endchoice | |||
190 | config PARAVIRT | 190 | config PARAVIRT |
191 | bool "Paravirtualization support (EXPERIMENTAL)" | 191 | bool "Paravirtualization support (EXPERIMENTAL)" |
192 | depends on EXPERIMENTAL | 192 | depends on EXPERIMENTAL |
193 | depends on !(X86_VISWS || X86_VOYAGER) | ||
193 | help | 194 | help |
194 | Paravirtualization is a way of running multiple instances of | 195 | Paravirtualization is a way of running multiple instances of |
195 | Linux on the same machine, under a hypervisor. This option | 196 | Linux on the same machine, under a hypervisor. This option |
diff --git a/arch/i386/defconfig b/arch/i386/defconfig index 65891f11aced..3265208e5899 100644 --- a/arch/i386/defconfig +++ b/arch/i386/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.19-git7 | 3 | # Linux kernel version: 2.6.19-git14 |
4 | # Wed Dec 6 23:50:49 2006 | 4 | # Sat Dec 9 21:23:14 2006 |
5 | # | 5 | # |
6 | CONFIG_X86_32=y | 6 | CONFIG_X86_32=y |
7 | CONFIG_GENERIC_TIME=y | 7 | CONFIG_GENERIC_TIME=y |
@@ -12,6 +12,7 @@ CONFIG_X86=y | |||
12 | CONFIG_MMU=y | 12 | CONFIG_MMU=y |
13 | CONFIG_GENERIC_ISA_DMA=y | 13 | CONFIG_GENERIC_ISA_DMA=y |
14 | CONFIG_GENERIC_IOMAP=y | 14 | CONFIG_GENERIC_IOMAP=y |
15 | CONFIG_GENERIC_BUG=y | ||
15 | CONFIG_GENERIC_HWEIGHT=y | 16 | CONFIG_GENERIC_HWEIGHT=y |
16 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 17 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
17 | CONFIG_DMI=y | 18 | CONFIG_DMI=y |
@@ -141,6 +142,8 @@ CONFIG_X86_CMPXCHG=y | |||
141 | CONFIG_X86_XADD=y | 142 | CONFIG_X86_XADD=y |
142 | CONFIG_X86_L1_CACHE_SHIFT=7 | 143 | CONFIG_X86_L1_CACHE_SHIFT=7 |
143 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 144 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
145 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
146 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
144 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 147 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
145 | CONFIG_X86_WP_WORKS_OK=y | 148 | CONFIG_X86_WP_WORKS_OK=y |
146 | CONFIG_X86_INVLPG=y | 149 | CONFIG_X86_INVLPG=y |
@@ -203,6 +206,7 @@ CONFIG_MTRR=y | |||
203 | CONFIG_SECCOMP=y | 206 | CONFIG_SECCOMP=y |
204 | # CONFIG_HZ_100 is not set | 207 | # CONFIG_HZ_100 is not set |
205 | CONFIG_HZ_250=y | 208 | CONFIG_HZ_250=y |
209 | # CONFIG_HZ_300 is not set | ||
206 | # CONFIG_HZ_1000 is not set | 210 | # CONFIG_HZ_1000 is not set |
207 | CONFIG_HZ=250 | 211 | CONFIG_HZ=250 |
208 | # CONFIG_KEXEC is not set | 212 | # CONFIG_KEXEC is not set |
@@ -563,6 +567,7 @@ CONFIG_IDEDMA_AUTO=y | |||
563 | # | 567 | # |
564 | # CONFIG_RAID_ATTRS is not set | 568 | # CONFIG_RAID_ATTRS is not set |
565 | CONFIG_SCSI=y | 569 | CONFIG_SCSI=y |
570 | # CONFIG_SCSI_TGT is not set | ||
566 | CONFIG_SCSI_NETLINK=y | 571 | CONFIG_SCSI_NETLINK=y |
567 | # CONFIG_SCSI_PROC_FS is not set | 572 | # CONFIG_SCSI_PROC_FS is not set |
568 | 573 | ||
@@ -583,6 +588,7 @@ CONFIG_CHR_DEV_SG=y | |||
583 | # CONFIG_SCSI_MULTI_LUN is not set | 588 | # CONFIG_SCSI_MULTI_LUN is not set |
584 | # CONFIG_SCSI_CONSTANTS is not set | 589 | # CONFIG_SCSI_CONSTANTS is not set |
585 | # CONFIG_SCSI_LOGGING is not set | 590 | # CONFIG_SCSI_LOGGING is not set |
591 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
586 | 592 | ||
587 | # | 593 | # |
588 | # SCSI Transports | 594 | # SCSI Transports |
@@ -642,6 +648,7 @@ CONFIG_AIC79XX_DEBUG_MASK=0 | |||
642 | # CONFIG_SCSI_DC390T is not set | 648 | # CONFIG_SCSI_DC390T is not set |
643 | # CONFIG_SCSI_NSP32 is not set | 649 | # CONFIG_SCSI_NSP32 is not set |
644 | # CONFIG_SCSI_DEBUG is not set | 650 | # CONFIG_SCSI_DEBUG is not set |
651 | # CONFIG_SCSI_SRP is not set | ||
645 | 652 | ||
646 | # | 653 | # |
647 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | 654 | # Serial ATA (prod) and Parallel ATA (experimental) drivers |
@@ -1082,10 +1089,7 @@ CONFIG_SOUND=y | |||
1082 | # Open Sound System | 1089 | # Open Sound System |
1083 | # | 1090 | # |
1084 | CONFIG_SOUND_PRIME=y | 1091 | CONFIG_SOUND_PRIME=y |
1085 | CONFIG_OSS_OBSOLETE_DRIVER=y | ||
1086 | # CONFIG_SOUND_BT878 is not set | 1092 | # CONFIG_SOUND_BT878 is not set |
1087 | # CONFIG_SOUND_EMU10K1 is not set | ||
1088 | # CONFIG_SOUND_FUSION is not set | ||
1089 | # CONFIG_SOUND_ES1371 is not set | 1093 | # CONFIG_SOUND_ES1371 is not set |
1090 | CONFIG_SOUND_ICH=y | 1094 | CONFIG_SOUND_ICH=y |
1091 | # CONFIG_SOUND_TRIDENT is not set | 1095 | # CONFIG_SOUND_TRIDENT is not set |
@@ -1095,6 +1099,11 @@ CONFIG_SOUND_ICH=y | |||
1095 | # CONFIG_SOUND_OSS is not set | 1099 | # CONFIG_SOUND_OSS is not set |
1096 | 1100 | ||
1097 | # | 1101 | # |
1102 | # HID Devices | ||
1103 | # | ||
1104 | CONFIG_HID=y | ||
1105 | |||
1106 | # | ||
1098 | # USB support | 1107 | # USB support |
1099 | # | 1108 | # |
1100 | CONFIG_USB_ARCH_HAS_HCD=y | 1109 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -1158,8 +1167,7 @@ CONFIG_USB_STORAGE=y | |||
1158 | # USB Input Devices | 1167 | # USB Input Devices |
1159 | # | 1168 | # |
1160 | CONFIG_USB_HID=y | 1169 | CONFIG_USB_HID=y |
1161 | CONFIG_USB_HIDINPUT=y | 1170 | # CONFIG_USB_HID_POWERBOOK is not set |
1162 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1163 | # CONFIG_HID_FF is not set | 1171 | # CONFIG_HID_FF is not set |
1164 | # CONFIG_USB_HIDDEV is not set | 1172 | # CONFIG_USB_HIDDEV is not set |
1165 | # CONFIG_USB_AIPTEK is not set | 1173 | # CONFIG_USB_AIPTEK is not set |
@@ -1444,6 +1452,11 @@ CONFIG_NLS_ISO8859_15=y | |||
1444 | CONFIG_NLS_UTF8=y | 1452 | CONFIG_NLS_UTF8=y |
1445 | 1453 | ||
1446 | # | 1454 | # |
1455 | # Distributed Lock Manager | ||
1456 | # | ||
1457 | # CONFIG_DLM is not set | ||
1458 | |||
1459 | # | ||
1447 | # Instrumentation Support | 1460 | # Instrumentation Support |
1448 | # | 1461 | # |
1449 | CONFIG_PROFILING=y | 1462 | CONFIG_PROFILING=y |
@@ -1509,6 +1522,7 @@ CONFIG_DOUBLEFAULT=y | |||
1509 | # | 1522 | # |
1510 | # Library routines | 1523 | # Library routines |
1511 | # | 1524 | # |
1525 | CONFIG_BITREVERSE=y | ||
1512 | # CONFIG_CRC_CCITT is not set | 1526 | # CONFIG_CRC_CCITT is not set |
1513 | # CONFIG_CRC16 is not set | 1527 | # CONFIG_CRC16 is not set |
1514 | CONFIG_CRC32=y | 1528 | CONFIG_CRC32=y |
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index e21dcde0790e..2424cc9c7b3d 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -2485,7 +2485,7 @@ device_initcall(ioapic_init_sysfs); | |||
2485 | int create_irq(void) | 2485 | int create_irq(void) |
2486 | { | 2486 | { |
2487 | /* Allocate an unused irq */ | 2487 | /* Allocate an unused irq */ |
2488 | int irq, new, vector; | 2488 | int irq, new, vector = 0; |
2489 | unsigned long flags; | 2489 | unsigned long flags; |
2490 | 2490 | ||
2491 | irq = -ENOSPC; | 2491 | irq = -ENOSPC; |
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index f5bc7e1be801..a5e34d655965 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
@@ -195,6 +195,8 @@ static __cpuinit inline int nmi_known_cpu(void) | |||
195 | return 0; | 195 | return 0; |
196 | } | 196 | } |
197 | 197 | ||
198 | static int endflag __initdata = 0; | ||
199 | |||
198 | #ifdef CONFIG_SMP | 200 | #ifdef CONFIG_SMP |
199 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when | 201 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when |
200 | * the CPU is idle. To make sure the NMI watchdog really ticks on all | 202 | * the CPU is idle. To make sure the NMI watchdog really ticks on all |
@@ -202,7 +204,6 @@ static __cpuinit inline int nmi_known_cpu(void) | |||
202 | */ | 204 | */ |
203 | static __init void nmi_cpu_busy(void *data) | 205 | static __init void nmi_cpu_busy(void *data) |
204 | { | 206 | { |
205 | volatile int *endflag = data; | ||
206 | local_irq_enable_in_hardirq(); | 207 | local_irq_enable_in_hardirq(); |
207 | /* Intentionally don't use cpu_relax here. This is | 208 | /* Intentionally don't use cpu_relax here. This is |
208 | to make sure that the performance counter really ticks, | 209 | to make sure that the performance counter really ticks, |
@@ -210,14 +211,13 @@ static __init void nmi_cpu_busy(void *data) | |||
210 | pause instruction. On a real HT machine this is fine because | 211 | pause instruction. On a real HT machine this is fine because |
211 | all other CPUs are busy with "useless" delay loops and don't | 212 | all other CPUs are busy with "useless" delay loops and don't |
212 | care if they get somewhat less cycles. */ | 213 | care if they get somewhat less cycles. */ |
213 | while (*endflag == 0) | 214 | while (endflag == 0) |
214 | barrier(); | 215 | mb(); |
215 | } | 216 | } |
216 | #endif | 217 | #endif |
217 | 218 | ||
218 | static int __init check_nmi_watchdog(void) | 219 | static int __init check_nmi_watchdog(void) |
219 | { | 220 | { |
220 | volatile int endflag = 0; | ||
221 | unsigned int *prev_nmi_count; | 221 | unsigned int *prev_nmi_count; |
222 | int cpu; | 222 | int cpu; |
223 | 223 | ||
diff --git a/arch/i386/kernel/quirks.c b/arch/i386/kernel/quirks.c index a01320a7b636..34874c398b44 100644 --- a/arch/i386/kernel/quirks.c +++ b/arch/i386/kernel/quirks.c | |||
@@ -10,13 +10,38 @@ | |||
10 | #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) | 10 | #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) |
11 | static void __devinit verify_quirk_intel_irqbalance(struct pci_dev *dev) | 11 | static void __devinit verify_quirk_intel_irqbalance(struct pci_dev *dev) |
12 | { | 12 | { |
13 | u8 config, rev; | ||
14 | u32 word; | ||
15 | |||
16 | /* BIOS may enable hardware IRQ balancing for | ||
17 | * E7520/E7320/E7525(revision ID 0x9 and below) | ||
18 | * based platforms. | ||
19 | * For those platforms, make sure that the genapic is set to 'flat' | ||
20 | */ | ||
21 | pci_read_config_byte(dev, PCI_CLASS_REVISION, &rev); | ||
22 | if (rev > 0x9) | ||
23 | return; | ||
24 | |||
25 | /* enable access to config space*/ | ||
26 | pci_read_config_byte(dev, 0xf4, &config); | ||
27 | pci_write_config_byte(dev, 0xf4, config|0x2); | ||
28 | |||
29 | /* read xTPR register */ | ||
30 | raw_pci_ops->read(0, 0, 0x40, 0x4c, 2, &word); | ||
31 | |||
32 | if (!(word & (1 << 13))) { | ||
13 | #ifdef CONFIG_X86_64 | 33 | #ifdef CONFIG_X86_64 |
14 | if (genapic != &apic_flat) | 34 | if (genapic != &apic_flat) |
15 | panic("APIC mode must be flat on this system\n"); | 35 | panic("APIC mode must be flat on this system\n"); |
16 | #elif defined(CONFIG_X86_GENERICARCH) | 36 | #elif defined(CONFIG_X86_GENERICARCH) |
17 | if (genapic != &apic_default) | 37 | if (genapic != &apic_default) |
18 | panic("APIC mode must be default(flat) on this system. Use apic=default\n"); | 38 | panic("APIC mode must be default(flat) on this system. Use apic=default\n"); |
19 | #endif | 39 | #endif |
40 | } | ||
41 | |||
42 | /* put back the original value for config space*/ | ||
43 | if (!(config & 0x2)) | ||
44 | pci_write_config_byte(dev, 0xf4, config); | ||
20 | } | 45 | } |
21 | 46 | ||
22 | void __init quirk_intel_irqbalance(void) | 47 | void __init quirk_intel_irqbalance(void) |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index 1e00b03163b9..b0f84e5778ad 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -69,7 +69,7 @@ static int __devinitdata smp_b_stepping; | |||
69 | 69 | ||
70 | /* Number of siblings per CPU package */ | 70 | /* Number of siblings per CPU package */ |
71 | int smp_num_siblings = 1; | 71 | int smp_num_siblings = 1; |
72 | #ifdef CONFIG_X86_HT | 72 | #ifdef CONFIG_SMP |
73 | EXPORT_SYMBOL(smp_num_siblings); | 73 | EXPORT_SYMBOL(smp_num_siblings); |
74 | #endif | 74 | #endif |
75 | 75 | ||
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 16d3c7133ad7..a53c8b1854b5 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -26,6 +26,7 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") | |||
26 | OUTPUT_ARCH(i386) | 26 | OUTPUT_ARCH(i386) |
27 | ENTRY(phys_startup_32) | 27 | ENTRY(phys_startup_32) |
28 | jiffies = jiffies_64; | 28 | jiffies = jiffies_64; |
29 | _proxy_pda = 0; | ||
29 | 30 | ||
30 | PHDRS { | 31 | PHDRS { |
31 | text PT_LOAD FLAGS(5); /* R_E */ | 32 | text PT_LOAD FLAGS(5); /* R_E */ |
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig index 96f226cfb339..1a1c6a1a299b 100644 --- a/arch/x86_64/defconfig +++ b/arch/x86_64/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.19-git7 | 3 | # Linux kernel version: 2.6.19-git14 |
4 | # Wed Dec 6 23:50:47 2006 | 4 | # Sat Dec 9 21:23:09 2006 |
5 | # | 5 | # |
6 | CONFIG_X86_64=y | 6 | CONFIG_X86_64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -22,6 +22,9 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y | |||
22 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 22 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
23 | CONFIG_DMI=y | 23 | CONFIG_DMI=y |
24 | CONFIG_AUDIT_ARCH=y | 24 | CONFIG_AUDIT_ARCH=y |
25 | CONFIG_GENERIC_BUG=y | ||
26 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
27 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
26 | 29 | ||
27 | # | 30 | # |
@@ -170,6 +173,7 @@ CONFIG_SECCOMP=y | |||
170 | # CONFIG_CC_STACKPROTECTOR is not set | 173 | # CONFIG_CC_STACKPROTECTOR is not set |
171 | # CONFIG_HZ_100 is not set | 174 | # CONFIG_HZ_100 is not set |
172 | CONFIG_HZ_250=y | 175 | CONFIG_HZ_250=y |
176 | # CONFIG_HZ_300 is not set | ||
173 | # CONFIG_HZ_1000 is not set | 177 | # CONFIG_HZ_1000 is not set |
174 | CONFIG_HZ=250 | 178 | CONFIG_HZ=250 |
175 | # CONFIG_REORDER is not set | 179 | # CONFIG_REORDER is not set |
@@ -514,6 +518,7 @@ CONFIG_IDEDMA_AUTO=y | |||
514 | # | 518 | # |
515 | # CONFIG_RAID_ATTRS is not set | 519 | # CONFIG_RAID_ATTRS is not set |
516 | CONFIG_SCSI=y | 520 | CONFIG_SCSI=y |
521 | # CONFIG_SCSI_TGT is not set | ||
517 | CONFIG_SCSI_NETLINK=y | 522 | CONFIG_SCSI_NETLINK=y |
518 | # CONFIG_SCSI_PROC_FS is not set | 523 | # CONFIG_SCSI_PROC_FS is not set |
519 | 524 | ||
@@ -534,6 +539,7 @@ CONFIG_CHR_DEV_SG=y | |||
534 | # CONFIG_SCSI_MULTI_LUN is not set | 539 | # CONFIG_SCSI_MULTI_LUN is not set |
535 | CONFIG_SCSI_CONSTANTS=y | 540 | CONFIG_SCSI_CONSTANTS=y |
536 | # CONFIG_SCSI_LOGGING is not set | 541 | # CONFIG_SCSI_LOGGING is not set |
542 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
537 | 543 | ||
538 | # | 544 | # |
539 | # SCSI Transports | 545 | # SCSI Transports |
@@ -587,6 +593,7 @@ CONFIG_MEGARAID_SAS=y | |||
587 | # CONFIG_SCSI_DC395x is not set | 593 | # CONFIG_SCSI_DC395x is not set |
588 | # CONFIG_SCSI_DC390T is not set | 594 | # CONFIG_SCSI_DC390T is not set |
589 | # CONFIG_SCSI_DEBUG is not set | 595 | # CONFIG_SCSI_DEBUG is not set |
596 | # CONFIG_SCSI_SRP is not set | ||
590 | 597 | ||
591 | # | 598 | # |
592 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | 599 | # Serial ATA (prod) and Parallel ATA (experimental) drivers |
@@ -1106,10 +1113,7 @@ CONFIG_SOUND=y | |||
1106 | # Open Sound System | 1113 | # Open Sound System |
1107 | # | 1114 | # |
1108 | CONFIG_SOUND_PRIME=y | 1115 | CONFIG_SOUND_PRIME=y |
1109 | CONFIG_OSS_OBSOLETE_DRIVER=y | ||
1110 | # CONFIG_SOUND_BT878 is not set | 1116 | # CONFIG_SOUND_BT878 is not set |
1111 | # CONFIG_SOUND_EMU10K1 is not set | ||
1112 | # CONFIG_SOUND_FUSION is not set | ||
1113 | # CONFIG_SOUND_ES1371 is not set | 1117 | # CONFIG_SOUND_ES1371 is not set |
1114 | CONFIG_SOUND_ICH=y | 1118 | CONFIG_SOUND_ICH=y |
1115 | # CONFIG_SOUND_TRIDENT is not set | 1119 | # CONFIG_SOUND_TRIDENT is not set |
@@ -1119,6 +1123,11 @@ CONFIG_SOUND_ICH=y | |||
1119 | # CONFIG_SOUND_OSS is not set | 1123 | # CONFIG_SOUND_OSS is not set |
1120 | 1124 | ||
1121 | # | 1125 | # |
1126 | # HID Devices | ||
1127 | # | ||
1128 | CONFIG_HID=y | ||
1129 | |||
1130 | # | ||
1122 | # USB support | 1131 | # USB support |
1123 | # | 1132 | # |
1124 | CONFIG_USB_ARCH_HAS_HCD=y | 1133 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -1182,8 +1191,7 @@ CONFIG_USB_STORAGE=y | |||
1182 | # USB Input Devices | 1191 | # USB Input Devices |
1183 | # | 1192 | # |
1184 | CONFIG_USB_HID=y | 1193 | CONFIG_USB_HID=y |
1185 | CONFIG_USB_HIDINPUT=y | 1194 | # CONFIG_USB_HID_POWERBOOK is not set |
1186 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1187 | # CONFIG_HID_FF is not set | 1195 | # CONFIG_HID_FF is not set |
1188 | # CONFIG_USB_HIDDEV is not set | 1196 | # CONFIG_USB_HIDDEV is not set |
1189 | # CONFIG_USB_AIPTEK is not set | 1197 | # CONFIG_USB_AIPTEK is not set |
@@ -1475,6 +1483,11 @@ CONFIG_NLS_ISO8859_15=y | |||
1475 | CONFIG_NLS_UTF8=y | 1483 | CONFIG_NLS_UTF8=y |
1476 | 1484 | ||
1477 | # | 1485 | # |
1486 | # Distributed Lock Manager | ||
1487 | # | ||
1488 | # CONFIG_DLM is not set | ||
1489 | |||
1490 | # | ||
1478 | # Instrumentation Support | 1491 | # Instrumentation Support |
1479 | # | 1492 | # |
1480 | CONFIG_PROFILING=y | 1493 | CONFIG_PROFILING=y |
@@ -1504,6 +1517,7 @@ CONFIG_DETECT_SOFTLOCKUP=y | |||
1504 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1517 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1505 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1518 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1506 | # CONFIG_DEBUG_KOBJECT is not set | 1519 | # CONFIG_DEBUG_KOBJECT is not set |
1520 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1507 | # CONFIG_DEBUG_INFO is not set | 1521 | # CONFIG_DEBUG_INFO is not set |
1508 | CONFIG_DEBUG_FS=y | 1522 | CONFIG_DEBUG_FS=y |
1509 | # CONFIG_DEBUG_VM is not set | 1523 | # CONFIG_DEBUG_VM is not set |
@@ -1534,6 +1548,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
1534 | # | 1548 | # |
1535 | # Library routines | 1549 | # Library routines |
1536 | # | 1550 | # |
1551 | CONFIG_BITREVERSE=y | ||
1537 | # CONFIG_CRC_CCITT is not set | 1552 | # CONFIG_CRC_CCITT is not set |
1538 | # CONFIG_CRC16 is not set | 1553 | # CONFIG_CRC16 is not set |
1539 | CONFIG_CRC32=y | 1554 | CONFIG_CRC32=y |
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index 27e95e7922c1..186aebbae32d 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
@@ -193,6 +193,8 @@ void nmi_watchdog_default(void) | |||
193 | nmi_watchdog = NMI_IO_APIC; | 193 | nmi_watchdog = NMI_IO_APIC; |
194 | } | 194 | } |
195 | 195 | ||
196 | static int endflag __initdata = 0; | ||
197 | |||
196 | #ifdef CONFIG_SMP | 198 | #ifdef CONFIG_SMP |
197 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when | 199 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when |
198 | * the CPU is idle. To make sure the NMI watchdog really ticks on all | 200 | * the CPU is idle. To make sure the NMI watchdog really ticks on all |
@@ -200,7 +202,6 @@ void nmi_watchdog_default(void) | |||
200 | */ | 202 | */ |
201 | static __init void nmi_cpu_busy(void *data) | 203 | static __init void nmi_cpu_busy(void *data) |
202 | { | 204 | { |
203 | volatile int *endflag = data; | ||
204 | local_irq_enable_in_hardirq(); | 205 | local_irq_enable_in_hardirq(); |
205 | /* Intentionally don't use cpu_relax here. This is | 206 | /* Intentionally don't use cpu_relax here. This is |
206 | to make sure that the performance counter really ticks, | 207 | to make sure that the performance counter really ticks, |
@@ -208,14 +209,13 @@ static __init void nmi_cpu_busy(void *data) | |||
208 | pause instruction. On a real HT machine this is fine because | 209 | pause instruction. On a real HT machine this is fine because |
209 | all other CPUs are busy with "useless" delay loops and don't | 210 | all other CPUs are busy with "useless" delay loops and don't |
210 | care if they get somewhat less cycles. */ | 211 | care if they get somewhat less cycles. */ |
211 | while (*endflag == 0) | 212 | while (endflag == 0) |
212 | barrier(); | 213 | mb(); |
213 | } | 214 | } |
214 | #endif | 215 | #endif |
215 | 216 | ||
216 | int __init check_nmi_watchdog (void) | 217 | int __init check_nmi_watchdog (void) |
217 | { | 218 | { |
218 | volatile int endflag = 0; | ||
219 | int *counts; | 219 | int *counts; |
220 | int cpu; | 220 | int cpu; |
221 | 221 | ||
@@ -256,6 +256,7 @@ int __init check_nmi_watchdog (void) | |||
256 | if (!atomic_read(&nmi_active)) { | 256 | if (!atomic_read(&nmi_active)) { |
257 | kfree(counts); | 257 | kfree(counts); |
258 | atomic_set(&nmi_active, -1); | 258 | atomic_set(&nmi_active, -1); |
259 | endflag = 1; | ||
259 | return -1; | 260 | return -1; |
260 | } | 261 | } |
261 | endflag = 1; | 262 | endflag = 1; |
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index 6c417788c54b..514be5dd2303 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S | |||
@@ -13,6 +13,7 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") | |||
13 | OUTPUT_ARCH(i386:x86-64) | 13 | OUTPUT_ARCH(i386:x86-64) |
14 | ENTRY(phys_startup_64) | 14 | ENTRY(phys_startup_64) |
15 | jiffies_64 = jiffies; | 15 | jiffies_64 = jiffies; |
16 | _proxy_pda = 0; | ||
16 | PHDRS { | 17 | PHDRS { |
17 | text PT_LOAD FLAGS(5); /* R_E */ | 18 | text PT_LOAD FLAGS(5); /* R_E */ |
18 | data PT_LOAD FLAGS(7); /* RWE */ | 19 | data PT_LOAD FLAGS(7); /* RWE */ |