aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel
AgeCommit message (Collapse)Author
2009-01-28x86, apic: refactor ->get_apic_id() & GET_APIC_ID()Ingo Molnar
- spread out the namespace on a per driver basis - get rid of macro wrappers - small cleanups Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: consolidate the ->mps_oem_check() codeIngo Molnar
- spread out the mps_oem_check() namespace on a per APIC driver basis Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, mpparse: call the generic quirk handlers earlyIngo Molnar
Call all the registered MPS quirk handlers early. These methods scan low RAM typically for specific signatures so are safe to be called early. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: refactor ->phys_pkg_id()Ingo Molnar
Refactor the ->phys_pkg_id() methods: - namespace separation - macro wrapper removal - open-coded calls to the methods in the generic code Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: unify phys_pkg_id()Ingo Molnar
- unify the call signature of 64-bit to that of 32-bit - clean up the types all around - clean up namespace contamination Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, es7000: clean up es7000_enable_apic_mode()Ingo Molnar
- eliminate the needless es7000_enable_apic_mode() complication which was not apparent prior the namespace cleanups - clean up the control flow in es7000_enable_apic_mode() - other cleanups Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: refactor ->enable_apic_mode() subarch methodsIngo Molnar
Only ES7000 has a real ->enable_apic_mode() method, the other subarchitectures define it but keep it empty. So mark the vector as NULL, extend the generic code to handle NULL -setup_portio_remap() entries and remove all the empty handlers. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: refactor ->check_phys_apicid_present() subarch methodsIngo Molnar
- spread out the namespace to per driver methods - extend it to 64-bit as well so that we can use apic->check_phys_apicid_present() unconditionally Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: refactor ->setup_portio_remap() subarch methodsIngo Molnar
Only NUMAQ has a real ->setup_portio_remap() method, the other subarchitectures define it but keep it empty. So mark the vector as NULL, extend the generic code to handle NULL -setup_portio_remap() entries and remove all the empty handlers. Also move the NUMAQ method from the header file into the apic driver .c file. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->apicid_to_cpu_present()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->cpu_present_to_apicid()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->cpu_to_logical_apicid()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->apicid_to_node()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: streamline the ->multi_timer_check() quirkIngo Molnar
only NUMAQ uses this quirk: to prevent the timer IRQ from being added on secondary nodes. All other genapic templates can have a NULL ->multi_timer_check() callback. Also, extend the generic code to treat a NULL pointer accordingly. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->setup_apic_routing()Ingo Molnar
- separate the namespace - remove macros - remove namespace clash on 64-bit Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->ioapic_phys_id_map()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->init_apic_ldr()Ingo Molnar
- separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up ->vector_allocation_domain()Ingo Molnar
- separate the namespace - remove macros - move the default vector-allocation-domain to mach-generic - fix whitespace damage Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: remove no_balance_irq and no_ioapic_check flagsIngo Molnar
These flags are completely unused. (the in-kernel IRQ balancer has been removed from the upstream kernel.) Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up check_apicid*() callbacksIngo Molnar
Clean up these methods - to make it clearer which function is used in which case. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: rename genapic::apic_destination_logical to genapic::dest_logicalIngo Molnar
This field name was unreasonably long - shorten it. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up the APIC_DEST_LOGICAL logicIngo Molnar
Impact: cleanup The bigsmp and es7000 subarchitectures un-defined APIC_DEST_LOGICAL in a rather nasty way by re-defining it to zero. That is infinitely fragile and makes it very hard to see what to code really does in a given context. The very same constant has different meanings and values - depending on which subarch is enabled. Untangle this mess by never undefining the constant, but instead propagating the right values into the genapic driver templates. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: rename ->ESR_DISABLE to ->disable_esrIngo Molnar
the ->ESR_DISABLE shouting variant was used to enable the esr_disable macro wrappers. Those ugly macros are removed now so we can rename ->ESR_DISABLE to ->disable_esr Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up esr_disable() methodsIngo Molnar
Impact: cleanup Most subarchitectures want to disable the APIC ESR (Error Status Register), because they generally have hardware hacks that wrap standard CPUs into a bigger system and hence the APIC bus is quite non-standard and weirdnesses (lockups) have been seen with ESR reporting. Remove the esr_disable macros and put the desired flag into each subarchitecture's genapic template directly. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: clean up / remove TARGET_CPUSIngo Molnar
Impact: cleanup use apic->target_cpus() directly instead of the TARGET_CPUS wrapper. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, apic: remove IRQ_DEST_MODE / IRQ_DELIVERY_MODEIngo Molnar
Remove the wrapper macros IRQ_DEST_MODE and IRQ_DELIVERY_MODE. The typical 32-bit and the 64-bit build all dereference via the genapic, so it's pointless to hide that indirection via these ugly macros. Furthermore, it also obscures subarchitecture details. So replace it with apic->irq_dest_mode / etc. accesses. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86, genapic: rename int_delivery_mode, et. al.Ingo Molnar
int_delivery_mode is supposed to mean 'interrupt delivery mode', but it's quite a misnomer as 'int' we usually think of as an integer type ... The standard naming for such attributes is 'irq' - so rename the following fields and macros: int_delivery_mode => irq_delivery_mode INT_DELIVERY_MODE => IRQ_DELIVERY_MODE int_dest_mode => irq_dest_mode INT_DEST_MODE => IRQ_DEST_MODE Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up apic->apic_id_registered() methodsIngo Molnar
Impact: cleanup x86 subarchitectures each defined a "apic_id_registered()" method, which could be an inline function depending on which subarch we build for, and which was also the name of a genapic field. Untangle this namespace spaghetti by giving each of the instances a separate name. Also remove wrapper macro obfuscation. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up apic->acpi_madt_oem_check methodsIngo Molnar
Impact: refactor code x86 subarchitectures each defined a "acpi_madt_oem_check()" method, which could be an inline function, or an extern, or a static function, and which was also the name of a genapic field. Untangle this namespace spaghetti by setting ->acpi_madt_oem_check() to NULL on those subarchitectures that have no detection quirks, and rename the other ones (summit, es7000) that do. Also change default_acpi_madt_oem_check() to handle NULL entries, and clean its control flow up as well. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up apic_x2apic_clusterIngo Molnar
- reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up apic_x2apic_physIngo Molnar
- reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up apic_x2apic_uv_xIngo Molnar
- reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up genapic_phys_flatIngo Molnar
- reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: clean up genapic_flatIngo Molnar
- reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28x86: rename 'genapic' to 'apic'Ingo Molnar
Rename genapic-> to apic-> references because in a future chagne we'll open-code all the indirect calls (instead of obscuring them via macros), so we want this reference to be as short as possible. Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-28Merge branches 'x86/asm', 'x86/cleanups', 'x86/cpudetect', 'x86/debug', ↵Ingo Molnar
'x86/doc', 'x86/header-fixes', 'x86/mm', 'x86/paravirt', 'x86/pat', 'x86/setup-v2', 'x86/subarch', 'x86/uaccess' and 'x86/urgent' into x86/core
2009-01-27x86: cpu_init(): remove ugly #ifdef construct around debug register clearPeter Zijlstra
Impact: Cleanup While I was looking through the new and improved bootstrap code - great work that, thanks! I found the below a slight improvement. Remove unnecessary ugly #ifdef construct around debug register clear. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2009-01-27Merge branch 'tj-percpu' of ↵Ingo Molnar
git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/percpu Conflicts: arch/x86/kernel/setup_percpu.c Semantic conflict: arch/x86/kernel/cpu/common.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-27Merge branch 'linus' into core/percpuIngo Molnar
Conflicts: arch/x86/kernel/setup_percpu.c
2009-01-27x86: clean up indentation in setup_per_cpu_areas()Tejun Heo
Impact: cosmetic cleanup Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: fix build breakage on voyageJames Bottomley
Impact: build fix x86_cpu_to_apicid and x86_bios_cpu_apicid aren't defined for voyage. Earlier patch forgot to conditionalize early percpu clearing. Fix it. Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: load new GDT after setting up boot cpu per-cpu areaBrian Gerst
Impact: sync 32 and 64-bit code Merge load_gs_base() into switch_to_new_gdt(). Load the GDT and per-cpu state for the boot cpu when its new area is set up. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: initialize per-cpu GDT segment in per-cpu setupBrian Gerst
Impact: cleanup Rename init_gdt() to setup_percpu_segment(), and move it to setup_percpu.c. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: make Voyager use x86 per-cpu setup.Brian Gerst
Impact: standardize all x86 platforms on same setup code With the preceding changes, Voyager can use the same per-cpu setup code as all the other x86 platforms. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: don't assume boot cpu is #0Brian Gerst
Impact: minor cleanup Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: move this_cpu_offsetBrian Gerst
Impact: Small cleanup Define BOOT_PERCPU_OFFSET and use it for this_cpu_offset and __per_cpu_offset initializers. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: only compile setup_percpu.o on SMPBrian Gerst
Impact: Minor build optimization Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: move apic variables to apic.cBrian Gerst
Impact: Code movement Move the variable definitions to apic.c. Ifdef the copying of the two early per-cpu variables, since Voyager doesn't use them. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: always page-align per-cpu area start and sizeBrian Gerst
Impact: cleanup The way the code is written, align is always PAGE_SIZE. Simplify the code by removing the align variable. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2009-01-27x86: move setup_cpu_local_masks()Brian Gerst
Impact: Code movement, no functional change. Move setup_cpu_local_masks() to kernel/cpu/common.c, where the masks are defined. Signed-off-by: Brian Gerst <brgerst@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>