Commit af1713e0f111647052953ba12fd10a59c74a5dde
Exists in
master
and in
7 other branches
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
Showing 10 changed files Side-by-side Diff
arch/i386/Kconfig
... | ... | @@ -190,6 +190,7 @@ |
190 | 190 | config PARAVIRT |
191 | 191 | bool "Paravirtualization support (EXPERIMENTAL)" |
192 | 192 | depends on EXPERIMENTAL |
193 | + depends on !(X86_VISWS || X86_VOYAGER) | |
193 | 194 | help |
194 | 195 | Paravirtualization is a way of running multiple instances of |
195 | 196 | Linux on the same machine, under a hypervisor. This option |
arch/i386/defconfig
1 | 1 | # |
2 | 2 | # Automatically generated make config: don't edit |
3 | -# Linux kernel version: 2.6.19-git7 | |
4 | -# Wed Dec 6 23:50:49 2006 | |
3 | +# Linux kernel version: 2.6.19-git14 | |
4 | +# Sat Dec 9 21:23:14 2006 | |
5 | 5 | # |
6 | 6 | CONFIG_X86_32=y |
7 | 7 | CONFIG_GENERIC_TIME=y |
... | ... | @@ -12,6 +12,7 @@ |
12 | 12 | CONFIG_MMU=y |
13 | 13 | CONFIG_GENERIC_ISA_DMA=y |
14 | 14 | CONFIG_GENERIC_IOMAP=y |
15 | +CONFIG_GENERIC_BUG=y | |
15 | 16 | CONFIG_GENERIC_HWEIGHT=y |
16 | 17 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
17 | 18 | CONFIG_DMI=y |
... | ... | @@ -141,6 +142,8 @@ |
141 | 142 | CONFIG_X86_XADD=y |
142 | 143 | CONFIG_X86_L1_CACHE_SHIFT=7 |
143 | 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 | 147 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
145 | 148 | CONFIG_X86_WP_WORKS_OK=y |
146 | 149 | CONFIG_X86_INVLPG=y |
... | ... | @@ -203,6 +206,7 @@ |
203 | 206 | CONFIG_SECCOMP=y |
204 | 207 | # CONFIG_HZ_100 is not set |
205 | 208 | CONFIG_HZ_250=y |
209 | +# CONFIG_HZ_300 is not set | |
206 | 210 | # CONFIG_HZ_1000 is not set |
207 | 211 | CONFIG_HZ=250 |
208 | 212 | # CONFIG_KEXEC is not set |
... | ... | @@ -563,6 +567,7 @@ |
563 | 567 | # |
564 | 568 | # CONFIG_RAID_ATTRS is not set |
565 | 569 | CONFIG_SCSI=y |
570 | +# CONFIG_SCSI_TGT is not set | |
566 | 571 | CONFIG_SCSI_NETLINK=y |
567 | 572 | # CONFIG_SCSI_PROC_FS is not set |
568 | 573 | |
... | ... | @@ -583,6 +588,7 @@ |
583 | 588 | # CONFIG_SCSI_MULTI_LUN is not set |
584 | 589 | # CONFIG_SCSI_CONSTANTS is not set |
585 | 590 | # CONFIG_SCSI_LOGGING is not set |
591 | +# CONFIG_SCSI_SCAN_ASYNC is not set | |
586 | 592 | |
587 | 593 | # |
588 | 594 | # SCSI Transports |
... | ... | @@ -642,6 +648,7 @@ |
642 | 648 | # CONFIG_SCSI_DC390T is not set |
643 | 649 | # CONFIG_SCSI_NSP32 is not set |
644 | 650 | # CONFIG_SCSI_DEBUG is not set |
651 | +# CONFIG_SCSI_SRP is not set | |
645 | 652 | |
646 | 653 | # |
647 | 654 | # Serial ATA (prod) and Parallel ATA (experimental) drivers |
648 | 655 | |
... | ... | @@ -1082,10 +1089,7 @@ |
1082 | 1089 | # Open Sound System |
1083 | 1090 | # |
1084 | 1091 | CONFIG_SOUND_PRIME=y |
1085 | -CONFIG_OSS_OBSOLETE_DRIVER=y | |
1086 | 1092 | # CONFIG_SOUND_BT878 is not set |
1087 | -# CONFIG_SOUND_EMU10K1 is not set | |
1088 | -# CONFIG_SOUND_FUSION is not set | |
1089 | 1093 | # CONFIG_SOUND_ES1371 is not set |
1090 | 1094 | CONFIG_SOUND_ICH=y |
1091 | 1095 | # CONFIG_SOUND_TRIDENT is not set |
... | ... | @@ -1095,6 +1099,11 @@ |
1095 | 1099 | # CONFIG_SOUND_OSS is not set |
1096 | 1100 | |
1097 | 1101 | # |
1102 | +# HID Devices | |
1103 | +# | |
1104 | +CONFIG_HID=y | |
1105 | + | |
1106 | +# | |
1098 | 1107 | # USB support |
1099 | 1108 | # |
1100 | 1109 | CONFIG_USB_ARCH_HAS_HCD=y |
... | ... | @@ -1158,8 +1167,7 @@ |
1158 | 1167 | # USB Input Devices |
1159 | 1168 | # |
1160 | 1169 | CONFIG_USB_HID=y |
1161 | -CONFIG_USB_HIDINPUT=y | |
1162 | -# CONFIG_USB_HIDINPUT_POWERBOOK is not set | |
1170 | +# CONFIG_USB_HID_POWERBOOK is not set | |
1163 | 1171 | # CONFIG_HID_FF is not set |
1164 | 1172 | # CONFIG_USB_HIDDEV is not set |
1165 | 1173 | # CONFIG_USB_AIPTEK is not set |
... | ... | @@ -1444,6 +1452,11 @@ |
1444 | 1452 | CONFIG_NLS_UTF8=y |
1445 | 1453 | |
1446 | 1454 | # |
1455 | +# Distributed Lock Manager | |
1456 | +# | |
1457 | +# CONFIG_DLM is not set | |
1458 | + | |
1459 | +# | |
1447 | 1460 | # Instrumentation Support |
1448 | 1461 | # |
1449 | 1462 | CONFIG_PROFILING=y |
... | ... | @@ -1509,6 +1522,7 @@ |
1509 | 1522 | # |
1510 | 1523 | # Library routines |
1511 | 1524 | # |
1525 | +CONFIG_BITREVERSE=y | |
1512 | 1526 | # CONFIG_CRC_CCITT is not set |
1513 | 1527 | # CONFIG_CRC16 is not set |
1514 | 1528 | CONFIG_CRC32=y |
arch/i386/kernel/io_apic.c
arch/i386/kernel/nmi.c
... | ... | @@ -195,6 +195,8 @@ |
195 | 195 | return 0; |
196 | 196 | } |
197 | 197 | |
198 | +static int endflag __initdata = 0; | |
199 | + | |
198 | 200 | #ifdef CONFIG_SMP |
199 | 201 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when |
200 | 202 | * the CPU is idle. To make sure the NMI watchdog really ticks on all |
... | ... | @@ -202,7 +204,6 @@ |
202 | 204 | */ |
203 | 205 | static __init void nmi_cpu_busy(void *data) |
204 | 206 | { |
205 | - volatile int *endflag = data; | |
206 | 207 | local_irq_enable_in_hardirq(); |
207 | 208 | /* Intentionally don't use cpu_relax here. This is |
208 | 209 | to make sure that the performance counter really ticks, |
209 | 210 | |
... | ... | @@ -210,14 +211,13 @@ |
210 | 211 | pause instruction. On a real HT machine this is fine because |
211 | 212 | all other CPUs are busy with "useless" delay loops and don't |
212 | 213 | care if they get somewhat less cycles. */ |
213 | - while (*endflag == 0) | |
214 | - barrier(); | |
214 | + while (endflag == 0) | |
215 | + mb(); | |
215 | 216 | } |
216 | 217 | #endif |
217 | 218 | |
218 | 219 | static int __init check_nmi_watchdog(void) |
219 | 220 | { |
220 | - volatile int endflag = 0; | |
221 | 221 | unsigned int *prev_nmi_count; |
222 | 222 | int cpu; |
223 | 223 |
arch/i386/kernel/quirks.c
... | ... | @@ -10,13 +10,38 @@ |
10 | 10 | #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) |
11 | 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 | 33 | #ifdef CONFIG_X86_64 |
14 | - if (genapic != &apic_flat) | |
15 | - panic("APIC mode must be flat on this system\n"); | |
34 | + if (genapic != &apic_flat) | |
35 | + panic("APIC mode must be flat on this system\n"); | |
16 | 36 | #elif defined(CONFIG_X86_GENERICARCH) |
17 | - if (genapic != &apic_default) | |
18 | - panic("APIC mode must be default(flat) on this system. Use apic=default\n"); | |
37 | + if (genapic != &apic_default) | |
38 | + panic("APIC mode must be default(flat) on this system. Use apic=default\n"); | |
19 | 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 | 47 | void __init quirk_intel_irqbalance(void) |
arch/i386/kernel/smpboot.c
arch/i386/kernel/vmlinux.lds.S
arch/x86_64/defconfig
1 | 1 | # |
2 | 2 | # Automatically generated make config: don't edit |
3 | -# Linux kernel version: 2.6.19-git7 | |
4 | -# Wed Dec 6 23:50:47 2006 | |
3 | +# Linux kernel version: 2.6.19-git14 | |
4 | +# Sat Dec 9 21:23:09 2006 | |
5 | 5 | # |
6 | 6 | CONFIG_X86_64=y |
7 | 7 | CONFIG_64BIT=y |
... | ... | @@ -22,6 +22,9 @@ |
22 | 22 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
23 | 23 | CONFIG_DMI=y |
24 | 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 | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
26 | 29 | |
27 | 30 | # |
... | ... | @@ -170,6 +173,7 @@ |
170 | 173 | # CONFIG_CC_STACKPROTECTOR is not set |
171 | 174 | # CONFIG_HZ_100 is not set |
172 | 175 | CONFIG_HZ_250=y |
176 | +# CONFIG_HZ_300 is not set | |
173 | 177 | # CONFIG_HZ_1000 is not set |
174 | 178 | CONFIG_HZ=250 |
175 | 179 | # CONFIG_REORDER is not set |
... | ... | @@ -514,6 +518,7 @@ |
514 | 518 | # |
515 | 519 | # CONFIG_RAID_ATTRS is not set |
516 | 520 | CONFIG_SCSI=y |
521 | +# CONFIG_SCSI_TGT is not set | |
517 | 522 | CONFIG_SCSI_NETLINK=y |
518 | 523 | # CONFIG_SCSI_PROC_FS is not set |
519 | 524 | |
... | ... | @@ -534,6 +539,7 @@ |
534 | 539 | # CONFIG_SCSI_MULTI_LUN is not set |
535 | 540 | CONFIG_SCSI_CONSTANTS=y |
536 | 541 | # CONFIG_SCSI_LOGGING is not set |
542 | +# CONFIG_SCSI_SCAN_ASYNC is not set | |
537 | 543 | |
538 | 544 | # |
539 | 545 | # SCSI Transports |
... | ... | @@ -587,6 +593,7 @@ |
587 | 593 | # CONFIG_SCSI_DC395x is not set |
588 | 594 | # CONFIG_SCSI_DC390T is not set |
589 | 595 | # CONFIG_SCSI_DEBUG is not set |
596 | +# CONFIG_SCSI_SRP is not set | |
590 | 597 | |
591 | 598 | # |
592 | 599 | # Serial ATA (prod) and Parallel ATA (experimental) drivers |
593 | 600 | |
... | ... | @@ -1106,10 +1113,7 @@ |
1106 | 1113 | # Open Sound System |
1107 | 1114 | # |
1108 | 1115 | CONFIG_SOUND_PRIME=y |
1109 | -CONFIG_OSS_OBSOLETE_DRIVER=y | |
1110 | 1116 | # CONFIG_SOUND_BT878 is not set |
1111 | -# CONFIG_SOUND_EMU10K1 is not set | |
1112 | -# CONFIG_SOUND_FUSION is not set | |
1113 | 1117 | # CONFIG_SOUND_ES1371 is not set |
1114 | 1118 | CONFIG_SOUND_ICH=y |
1115 | 1119 | # CONFIG_SOUND_TRIDENT is not set |
... | ... | @@ -1119,6 +1123,11 @@ |
1119 | 1123 | # CONFIG_SOUND_OSS is not set |
1120 | 1124 | |
1121 | 1125 | # |
1126 | +# HID Devices | |
1127 | +# | |
1128 | +CONFIG_HID=y | |
1129 | + | |
1130 | +# | |
1122 | 1131 | # USB support |
1123 | 1132 | # |
1124 | 1133 | CONFIG_USB_ARCH_HAS_HCD=y |
... | ... | @@ -1182,8 +1191,7 @@ |
1182 | 1191 | # USB Input Devices |
1183 | 1192 | # |
1184 | 1193 | CONFIG_USB_HID=y |
1185 | -CONFIG_USB_HIDINPUT=y | |
1186 | -# CONFIG_USB_HIDINPUT_POWERBOOK is not set | |
1194 | +# CONFIG_USB_HID_POWERBOOK is not set | |
1187 | 1195 | # CONFIG_HID_FF is not set |
1188 | 1196 | # CONFIG_USB_HIDDEV is not set |
1189 | 1197 | # CONFIG_USB_AIPTEK is not set |
... | ... | @@ -1475,6 +1483,11 @@ |
1475 | 1483 | CONFIG_NLS_UTF8=y |
1476 | 1484 | |
1477 | 1485 | # |
1486 | +# Distributed Lock Manager | |
1487 | +# | |
1488 | +# CONFIG_DLM is not set | |
1489 | + | |
1490 | +# | |
1478 | 1491 | # Instrumentation Support |
1479 | 1492 | # |
1480 | 1493 | CONFIG_PROFILING=y |
... | ... | @@ -1504,6 +1517,7 @@ |
1504 | 1517 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1505 | 1518 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1506 | 1519 | # CONFIG_DEBUG_KOBJECT is not set |
1520 | +CONFIG_DEBUG_BUGVERBOSE=y | |
1507 | 1521 | # CONFIG_DEBUG_INFO is not set |
1508 | 1522 | CONFIG_DEBUG_FS=y |
1509 | 1523 | # CONFIG_DEBUG_VM is not set |
... | ... | @@ -1534,6 +1548,7 @@ |
1534 | 1548 | # |
1535 | 1549 | # Library routines |
1536 | 1550 | # |
1551 | +CONFIG_BITREVERSE=y | |
1537 | 1552 | # CONFIG_CRC_CCITT is not set |
1538 | 1553 | # CONFIG_CRC16 is not set |
1539 | 1554 | CONFIG_CRC32=y |
arch/x86_64/kernel/nmi.c
... | ... | @@ -193,6 +193,8 @@ |
193 | 193 | nmi_watchdog = NMI_IO_APIC; |
194 | 194 | } |
195 | 195 | |
196 | +static int endflag __initdata = 0; | |
197 | + | |
196 | 198 | #ifdef CONFIG_SMP |
197 | 199 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when |
198 | 200 | * the CPU is idle. To make sure the NMI watchdog really ticks on all |
... | ... | @@ -200,7 +202,6 @@ |
200 | 202 | */ |
201 | 203 | static __init void nmi_cpu_busy(void *data) |
202 | 204 | { |
203 | - volatile int *endflag = data; | |
204 | 205 | local_irq_enable_in_hardirq(); |
205 | 206 | /* Intentionally don't use cpu_relax here. This is |
206 | 207 | to make sure that the performance counter really ticks, |
207 | 208 | |
... | ... | @@ -208,14 +209,13 @@ |
208 | 209 | pause instruction. On a real HT machine this is fine because |
209 | 210 | all other CPUs are busy with "useless" delay loops and don't |
210 | 211 | care if they get somewhat less cycles. */ |
211 | - while (*endflag == 0) | |
212 | - barrier(); | |
212 | + while (endflag == 0) | |
213 | + mb(); | |
213 | 214 | } |
214 | 215 | #endif |
215 | 216 | |
216 | 217 | int __init check_nmi_watchdog (void) |
217 | 218 | { |
218 | - volatile int endflag = 0; | |
219 | 219 | int *counts; |
220 | 220 | int cpu; |
221 | 221 | |
... | ... | @@ -256,6 +256,7 @@ |
256 | 256 | if (!atomic_read(&nmi_active)) { |
257 | 257 | kfree(counts); |
258 | 258 | atomic_set(&nmi_active, -1); |
259 | + endflag = 1; | |
259 | 260 | return -1; |
260 | 261 | } |
261 | 262 | endflag = 1; |