View | Details | Raw Unified | Return to bug 116364
Collapse All | Expand All

(-)linux-2.6.16/arch/i386/kernel/io_apic.c (+2 lines)
Lines 33-38 Link Here
33
#include <linux/mc146818rtc.h>
33
#include <linux/mc146818rtc.h>
34
#include <linux/compiler.h>
34
#include <linux/compiler.h>
35
#include <linux/acpi.h>
35
#include <linux/acpi.h>
36
#include <linux/pci.h>
36
#include <linux/module.h>
37
#include <linux/module.h>
37
#include <linux/sysdev.h>
38
#include <linux/sysdev.h>
38
39
Lines 691-696 int skip_ioapic_setup; Link Here
691
static int __init ioapic_setup(char *str)
692
static int __init ioapic_setup(char *str)
692
{
693
{
693
	skip_ioapic_setup = 1;
694
	skip_ioapic_setup = 1;
695
	msi_off();
694
	return 1;
696
	return 1;
695
}
697
}
696
698
(-)linux-2.6.16/arch/i386/kernel/smpboot.c (-1 / +5 lines)
Lines 48-53 Link Here
48
#endif	/* CONFIG_KDB */
48
#endif	/* CONFIG_KDB */
49
#include <linux/notifier.h>
49
#include <linux/notifier.h>
50
#include <linux/cpu.h>
50
#include <linux/cpu.h>
51
#include <linux/pci.h>
51
#include <linux/percpu.h>
52
#include <linux/percpu.h>
52
53
53
#include <linux/delay.h>
54
#include <linux/delay.h>
Lines 1147-1155 static void __init smp_boot_cpus(unsigne Link Here
1147
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1148
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1148
		smpboot_clear_io_apic_irqs();
1149
		smpboot_clear_io_apic_irqs();
1149
		phys_cpu_present_map = physid_mask_of_physid(0);
1150
		phys_cpu_present_map = physid_mask_of_physid(0);
1150
		if (APIC_init_uniprocessor())
1151
		if (APIC_init_uniprocessor()) {
1151
			printk(KERN_NOTICE "Local APIC not detected."
1152
			printk(KERN_NOTICE "Local APIC not detected."
1152
					   " Using dummy APIC emulation.\n");
1153
					   " Using dummy APIC emulation.\n");
1154
			msi_off();
1155
		}
1153
		map_cpu_to_logical_apicid();
1156
		map_cpu_to_logical_apicid();
1154
		cpu_set(0, cpu_sibling_map[0]);
1157
		cpu_set(0, cpu_sibling_map[0]);
1155
		cpu_set(0, cpu_core_map[0]);
1158
		cpu_set(0, cpu_core_map[0]);
Lines 1190-1195 static void __init smp_boot_cpus(unsigne Link Here
1190
		smp_found_config = 0;
1193
		smp_found_config = 0;
1191
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1194
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1192
		smpboot_clear_io_apic_irqs();
1195
		smpboot_clear_io_apic_irqs();
1196
		msi_off();
1193
		phys_cpu_present_map = physid_mask_of_physid(0);
1197
		phys_cpu_present_map = physid_mask_of_physid(0);
1194
		cpu_set(0, cpu_sibling_map[0]);
1198
		cpu_set(0, cpu_sibling_map[0]);
1195
		cpu_set(0, cpu_core_map[0]);
1199
		cpu_set(0, cpu_core_map[0]);
(-)linux-2.6.16/arch/x86_64/kernel/apic.c (-1 / +5 lines)
Lines 24-29 Link Here
24
#include <linux/interrupt.h>
24
#include <linux/interrupt.h>
25
#include <linux/mc146818rtc.h>
25
#include <linux/mc146818rtc.h>
26
#include <linux/kernel_stat.h>
26
#include <linux/kernel_stat.h>
27
#include <linux/pci.h>
27
#include <linux/sysdev.h>
28
#include <linux/sysdev.h>
28
#include <linux/module.h>
29
#include <linux/module.h>
29
30
Lines 1126-1133 int __init APIC_init_uniprocessor (void) Link Here
1126
#ifdef CONFIG_X86_IO_APIC
1127
#ifdef CONFIG_X86_IO_APIC
1127
	if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1128
	if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1128
			setup_IO_APIC();
1129
			setup_IO_APIC();
1129
	else
1130
	else {
1130
		nr_ioapics = 0;
1131
		nr_ioapics = 0;
1132
		msi_off();
1133
	}
1131
#endif
1134
#endif
1132
	setup_boot_APIC_clock();
1135
	setup_boot_APIC_clock();
1133
	check_nmi_watchdog();
1136
	check_nmi_watchdog();
Lines 1143-1148 static __init int setup_disableapic(char Link Here
1143
static __init int setup_nolapic(char *str) 
1146
static __init int setup_nolapic(char *str) 
1144
{ 
1147
{ 
1145
	disable_apic = 1;
1148
	disable_apic = 1;
1149
	msi_off();
1146
	return 0;
1150
	return 0;
1147
} 
1151
} 
1148
1152
(-)linux-2.6.16/arch/x86_64/kernel/io_apic.c (+2 lines)
Lines 29-34 Link Here
29
#include <linux/smp_lock.h>
29
#include <linux/smp_lock.h>
30
#include <linux/mc146818rtc.h>
30
#include <linux/mc146818rtc.h>
31
#include <linux/acpi.h>
31
#include <linux/acpi.h>
32
#include <linux/pci.h>
32
#include <linux/sysdev.h>
33
#include <linux/sysdev.h>
33
#ifdef CONFIG_ACPI
34
#ifdef CONFIG_ACPI
34
#include <acpi/acpi_bus.h>
35
#include <acpi/acpi_bus.h>
Lines 240-245 int ioapic_force; Link Here
240
static int __init disable_ioapic_setup(char *str)
241
static int __init disable_ioapic_setup(char *str)
241
{
242
{
242
	skip_ioapic_setup = 1;
243
	skip_ioapic_setup = 1;
244
	msi_off();
243
	return 1;
245
	return 1;
244
}
246
}
245
247
(-)linux-2.6.16/arch/x86_64/kernel/smpboot.c (-2 / +9 lines)
Lines 47-52 Link Here
47
#include <linux/bootmem.h>
47
#include <linux/bootmem.h>
48
#include <linux/thread_info.h>
48
#include <linux/thread_info.h>
49
#include <linux/module.h>
49
#include <linux/module.h>
50
#include <linux/pci.h>
50
51
51
#include <linux/delay.h>
52
#include <linux/delay.h>
52
#include <linux/mc146818rtc.h>
53
#include <linux/mc146818rtc.h>
Lines 1002-1010 static int __init smp_sanity_check(unsig Link Here
1002
	if (!smp_found_config) {
1003
	if (!smp_found_config) {
1003
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1004
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1004
		disable_smp();
1005
		disable_smp();
1005
		if (APIC_init_uniprocessor())
1006
		if (APIC_init_uniprocessor()) {
1006
			printk(KERN_NOTICE "Local APIC not detected."
1007
			printk(KERN_NOTICE "Local APIC not detected."
1007
					   " Using dummy APIC emulation.\n");
1008
					   " Using dummy APIC emulation.\n");
1009
			msi_off();
1010
		}
1008
		return -1;
1011
		return -1;
1009
	}
1012
	}
1010
1013
Lines 1026-1031 static int __init smp_sanity_check(unsig Link Here
1026
			boot_cpu_id);
1029
			boot_cpu_id);
1027
		printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
1030
		printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
1028
		nr_ioapics = 0;
1031
		nr_ioapics = 0;
1032
		msi_off();
1029
		return -1;
1033
		return -1;
1030
	}
1034
	}
1031
1035
Lines 1035-1040 static int __init smp_sanity_check(unsig Link Here
1035
	if (!max_cpus) {
1039
	if (!max_cpus) {
1036
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1040
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1037
		nr_ioapics = 0;
1041
		nr_ioapics = 0;
1042
		msi_off();
1038
		return -1;
1043
		return -1;
1039
	}
1044
	}
1040
1045
Lines 1076-1083 void __init smp_prepare_cpus(unsigned in Link Here
1076
	 */
1081
	 */
1077
	if (!skip_ioapic_setup && nr_ioapics)
1082
	if (!skip_ioapic_setup && nr_ioapics)
1078
		setup_IO_APIC();
1083
		setup_IO_APIC();
1079
	else
1084
	else {
1080
		nr_ioapics = 0;
1085
		nr_ioapics = 0;
1086
		msi_off();
1087
	}
1081
1088
1082
	/*
1089
	/*
1083
	 * Set up local APIC timer on boot CPU.
1090
	 * Set up local APIC timer on boot CPU.
(-)linux-2.6.16/drivers/pci/msi.c (+5 lines)
Lines 1148-1153 void pci_no_msi(void) Link Here
1148
	pci_msi_enable = 0;
1148
	pci_msi_enable = 0;
1149
}
1149
}
1150
1150
1151
void msi_off(void)
1152
{
1153
	pci_msi_enable = 0;
1154
}
1155
1151
EXPORT_SYMBOL(pci_enable_msi);
1156
EXPORT_SYMBOL(pci_enable_msi);
1152
EXPORT_SYMBOL(pci_disable_msi);
1157
EXPORT_SYMBOL(pci_disable_msi);
1153
EXPORT_SYMBOL(pci_enable_msix);
1158
EXPORT_SYMBOL(pci_enable_msix);
(-)linux-2.6.16/include/linux/pci.h (+2 lines)
Lines 559-564 static inline int pci_enable_msix(struct Link Here
559
	struct msix_entry *entries, int nvec) {return -1;}
559
	struct msix_entry *entries, int nvec) {return -1;}
560
static inline void pci_disable_msix(struct pci_dev *dev) {}
560
static inline void pci_disable_msix(struct pci_dev *dev) {}
561
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev) {}
561
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev) {}
562
static inline void msi_off(void) {}
562
#else
563
#else
563
extern void pci_scan_msi_device(struct pci_dev *dev);
564
extern void pci_scan_msi_device(struct pci_dev *dev);
564
extern int pci_enable_msi(struct pci_dev *dev);
565
extern int pci_enable_msi(struct pci_dev *dev);
Lines 567-572 extern int pci_enable_msix(struct pci_de Link Here
567
	struct msix_entry *entries, int nvec);
568
	struct msix_entry *entries, int nvec);
568
extern void pci_disable_msix(struct pci_dev *dev);
569
extern void pci_disable_msix(struct pci_dev *dev);
569
extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
570
extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
571
extern void msi_off(void);
570
#endif
572
#endif
571
573
572
extern void pci_block_user_cfg_access(struct pci_dev *dev);
574
extern void pci_block_user_cfg_access(struct pci_dev *dev);
(-)linux-2.6.16/arch/x86_64/kernel/setup.c (-1 / +3 lines)
Lines 346-353 static __init void parse_cmdline_early ( Link Here
346
346
347
		/* Don't confuse with noapictimer */
347
		/* Don't confuse with noapictimer */
348
		if (!memcmp(from, "noapic", 6) &&
348
		if (!memcmp(from, "noapic", 6) &&
349
			(from[6] == ' ' || from[6] == 0))
349
		    (from[6] == ' ' || from[6] == 0)){
350
			skip_ioapic_setup = 1;
350
			skip_ioapic_setup = 1;
351
			msi_off();
352
		}
351
353
352
		/* Make sure to not confuse with apic= */
354
		/* Make sure to not confuse with apic= */
353
		if (!memcmp(from, "apic", 4) &&
355
		if (!memcmp(from, "apic", 4) &&

Return to bug 116364