Commit af1713e0f111647052953ba12fd10a59c74a5dde

Authored by Linus Torvalds

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

... ... @@ -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
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
... ... @@ -2485,7 +2485,7 @@
2485 2485 int create_irq(void)
2486 2486 {
2487 2487 /* Allocate an unused irq */
2488   - int irq, new, vector;
  2488 + int irq, new, vector = 0;
2489 2489 unsigned long flags;
2490 2490  
2491 2491 irq = -ENOSPC;
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
... ... @@ -69,7 +69,7 @@
69 69  
70 70 /* Number of siblings per CPU package */
71 71 int smp_num_siblings = 1;
72   -#ifdef CONFIG_X86_HT
  72 +#ifdef CONFIG_SMP
73 73 EXPORT_SYMBOL(smp_num_siblings);
74 74 #endif
75 75  
arch/i386/kernel/vmlinux.lds.S
... ... @@ -26,6 +26,7 @@
26 26 OUTPUT_ARCH(i386)
27 27 ENTRY(phys_startup_32)
28 28 jiffies = jiffies_64;
  29 +_proxy_pda = 0;
29 30  
30 31 PHDRS {
31 32 text PT_LOAD FLAGS(5); /* R_E */
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;
arch/x86_64/kernel/vmlinux.lds.S
... ... @@ -13,6 +13,7 @@
13 13 OUTPUT_ARCH(i386:x86-64)
14 14 ENTRY(phys_startup_64)
15 15 jiffies_64 = jiffies;
  16 +_proxy_pda = 0;
16 17 PHDRS {
17 18 text PT_LOAD FLAGS(5); /* R_E */
18 19 data PT_LOAD FLAGS(7); /* RWE */