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

(-)linux-2614-rc2-git4-pv/arch/i386/kernel/io_apic.c (+2 lines)
Lines 31-36 Link Here
31
#include <linux/mc146818rtc.h>
31
#include <linux/mc146818rtc.h>
32
#include <linux/compiler.h>
32
#include <linux/compiler.h>
33
#include <linux/acpi.h>
33
#include <linux/acpi.h>
34
#include <linux/pci.h>
34
#include <linux/module.h>
35
#include <linux/module.h>
35
#include <linux/sysdev.h>
36
#include <linux/sysdev.h>
36
37
Lines 684-689 int skip_ioapic_setup; Link Here
684
static int __init ioapic_setup(char *str)
685
static int __init ioapic_setup(char *str)
685
{
686
{
686
	skip_ioapic_setup = 1;
687
	skip_ioapic_setup = 1;
688
	msi_off();
687
	return 1;
689
	return 1;
688
}
690
}
689
691
(-)linux-2614-rc2-git4-pv/arch/i386/kernel/smpboot.c (-1 / +5 lines)
Lines 46-51 Link Here
46
#include <linux/bootmem.h>
46
#include <linux/bootmem.h>
47
#include <linux/notifier.h>
47
#include <linux/notifier.h>
48
#include <linux/cpu.h>
48
#include <linux/cpu.h>
49
#include <linux/pci.h>
49
#include <linux/percpu.h>
50
#include <linux/percpu.h>
50
51
51
#include <linux/delay.h>
52
#include <linux/delay.h>
Lines 1107-1115 static void __init smp_boot_cpus(unsigne Link Here
1107
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1108
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
1108
		smpboot_clear_io_apic_irqs();
1109
		smpboot_clear_io_apic_irqs();
1109
		phys_cpu_present_map = physid_mask_of_physid(0);
1110
		phys_cpu_present_map = physid_mask_of_physid(0);
1110
		if (APIC_init_uniprocessor())
1111
		if (APIC_init_uniprocessor()) {
1111
			printk(KERN_NOTICE "Local APIC not detected."
1112
			printk(KERN_NOTICE "Local APIC not detected."
1112
					   " Using dummy APIC emulation.\n");
1113
					   " Using dummy APIC emulation.\n");
1114
			msi_off();
1115
		}
1113
		map_cpu_to_logical_apicid();
1116
		map_cpu_to_logical_apicid();
1114
		cpu_set(0, cpu_sibling_map[0]);
1117
		cpu_set(0, cpu_sibling_map[0]);
1115
		cpu_set(0, cpu_core_map[0]);
1118
		cpu_set(0, cpu_core_map[0]);
Lines 1150-1155 static void __init smp_boot_cpus(unsigne Link Here
1150
		smp_found_config = 0;
1153
		smp_found_config = 0;
1151
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1154
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
1152
		smpboot_clear_io_apic_irqs();
1155
		smpboot_clear_io_apic_irqs();
1156
		msi_off();
1153
		phys_cpu_present_map = physid_mask_of_physid(0);
1157
		phys_cpu_present_map = physid_mask_of_physid(0);
1154
		cpu_set(0, cpu_sibling_map[0]);
1158
		cpu_set(0, cpu_sibling_map[0]);
1155
		cpu_set(0, cpu_core_map[0]);
1159
		cpu_set(0, cpu_core_map[0]);
(-)linux-2614-rc2-git4-pv/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
29
29
#include <asm/atomic.h>
30
#include <asm/atomic.h>
Lines 1057-1064 int __init APIC_init_uniprocessor (void) Link Here
1057
#ifdef CONFIG_X86_IO_APIC
1058
#ifdef CONFIG_X86_IO_APIC
1058
	if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1059
	if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
1059
			setup_IO_APIC();
1060
			setup_IO_APIC();
1060
	else
1061
	else {
1061
		nr_ioapics = 0;
1062
		nr_ioapics = 0;
1063
		msi_off();
1064
	}
1062
#endif
1065
#endif
1063
	setup_boot_APIC_clock();
1066
	setup_boot_APIC_clock();
1064
	check_nmi_watchdog();
1067
	check_nmi_watchdog();
Lines 1074-1079 static __init int setup_disableapic(char Link Here
1074
static __init int setup_nolapic(char *str) 
1077
static __init int setup_nolapic(char *str) 
1075
{ 
1078
{ 
1076
	disable_apic = 1;
1079
	disable_apic = 1;
1080
	msi_off();
1077
	return 0;
1081
	return 0;
1078
} 
1082
} 
1079
1083
(-)linux-2614-rc2-git4-pv/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
34
34
#include <asm/io.h>
35
#include <asm/io.h>
Lines 227-232 int ioapic_force; Link Here
227
static int __init disable_ioapic_setup(char *str)
228
static int __init disable_ioapic_setup(char *str)
228
{
229
{
229
	skip_ioapic_setup = 1;
230
	skip_ioapic_setup = 1;
231
	msi_off();
230
	return 1;
232
	return 1;
231
}
233
}
232
234
(-)linux-2614-rc2-git4-pv/arch/x86_64/kernel/setup.c (-1 / +3 lines)
Lines 345-352 static __init void parse_cmdline_early ( Link Here
345
		    !memcmp(from, "disableapic", 11))
345
		    !memcmp(from, "disableapic", 11))
346
			disable_apic = 1;
346
			disable_apic = 1;
347
347
348
		if (!memcmp(from, "noapic", 6)) 
348
		if (!memcmp(from, "noapic", 6)) {
349
			skip_ioapic_setup = 1;
349
			skip_ioapic_setup = 1;
350
			msi_off();
351
		}
350
352
351
		if (!memcmp(from, "apic", 4)) { 
353
		if (!memcmp(from, "apic", 4)) { 
352
			skip_ioapic_setup = 0;
354
			skip_ioapic_setup = 0;
(-)linux-2614-rc2-git4-pv/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 918-926 static int __init smp_sanity_check(unsig Link Here
918
	if (!smp_found_config) {
919
	if (!smp_found_config) {
919
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
920
		printk(KERN_NOTICE "SMP motherboard not detected.\n");
920
		disable_smp();
921
		disable_smp();
921
		if (APIC_init_uniprocessor())
922
		if (APIC_init_uniprocessor()) {
922
			printk(KERN_NOTICE "Local APIC not detected."
923
			printk(KERN_NOTICE "Local APIC not detected."
923
					   " Using dummy APIC emulation.\n");
924
					   " Using dummy APIC emulation.\n");
925
			msi_off();
926
		}
924
		return -1;
927
		return -1;
925
	}
928
	}
926
929
Lines 942-947 static int __init smp_sanity_check(unsig Link Here
942
			boot_cpu_id);
945
			boot_cpu_id);
943
		printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
946
		printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
944
		nr_ioapics = 0;
947
		nr_ioapics = 0;
948
		msi_off();
945
		return -1;
949
		return -1;
946
	}
950
	}
947
951
Lines 951-956 static int __init smp_sanity_check(unsig Link Here
951
	if (!max_cpus) {
955
	if (!max_cpus) {
952
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
956
		printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
953
		nr_ioapics = 0;
957
		nr_ioapics = 0;
958
		msi_off();
954
		return -1;
959
		return -1;
955
	}
960
	}
956
961
Lines 995-1002 void __init smp_prepare_cpus(unsigned in Link Here
995
	 */
1000
	 */
996
	if (!skip_ioapic_setup && nr_ioapics)
1001
	if (!skip_ioapic_setup && nr_ioapics)
997
		setup_IO_APIC();
1002
		setup_IO_APIC();
998
	else
1003
	else {
999
		nr_ioapics = 0;
1004
		nr_ioapics = 0;
1005
		msi_off();
1006
	}
1000
1007
1001
	/*
1008
	/*
1002
	 * Set up local APIC timer on boot CPU.
1009
	 * Set up local APIC timer on boot CPU.
(-)linux-2614-rc2-git4-pv/drivers/pci/msi.c (+5 lines)
Lines 1113-1118 void msi_remove_pci_irq_vectors(struct p Link Here
1113
	}
1113
	}
1114
}
1114
}
1115
1115
1116
void msi_off(void)
1117
{
1118
	pci_msi_enable = 0;
1119
}
1120
1116
EXPORT_SYMBOL(pci_enable_msi);
1121
EXPORT_SYMBOL(pci_enable_msi);
1117
EXPORT_SYMBOL(pci_disable_msi);
1122
EXPORT_SYMBOL(pci_disable_msi);
1118
EXPORT_SYMBOL(pci_enable_msix);
1123
EXPORT_SYMBOL(pci_enable_msix);
(-)linux-2614-rc2-git4-pv/include/linux/pci.h (+2 lines)
Lines 480-485 static inline int pci_enable_msix(struct Link Here
480
	struct msix_entry *entries, int nvec) {return -1;}
480
	struct msix_entry *entries, int nvec) {return -1;}
481
static inline void pci_disable_msix(struct pci_dev *dev) {}
481
static inline void pci_disable_msix(struct pci_dev *dev) {}
482
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev) {}
482
static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev) {}
483
static inline void msi_off(void) {}
483
#else
484
#else
484
extern void pci_scan_msi_device(struct pci_dev *dev);
485
extern void pci_scan_msi_device(struct pci_dev *dev);
485
extern int pci_enable_msi(struct pci_dev *dev);
486
extern int pci_enable_msi(struct pci_dev *dev);
Lines 488-493 extern int pci_enable_msix(struct pci_de Link Here
488
	struct msix_entry *entries, int nvec);
489
	struct msix_entry *entries, int nvec);
489
extern void pci_disable_msix(struct pci_dev *dev);
490
extern void pci_disable_msix(struct pci_dev *dev);
490
extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
491
extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
492
extern void msi_off(void);
491
#endif
493
#endif
492
494
493
/*
495
/*

Return to bug 116364