diff options
| -rw-r--r-- | arch/x86/Makefile | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/probe_32.c (renamed from arch/x86/mach-generic/probe.c) | 92 | ||||
| -rw-r--r-- | arch/x86/mach-generic/Makefile | 7 |
4 files changed, 93 insertions, 13 deletions
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index cacee981d166..799a0d931c81 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile | |||
| @@ -113,11 +113,6 @@ mcore-y := arch/x86/mach-default/ | |||
| 113 | mflags-$(CONFIG_X86_VOYAGER) := -Iarch/x86/include/asm/mach-voyager | 113 | mflags-$(CONFIG_X86_VOYAGER) := -Iarch/x86/include/asm/mach-voyager |
| 114 | mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/ | 114 | mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/ |
| 115 | 115 | ||
| 116 | # generic subarchitecture | ||
| 117 | mflags-$(CONFIG_X86_GENERICARCH):= -Iarch/x86/include/asm/mach-generic | ||
| 118 | fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/ | ||
| 119 | mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/ | ||
| 120 | |||
| 121 | # default subarch .h files | 116 | # default subarch .h files |
| 122 | mflags-y += -Iarch/x86/include/asm/mach-default | 117 | mflags-y += -Iarch/x86/include/asm/mach-default |
| 123 | 118 | ||
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 4239847906a1..d3f8f49aed65 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
| @@ -30,7 +30,7 @@ obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o | |||
| 30 | obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o | 30 | obj-y += time_$(BITS).o ioport.o ldt.o dumpstack.o |
| 31 | obj-y += setup.o i8259.o irqinit_$(BITS).o | 31 | obj-y += setup.o i8259.o irqinit_$(BITS).o |
| 32 | obj-$(CONFIG_X86_VISWS) += visws_quirks.o | 32 | obj-$(CONFIG_X86_VISWS) += visws_quirks.o |
| 33 | obj-$(CONFIG_X86_32) += probe_roms_32.o | 33 | obj-$(CONFIG_X86_32) += probe_32.o probe_roms_32.o |
| 34 | obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o | 34 | obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o |
| 35 | obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o | 35 | obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o |
| 36 | obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o | 36 | obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o |
diff --git a/arch/x86/mach-generic/probe.c b/arch/x86/kernel/probe_32.c index c03c72221320..a6fba6914167 100644 --- a/arch/x86/mach-generic/probe.c +++ b/arch/x86/kernel/probe_32.c | |||
| @@ -1,4 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Default generic APIC driver. This handles up to 8 CPUs. | ||
| 3 | * | ||
| 2 | * Copyright 2003 Andi Kleen, SuSE Labs. | 4 | * Copyright 2003 Andi Kleen, SuSE Labs. |
| 3 | * Subject to the GNU Public License, v.2 | 5 | * Subject to the GNU Public License, v.2 |
| 4 | * | 6 | * |
| @@ -17,6 +19,96 @@ | |||
| 17 | #include <asm/genapic.h> | 19 | #include <asm/genapic.h> |
| 18 | #include <asm/setup.h> | 20 | #include <asm/setup.h> |
| 19 | 21 | ||
| 22 | #include <linux/threads.h> | ||
| 23 | #include <linux/cpumask.h> | ||
| 24 | #include <asm/mpspec.h> | ||
| 25 | #include <asm/genapic.h> | ||
| 26 | #include <asm/fixmap.h> | ||
| 27 | #include <asm/apicdef.h> | ||
| 28 | #include <linux/kernel.h> | ||
| 29 | #include <linux/string.h> | ||
| 30 | #include <linux/smp.h> | ||
| 31 | #include <linux/init.h> | ||
| 32 | #include <asm/genapic.h> | ||
| 33 | #include <asm/ipi.h> | ||
| 34 | |||
| 35 | static void default_vector_allocation_domain(int cpu, struct cpumask *retmask) | ||
| 36 | { | ||
| 37 | /* | ||
| 38 | * Careful. Some cpus do not strictly honor the set of cpus | ||
| 39 | * specified in the interrupt destination when using lowest | ||
| 40 | * priority interrupt delivery mode. | ||
| 41 | * | ||
| 42 | * In particular there was a hyperthreading cpu observed to | ||
| 43 | * deliver interrupts to the wrong hyperthread when only one | ||
| 44 | * hyperthread was specified in the interrupt desitination. | ||
| 45 | */ | ||
| 46 | *retmask = (cpumask_t) { { [0] = APIC_ALL_CPUS } }; | ||
| 47 | } | ||
| 48 | |||
| 49 | /* should be called last. */ | ||
| 50 | static int probe_default(void) | ||
| 51 | { | ||
| 52 | return 1; | ||
| 53 | } | ||
| 54 | |||
| 55 | struct genapic apic_default = { | ||
| 56 | |||
| 57 | .name = "default", | ||
| 58 | .probe = probe_default, | ||
| 59 | .acpi_madt_oem_check = NULL, | ||
| 60 | .apic_id_registered = default_apic_id_registered, | ||
| 61 | |||
| 62 | .irq_delivery_mode = dest_LowestPrio, | ||
| 63 | /* logical delivery broadcast to all CPUs: */ | ||
| 64 | .irq_dest_mode = 1, | ||
| 65 | |||
| 66 | .target_cpus = default_target_cpus, | ||
| 67 | .disable_esr = 0, | ||
| 68 | .dest_logical = APIC_DEST_LOGICAL, | ||
| 69 | .check_apicid_used = default_check_apicid_used, | ||
| 70 | .check_apicid_present = default_check_apicid_present, | ||
| 71 | |||
| 72 | .vector_allocation_domain = default_vector_allocation_domain, | ||
| 73 | .init_apic_ldr = default_init_apic_ldr, | ||
| 74 | |||
| 75 | .ioapic_phys_id_map = default_ioapic_phys_id_map, | ||
| 76 | .setup_apic_routing = default_setup_apic_routing, | ||
| 77 | .multi_timer_check = NULL, | ||
| 78 | .apicid_to_node = default_apicid_to_node, | ||
| 79 | .cpu_to_logical_apicid = default_cpu_to_logical_apicid, | ||
| 80 | .cpu_present_to_apicid = default_cpu_present_to_apicid, | ||
| 81 | .apicid_to_cpu_present = default_apicid_to_cpu_present, | ||
| 82 | .setup_portio_remap = NULL, | ||
| 83 | .check_phys_apicid_present = default_check_phys_apicid_present, | ||
| 84 | .enable_apic_mode = NULL, | ||
| 85 | .phys_pkg_id = default_phys_pkg_id, | ||
| 86 | .mps_oem_check = NULL, | ||
| 87 | |||
| 88 | .get_apic_id = default_get_apic_id, | ||
| 89 | .set_apic_id = NULL, | ||
| 90 | .apic_id_mask = 0x0F << 24, | ||
| 91 | |||
| 92 | .cpu_mask_to_apicid = default_cpu_mask_to_apicid, | ||
| 93 | .cpu_mask_to_apicid_and = default_cpu_mask_to_apicid_and, | ||
| 94 | |||
| 95 | .send_IPI_mask = default_send_IPI_mask, | ||
| 96 | .send_IPI_mask_allbutself = NULL, | ||
| 97 | .send_IPI_allbutself = default_send_IPI_allbutself, | ||
| 98 | .send_IPI_all = default_send_IPI_all, | ||
| 99 | .send_IPI_self = NULL, | ||
| 100 | |||
| 101 | .wakeup_cpu = NULL, | ||
| 102 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 103 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 104 | |||
| 105 | .wait_for_init_deassert = default_wait_for_init_deassert, | ||
| 106 | |||
| 107 | .smp_callin_clear_local_apic = NULL, | ||
| 108 | .store_NMI_vector = NULL, | ||
| 109 | .inquire_remote_apic = default_inquire_remote_apic, | ||
| 110 | }; | ||
| 111 | |||
| 20 | extern struct genapic apic_numaq; | 112 | extern struct genapic apic_numaq; |
| 21 | extern struct genapic apic_summit; | 113 | extern struct genapic apic_summit; |
| 22 | extern struct genapic apic_bigsmp; | 114 | extern struct genapic apic_bigsmp; |
diff --git a/arch/x86/mach-generic/Makefile b/arch/x86/mach-generic/Makefile deleted file mode 100644 index 05e4a7ca7742..000000000000 --- a/arch/x86/mach-generic/Makefile +++ /dev/null | |||
| @@ -1,7 +0,0 @@ | |||
| 1 | # | ||
| 2 | # Makefile for the generic architecture | ||
| 3 | # | ||
| 4 | |||
| 5 | EXTRA_CFLAGS := -Iarch/x86/kernel | ||
| 6 | |||
| 7 | obj-y := probe.o default.o | ||
