- Oct 13, 2008
-
-
Alexander van Heukelum authored
Mark the exception handlers with "dotraplinkage" to hide the calling convention differences between i386 and x86_64. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
x86_64 does not do the lazy io-bitmap dance. Putting it in its own function makes i386's do_general_protection look much more like x86_64's. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
Split out math_error from do_coprocessor_error and simd_math_error from do_simd_coprocessor_error, like on i386. While at it, add the "error_code" parameter to do_coprocessor_error, do_simd_coprocessor_error and do_spurious_interrupt_bug. This does not change the generated code, but brings the declarations in line with all the other trap handlers. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
The dumpstack code is logically quite independent from the hardware traps. Split it out into its own file. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
The dumpstack code is logically quite independent from the hardware traps. Split it out into its own file. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Vegard Nossum authored
virt_addr_valid() calls __pa(), which calls __phys_addr(). With CONFIG_DEBUG_VIRTUAL=y, __phys_addr() will kill the kernel if the address *isn't* valid. That's clearly wrong for virt_addr_valid(). We also incorporate the debugging checks into virt_addr_valid(). Signed-off-by:
Vegard Nossum <vegardno@ben.ifi.uio.no> Acked-by:
Jiri Slaby <jirislaby@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Chuck Ebbert authored
x86: allow number of additional hotplug CPUs to be set at compile time, V2 The default number of additional CPU IDs for hotplugging is determined by asking ACPI or mptables how many "disabled" CPUs there are in the system, but many systems get this wrong so that e.g. a uniprocessor machine gets an extra CPU allocated and never switches to single CPU mode. And sometimes CPU hotplugging is enabled only for suspend/hibernate anyway, so the additional CPU IDs are not wanted. Allow the number to be set to zero at compile time. Also, force the number of extra CPUs to zero if hotplugging is disabled which allows removing some conditional code. Tested on uniprocessor x86_64 that ACPI claims has a disabled processor, with CPU hotplugging configured. ("After" has the number of additional CPUs set to 0) Before: NR_CPUS: 512, nr_cpu_ids: 2, nr_node_ids 1 After: NR_CPUS: 512, nr_cpu_ids: 1, nr_node_ids 1 [Changed the name of the option and the prompt according to Ingo's suggestion.] Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Krzysztof Helt authored
The flag_is_changeable_p() is used by has_cpuid_p() which can return different results in the code sequence below: if (!have_cpuid_p()) identify_cpu_without_cpuid(c); /* cyrix could have cpuid enabled via c_identify()*/ if (!have_cpuid_p()) return; Otherwise, the gcc 3.4.6 optimizes these two calls into one which make the code not working correctly. Cyrix cpus have the CPUID instruction enabled before the second call to the have_cpuid_p() but it is not detected due to the gcc optimization. Thus the ARR registers (mtrr like) are not detected on such a cpu. Signed-off-by:
Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Pekka Enberg authored
Currently the low-level function to dump user-passed registers on i386 is called __show_registers() whereas on x86-64 it's called __show_regs(). Unify the API to simplify porting of kmemcheck to x86-64. Signed-off-by:
Pekka Enberg <penberg@cs.helsinki.fi> Acked-by:
Vegard Nossum <vegard.nossum@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Jack Steiner authored
Add functions that use the infrastructure added by the x2apic code. These functions were originally stubbed out since the UV code went into the tree prior to the x2apic code. Signed-off-by:
Jack Steiner <steiner@sgi.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Chuck Ebbert authored
Commit 4a701737 ("x86: move prefill_possible_map calling early, fix") is the wrong fix: prefill_possible_map() needs to be available even when CONFIG_HOTPLUG_CPU is not set. A followon patch will do that. Fix this correctly by making prefill_possible_map() available even when CONFIG_HOTPLUG_CPU is not set. The function is needed so that the number of possible CPUs can be determined. Tested on uniprocessor machine with CPU hotplug disabled. From boot log: Before: NR_CPUS: 512, nr_cpu_ids: 512, nr_node_ids 1 After: NR_CPUS: 512, nr_cpu_ids: 1, nr_node_ids 1 Signed-off-by:
Chuck Ebbert <cebbert@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Krzysztof Helt authored
The Winchip-2 and Winchip-2A cpu choices select the same options for kernel and compiler. Merge them to save few bytes and reduce confusion. Signed-off-by:
Krzysztof Helt <krzysztof.h1@wp.pl> Acked-by:
H. Peter Anvin <hpa@zytor.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Jack Steiner authored
Fix the size of the mappings of UV hub registers. Size must be a function of the maximum node number within the SSI. Signed-off-by:
Jack Steiner <steiner@sgi.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Yinghai Lu authored
also change two functions to static. Signed-off-by:
Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
This patch hardcodes which traps should be forwarded to handle_vm86_trap in do_trap. This allows to remove the vm86 parameter from the i386-version of do_trap, which makes the DO_VM86_ERROR and DO_VM86_ERROR_INFO macros unnecessary. x86_64 part is whitespace only. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
The last use of trace_hardirqs_fixup is unnecessary, because the trap is taken with interrupt off on i386 as well as x86_64, and the irq-tracer is notified of this from the assembly code. trace_hardirqs_fixup and trace_hardirqs_fixup_flags are removed from include/asm-x86/irqflags.h as they are no longer used. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
All exceptions are taken via interrupt gates. TRACE_IRQS_OFF is called just before entering the C code, so the irq state is known to the irq tracer at this point. No need to call trace_hardirqs_fixup. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
All exceptions are taken via interrupt gates. TRACE_IRQS_OFF is called just before entering the C code, so the irq state is known to the irq tracer at this point. No need to call trace_hardirqs_fixup. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
All exceptions are taken via interrupt gates. TRACE_IRQS_OFF is called just before entering the C code, so the irq state is known to the irq tracer at this point. No need to call trace_hardirqs_fixup. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
Add TRACE_IRQS_OFF just before entering the C code. All exceptions are taken via interrupt gates. If irq tracing is enabled, it should be notified as soon as possible. Interrupts are only (conditionally) re-enabled in C code. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Alexander van Heukelum authored
Add TRACE_IRQS_OFF just before entering the C code. All exceptions are taken via interrupt gates. If irq tracing is enabled, it should be notified as soon as possible. Interrupts are only (conditionally) re-enabled in C code. Signed-off-by:
Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Jack Steiner authored
Portions of the ACPI code needs to know if a system is a UV system prior to genapic initialization. This patch adds a call early_acpi_boot_init() so that the apic type is discovered earlier. V2 of the patch adding fixes from Yinghai Lu. Much cleaner and smaller. Signed-off-by:
Jack Steiner <steiner@sgi.com> Acked-by:
Yinghai Lu <yinghai@kernel.org> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Take it out of time initialization and move it to cpu detection time. Signed-off-by:
Glauber Costa <glommer@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Only test for MCA_bus if support for MCA is compiled in. Also, for x86_64, write the code inside the conditional for consistency with i386. It won't bite us, since it'll probably never select CONFIG_MCA anyway. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Replace "4" in time_32.c code by sizeof(long). This way, it can work on x86_64 too. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Provide apic_intr_init and smp_intr_init functions. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
For x86_64, it does not really matter. But makes the code equal to i386. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
There are no users in the kernel. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Save rbp twice: One is for marking the stack frame, as usual (already there), and the other, to fill pt_regs properly. This is because bx comes right before the last saved register in that structure, and not bp. If the base pointer were in the place bx is today, this would not be needed. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Coalesce v8086_mode and user_mode into a single user_mode_vm() test. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Glauber Costa authored
Instead of using SEGMENT_IS_KERNEL_CODE, use the "user_mode" macro, which can play the same role. Delete the former, since it now lacks any user. Signed-off-by:
Glauber Costa <gcosta@redhat.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Yinghai Lu authored
Some CPUs have vendor string in the middle of model_id instead of beginning Signed-off-by:
Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Jan Beulich authored
Since pte_flags() is much cheaper than pte_val() in some virtualized environments (namely, Xen), use the former whereever possible. Signed-off-by:
Jan Beulich <jbeulich@novell.com> Cc: "Nick Piggin" <npiggin@suse.de> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Jan Beulich authored
When nr_range gets decremented, the same slot must be considered for coalescing with its new successor again. The issue is apparently pretty benign to native code, but surfaces as a boot time crash in our forward ported Xen tree (where the page table setup overall works differently than in native). Signed-off-by:
Jan Beulich <jbeulich@novell.com> Acked-by:
Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Cyrill Gorcunov authored
We should check if we have ESR register before reading from it. Signed-off-by:
Cyrill Gorcunov <gorcunov@gmail.com> Cc: Yinghai Lu <yhlu.kernel@gmail.com> Cc: "Maciej W. Rozycki" <macro@linux-mips.org> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Vegard Nossum authored
Segment registers are reloaded, so we should add a memory clobber. The generated assembly code is identical in my tests, but this doesn't mean it is necessarily true for all configurations/compilers. x86_64 already has the memory clobber. Signed-off-by:
Vegard Nossum <vegard.nossum@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-