13 Jan, 2006
1 commit
-
convert mfd and mmc to mutexes
Signed-off-by: Arjan van de Ven
Signed-off-by: Russell King
12 Jan, 2006
39 commits
-
o This fix was posted for i386 long back. Posting it for x86_64.
http://marc.theaimsgroup.com/?l=linux-kernel&m=110380103229830&w=2
o This patch fixes the problem of secondary cpus boot up. This situation
is faced when kernel is built for default locations like 16MB and
onwards. In this configuration, only primary cpu (BP) comes and
secondary cpus don't boot.o Problem occurs because in trampoline code, lgdt is not able to load the
GDT as it happens to be situated beyond 16MB. This is due to the fact
that cpu is still in real mode and default operand size is 16bit.o This patch uses lgdtl instead of lgdt to force operand size to 32
instead of 16.Signed-off-by: Vivek Goyal
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Handling common prefixes is tricky.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
... reducing the amount of changes Xen has to do.
Signed-Off-By: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
The explicit and implicit calls to setup_early_printk() were passing
inconsistent arguments.Signed-Off-By: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
It has no business being elsewhere and x86-64 doesn't need/want it.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Previously they would be only allocated before the kernel text at
1MB. This limited the maximum supported memory to 128GB.
Now allow the e820 allocator to put them everywhere. Try
to put them beyond any DMA zones to avoid filling them up.
This should free some GFP_DMA memory compared to earlier kernels.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
hard_smp_processor_id would return the local APIC id instead
of the Linux processor id. On big systems they are often
not identical. safe_smp_processor_id is just a wrapper
around it that does the necessary conversions.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Remove support for obsolete hardware and cleanup.
- Remove checks for non integrated APICs
- Replace apic_write_around with apic_write.
- Remove apic_read_around
- Remove APIC version reads used by old workarounds
- Remove old workaround for Simics
- Fix indentationSigned-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
When building in a separate objtree, file names produced by BUG() & Co. can
get fairly long; printing only the first 50 characters may thus result in
(almost) no useful information. The following change makes it so that rather
the last 50 characters of the filename get printed.Signed-Off-By: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Especially under Xen, where the console cannot be adjusted to more than 25
lines, it is fairly important that the information displayed during a panic
is as compact as possible. Below adjustments work towards that.Signed-Off-By: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Due to a broken condition, the body of the loop that is intended to wait for
the Update-In-Progress bit to get set and then cleared again was never
entered; in fact, the entire loop was optimized out by the compiler. Here is
a change to fix the condition (and to also move the initialization of locals
out of the spin lock protected region).Signed-Off-By: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
It was only needed for APM
Pointed out by Jan Beulich
Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
X86_FEATURE_K8_C was a synthetic Linux CPUID flag that was used for some
code optimizations in Opteron C stepping or later. But support for pre C
stepping optimizations has been removed, so this isn't needed anymore.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
early_cpu_detect only runs on the BP, but this code needs to run
on all CPUs.Looks like a mismerge somewhere. Also add a warning comment.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Fix some trivial sparse warnings in x86_64 code.
Signed-off-by: Stephen Hemminger
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Saves about ~18K .text in defconfig
There would be more optimization potential, but that's for later.
Suggestion originally from Bill Irwin.
Fix from Andy Whitcroft.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
They used to be used by the reboot code, but not anymore.
Noticed by Jan Beulich
Cc: JBeulich@novell.com
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
o Currently, during kexec reboot, IOAPIC is re-programmed back to virtual
wire mode if there was an i8259 connected to it. This enables getting
timer interrupts in second kernel in legacy mode.o After putting into virtual wire mode, IOAPIC delivers the i8259 interrupts
to CPU0. This works well for kexec but not for kdump as we might crash
on a different CPU and second kernel will not see timer interrupts.o This patch modifies the redirection table entry to deliver the timer
interrupts to the cpu we are rebooting (instead of hardcoding to zero).
This ensures that second kernel receives timer interrupts even on a
non-boot cpu.Signed-off-by: Vivek Goyal
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Introduce vSMP arch to the kernel.
This patch:
1. Adds CONFIG_X86_VSMP
2. Adds machine specific macros for local_irq_disabled, local_irq_enabled
and irqs_disabled
3. Writes to the vSMP CTL device to indicate kernel compiled with CONFIG_VSMPSigned-off-by: Ravikiran Thirumalai
Signed-off-by: Shai Fultheim
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
vSMP specific alignment patch to
1. Define INTERNODE_CACHE_SHIFT for vSMP
2. Use this for alignment of critical structures
3. Use INTERNODE_CACHE_SHIFT for ARCH_MIN_TASKALIGN,
and let the slab align task_struct allocations to the internode cacheline size
4. Introduce and use ARCH_MIN_MMSTRUCT_ALIGN for mm_struct slab allocations.Signed-off-by: Ravikiran Thirumalai
Signed-off-by: Shai Fultheim
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Fixes
CC fs/nfsctl.o
In file included from include2/asm/atomic.h:427,
from /home/lsrc/quilt/linux/include/linux/file.h:8,
from /home/lsrc/quilt/linux/fs/nfsctl.c:8:
/home/lsrc/quilt/linux/include/asm-generic/atomic.h:20:5: warning: "BITS_PER_LONG" is not definedSigned-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Move the #ifdef into the function body.
Signed-off-by: Brian Gerst
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Currently we attempt to restore virtual wire mode on reboot, which only
works if we can figure out where the i8259 is connected. This is very
useful when we are kexec another kernel and likely helpful to an peculiar
BIOS that make assumptions about how the system is setup.Since the acpi MADT table does not provide the location where the i8259 is
connected we have to look at the hardware to figure it out.Most systems have the i8259 connected the local apic of the cpu so won't be
affected but people running Opteron and some serverworks chipsets should be
able to use kexec now.In addition this patch removes the hard coded assumption that the io_apic
that delivers isa interrups is always known to the kernel as io_apic 0.
There does not appear to be anything to guarantee that assumption is true.And From: Vivek Goyal
A minor fix to the patch which remembers the location of where i8259 is
connected. Now counter i has been replaced by apic. counter i is having
some junk value which was leading to non-detection of i8259 connected to
IOAPIC.Signed-off-by: Eric W. Biederman
Signed-off-by: Vivek Goyal
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Setting RF (resume flag) allows a debugger to resume execution after a code
breakpoint without tripping the breakpoint again. It is reset by the CPU
after executing one instruction.Signed-off-by: Chuck Ebbert
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
The manual says Int 6 is "invalid opcode", not "invalid operand".
Signed-off-by: Chuck Ebbert
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Fixes the following sparse warnings:
arch/x86_64/kernel/mce_amd.c:321:29: warning: Using plain integer as NULL pointer
arch/x86_64/kernel/mce_amd.c:410:41: warning: Using plain integer as NULL pointerSigned-off-by: Luiz Capitulino
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
It was set as an NMI, but the NMI bit always forces an interrupt
to end up at vector 2. So it was never used. Remove.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
It looks like the new scalable TLB flush code for x86_64 is claiming
one more IRQ vector than it actually uses.Signed-off-by: Jason Uhlenkott
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Fix
CC arch/x86_64/kernel/nmi.o
linux/arch/x86_64/kernel/nmi.c: In function ???check_nmi_watchdog???:
linux/arch/x86_64/kernel/nmi.c:155: warning: statement with no effecton Uniprocessor builds.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Patch uses a static PDA array early at boot and reallocates processor PDA
with node local memory when kmalloc is ready, just before pda_init.
The boot_cpu_pda is needed since the cpu_pda is used even before pda_init for
that cpu is called (to set the static per-cpu areas offset table etc)Signed-off-by: Ravikiran Thirumalai
Signed-off-by: Shai Fultheim
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Helper patch to change cpu_pda users to use macros to access cpu_pda
instead of the cpu_pda[] array.Signed-off-by: Ravikiran Thirumalai
Signed-off-by: Shai Fultheim
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Patch enables early intialization of cpu_to_node.
apicid_to_node is built by reading the SRAT table, from acpi_numa_init with
ACPI_NUMA and k8_scan_nodes with K8_NUMA.
x86_cpu_to_apicid is built by parsing the ACPI MADT table, from acpi_boot_init.
We combine these two tables and setup cpu_to_node.Early intialization helps the static per_cpu_areas in getting pages from
correct node.Change since last release:
Do not initialize early init_cpu_to_node for faking node cases.Patch tested on TYAN dual core 4P board with K8 only, ACPI_NUMA.
Tested on EM64T NUMA. Also tested with numa=off, numa=fake, and running
a kernel compiled with NUMA on a regular EM64 2 way SMP.Signed-off-by: Alok N Kataria
Signed-off-by: Ravikiran Thirumalai
Signed-off-by: Shai Fultheim
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
No functional changes.
And remove one redundant prototype.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Replacing the old home brewn __force_inline.
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Passing random input values in eax to cpuid is not a good idea
because the CPU will GPF for unknown ones.
Use the correct x86-64 version that exists for a longer time too.
This also adds a memory barrier to prevent the optimizer from
reordering.Cc: tigran@veritas.com
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
RDTSC serialization using cpuid is not needed for Intel platforms.
This increases gettimeofday performance.Cc: vojtech@suse.cz
Cc: rohit.seth@intel.comSigned-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
The real vsyscall .text addresses are not mapped when the alternative()
replacement runs early, so use some black magic to access them using
the direct mapping.Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds