Andi Kleen [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: Clean up the SRAT node list before computing the hash function
Also use for_each_node_mask instead of hand crafted loops.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Chuck Ebbert [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: i386/x86-64: Fix time going twice as fast problem on ATI Xpress chipsets
Original patch from Bertro Simul
This is probably still not quite correct, but seems to be
the best solution so far.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: reduce x86-64 bug frame by 4 bytes
As mentioned before, the size of the bug frame can be further reduced while
continuing to use instructions to encode the information.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: Make dmi_find_device for !DMI case inline
Otherwise it will generate warnings and be generated many times.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: Allow frame pointer and fix help text.
Allow frame pointer and fix help text.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Al Viro [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: more gratitious linux/irq.h includes
... and with that all instances in arch/x86_64 are gone.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Chuck Ebbert [Mon, 12 Sep 2005 16:49:25 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix incorrect FP signals
This is the same patch that went into i386 just before 2.6.13
came out. I still can't build 64-bit user apps, so I tested
with program (see below) in 32-bit mode on 64-bit kernel:
Before:
$ fpsig
handler: nr = 8, si = 0x0804bc90, vuc = 0x0804bd10
handler: altstack is at 0x0804b000, ebp = 0x0804bc7c
handler: si_signo = 8, si_errno = 0, si_code = 0 [unknown]
handler: fpu cwd = 0xb40, fpu swd = 0xbaa0
handler: i387 unmasked precision exception, rounded up
After:
$ fpsig
handler: nr = 8, si = 0x0804bc90, vuc = 0x0804bd10
handler: altstack is at 0x0804b000, ebp = 0x0804bc7c
handler: si_signo = 8, si_errno = 0, si_code = 6 [inexact result]
handler: fpu cwd = 0xb40, fpu swd = 0xbaa0
handler: i387 unmasked precision exception, rounded up
Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Chuck Ebbert [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Clean up nmi error message
The x86_64 nmi code is missing a newline in one of its messages.
I added a space before the CPU id for readability and killed the trailing
space on the previous line as well.
Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Lose constraints on cmpxchg
While only cosmetic for x86-64, this adjusts the cmpxchg code appearantly
inherited from i386 to use more generic constraints.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Declare NMI_VECTOR and handle it in the IPI sending code.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove unused vxtime.hz field
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Set the stack pointer correctly in init_thread and init_tss
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Safe interrupts in oops_begin/end
Rather than blindly re-enabling interrupts in oops_end(), save their state
in oope_begin() and then restore that state.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Merge msr.c with i386 version
The only difference was the inline assembly, so move that into
asm/msr.h and merge with the i386 version.
This adds some missing sysfs support code to x86-64.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Al Viro [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Clean up includes in arch/x86_64/kernel/suspend.c
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix CFI information
Being the foundation for reliable stack unwinding, this fixes CFI unwind
annotations in many low-level x86_64 routines, plus a config option
(available to all architectures, and also present in the previously sent
patch adding such annotations to i386 code) to enable them separatly
rather than only along with adding full debug information.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix gcc 4 warnings about pointer signedness
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Use physflat on Intel for < 8 CPUs with CPU hotplug
This avoids races with the APIC broadcast/mask modes.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Add dma_sync_single_range_for_{cpu,device}
Currently just defined to their non range parts.
Pointed out by John Linville
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Improve error handling for overlapping PXMs in SRAT.
- Report PXMs instead of nodes
- Report the correct PXM, not always the one of node 1.
- Only warn for the case of a PXM overlapping by itself
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Prevent gcc 4 from optimizing away vsyscalls
They were previously static.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ashok Raj [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Delivery mode should be APIC_DM_FIXED when using physical mode.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Adrian Bunk [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] Replace extern inline with static inline in asm-x86_64/*
They should be identical in the kernel now, but this
makes it consistent with other code.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove freeing of SMP trampoline pages
Nick points out it never worked because PageReserved was
set and it might cause problems later on. Also HOTPLUG_CPU
is much more common now so let's care not too much
about the !hotplug case.
Cc: nickpiggin@yahoo.com.au
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix typo CONFIG_CPU_HOTPLUG -> CONFIG_HOTPLUG_CPU in genapic.c
Noted by Ashok Raj
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alexander Nyberg [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] Remove unnecessary BUG_ON in irq.c
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nakul Saraiya [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] Increase nodemap hash.
Needed for some newer Opteron systems with E stepping and memory
relocation enabled. The node addresses are different in lower
bits now so the nodemap hash function needs to be enlarged.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jim Paradis [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix off by one in pfn_valid
When I gave proposed the fix to pfn_valid() for RHEL4, Stephen Tweedie's
sharp eyes caught this:
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] i386: add memory clobbers to syscall macros
As noted by matz@suse.de
The problem is, that on i386 the syscallN
macro is defined like so:
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
If one of the arguments (in the _llseek syscall it's the arg4) is a pointer
which the syscall is expected to write to (to the memory pointed to by this
ptr), then this side-effect is not captured in the asm.
If anyone uses this macro to define it's own version of the syscall
(sometimes necessary when not using glibc) and it's inlined, then GCC
doesn't know that this asm write to "*dest", when called like so for instance:
out = 1;
llseek (fd, bla, blubb, &out, trara)
use (out);
Here nobody tells GCC that "out" actually is written to (just a pointer to it
is passed to the asm). Hence GCC might (and in the above bug did)
copy-propagate "1" into the second use of "out".
The easiest solution would be to add a "memory" clobber to the definition
of this syscall macro. As this is a syscall, it shouldn't inhibit too many
optimizations.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix show_mem a little bit
- Add KERN_INFO to printks (from i386)
- Use longs instead of ints to accumulate pages.
- Fix broken indenting.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove disable_tsc code in context switch
It only offers extremly dubious security advantages and
is not worth the overhead in this critical path.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Print version at end of kernel build
(from i386)
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix (harmless) typo in head.S early level2 page table
The global bit was not set in the first 2MB page, instead
it had a bit in the free AVL section which is useless.
Fixed thus.
Noticed by Eric Biederman
Cc: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Hugh Dickins [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix idle=poll
x86_64 idle=poll might be a little less responsive than it should: unlike
mwait_idle, and unlike i386, its poll_idle left TIF_POLLING_NRFLAG set.
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Only allocate per cpu data for possible CPUs, not compiled in CPUs.
Saves some memory except for hotplug situations.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Increase TLB flush array size
The generic TLB flush functions kept upto 506 pages per
CPU to avoid too frequent IPIs.
This value was done for the L1 cache of older x86 CPUs,
but with modern CPUs it does not make much sense anymore.
TLB flushing is slow enough that using the L2 cache is fine.
This patch increases the flush array on x86-64 to cache
5350 pages. That is roughly 20MB with 4K pages. It speeds
up large munmaps in multithreaded processes on SMP considerably.
The cost is roughly 42k of memory per CPU, which is reasonable.
I only increased it on x86-64 for now, but it would probably
make sense to increase it everywhere. Embedded architectures
with SMP may keep it smaller to save some memory per CPU.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't include config.h in asm/timex.h
asm-x86-64/timex.h does not reference CONFIG constants.
Do not need to include config.h.
Signed-off-by: Grant Grundler <iod00d@hp.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Some cleanup and optimization to the processor data area.
- Remove unused irqrsp field
- Remove pda->me
- Optimize set_softirq_pending slightly
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Add simnow console
This adds console and earlyprintk support for a host file
on AMD's SimNow simulator.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Make remote TLB flush more scalable
Instead of using a global spinlock to protect the state
of the remote TLB flush use a lock and state for each sending CPU.
To tell the receiver where to look for the state use 8 different
call vectors. Each CPU uses a specific vector to trigger flushes on other
CPUs. Depending on the received vector the target CPUs look into
the right per cpu variable for the flush data.
When the system has more than 8 CPUs they are hashed to the 8 available
vectors. The limited global vector space forces us to this right now.
In future when interrupts are split into per CPU domains this could be
fixed, at the cost of needing more IPIs in flat mode.
Also some minor cleanup in the smp flush code and remove some outdated
debug code.
Requires patch to move cpu_possible_map setup earlier.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Tsuneo.Yoshioka@f-secure.com [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix 32bit sendfile
If we use 64bit kernel on ia64/x86_64/s390 architecture, and we run
32bit binary on 32bit compatibility mode, sendfile system call seems be
not set offset argument.
This is because sendfile's return value is not zero but the code regards
the result by return value is zero or not.
This problem will be affect to ia64/x86_64/s390 and not affect to other
architecture does not affect other architecture (mips/parisc/ppc64/sparc64).
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Include build number in oops output
Include build number in oops output
Helps me to match oopses to correct kernel.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Use ACPI PXM to parse PCI<->node assignments
Since this is shared code I had to implement it for i386 too
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove code to resume machine check state of other CPUs.
The resume code uses CPU hotplug now so at resume time
we only ever see one CPU.
Pointed out by Yu Luming.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove redundant max_mapnr and replace with end_pfn
The FLATMEM people added it, but there doesn't seem a good reason
because end_pfn is identical.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Use e820_find_hole to compute reserved pages
Avoids a very dumb loop
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix harmless off by one in e820 code
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Micro optimization to dma_alloc_coherent node lookup
Use pcibus_to_node directly
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't trust boot_cpu_id in the mptable.
It could be wrong for kexec or other cases. Read it from
the CPU instead.
Signed-off-by: Murali <muralim@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Add command line option to set machine check tolerance level
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Make lockless machine check record passing a bit more robust.
One machine is constantly throwing NMI watchdog timeouts in mce_log
This was one attempt to fix it.
(AK: this doesn't actually fix the bug I'm seeing unfortunately, probably
drop. I don't like it that the reader can spin forever now waiting
for a writer)
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove redundant swiotlb=force handling
It's already handled in the main swiotlb code.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't allocate aperture when swiotlb is enabled and no AGP found
No-one needs it then
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Reverse order of bootmem lists
This leads to bootmem allocating first from node 0 instead
of from the last node. This avoids swiotlb allocating on the last node, which
doesn't really work on a machine with >4GB.
Note: there is a better patch around from someone else that gets
rid of the pgdat list completely.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Avoid unnecessary double bouncing for swiotlb
PCI_DMA_BUS_IS_PHYS has to be zero even when the GART IOMMU is disabled
and the swiotlb is used. Otherwise the block layer does unnecessary
double bouncing.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't assume APIC for boot processor has an APIC ID of zero
Originally from Stuart Hayes.
When setting up the APIC for the Uniprocessor kernel don't
assume the CPU has an APIC ID of zero.
This fixes boot with the UP kernel on Dell PowerEdge 6800/6850 4way systems.
Cc: Stuart.Hayes@dell.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Use SRAT data on Intel systems too.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Support dualcore and 8 socket systems in k8 fallback node parsing
In particular on systems where the local APIC space and node space
is very different from the Linux CPU number space.
Previously the older NUMA setup code directly parsing the K8
northbridge registers had some issues on 8 socket or dual core
systems. This patch fixes them.
This is mainly done by fixing some confusion between Linux
CPU numbers and local APIC ids. We now pass the local APIC IDs
to later code, which avoids mismatches.
Also add some heuristics to detect cases where the Hypertransport
nodeids and the local APIC IDs don't match, but are shifted
by a constant offset.
This is still all quite hackish, hopefully BIOS writers fill
in correct SRATs instead.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't cache align PDA on UP builds
Suggested by someone I forgot who sorry.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Fix the apic version that gets printed during boot
Signed-off-by: Suresh Sidda <suresh.b.siddha@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Don't assign CPU numbers in SRAT parsing
Do that later when the CPU boots. SRAT just stores the APIC<->Node
mapping node. This fixes problems on systems where the order
of SRAT entries does not match the MADT.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: White space and comment fixes for smp_call_function_single
No functional changes
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Enable interrupts during delay calibration on APs
We used to disable them to work around a bug, but that
is not needed anymore. Keeping them enabled avoids the NMI
watchdog triggering in some cases.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Use largest APIC number, not number of CPUs to decide on physflat mode
Handles case where BIOS gives CPUs very large APIC numbers correctly.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove code for outdated APICs
No x86-64 chipset has these APICs.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:23 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove esr disable hack in APIC code
This was just needed for the Numasaurus, which fortunately
doesn't support x86-64 CPUs.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:23 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove obsolete APIC "write around" bug workaround
No x86-64 chipset has this bug
Generated code doesn't change because it was always disabled.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:23 +0000 (18:49 +0200)]
[PATCH] x86-64: Remove apic_write_around from smpboot.c
We don't do workarounds for ancient hardware bugs.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:23 +0000 (18:49 +0200)]
[PATCH] x86-64: Update defconfig
Allow diskless booting.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andi Kleen [Mon, 12 Sep 2005 16:49:23 +0000 (18:49 +0200)]
[PATCH] x86{-64}: Remove old hack that disabled mmconfig support on AMD systems.
Now that Greg implemented MCFG/_SEG support this shouldn't be needed
anymore
Cc: gregkh@suse.de
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Jackson [Mon, 12 Sep 2005 11:30:30 +0000 (04:30 -0700)]
[PATCH] cpuset semaphore depth check optimize
Optimize the deadlock avoidance check on the global cpuset
semaphore cpuset_sem. Instead of adding a depth counter to the
task struct of each task, rather just two words are enough, one
to store the depth and the other the current cpuset_sem holder.
Thanks to Nikita Danilov for the idea.
Signed-off-by: Paul Jackson <pj@sgi.com>
[ We may want to change this further, but at least it's now
a totally internal decision to the cpusets code ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Evgeniy Polyakov [Mon, 12 Sep 2005 13:12:43 +0000 (17:12 +0400)]
[PATCH] crc16: remove w1 specific comments.
Remove w1 comments from crc16.h and move specific constants into
w1_ds2433.c where they are used.
Replace %d with %zd.
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Mon, 12 Sep 2005 15:33:53 +0000 (08:33 -0700)]
Merge /pub/scm/linux/kernel/git/paulus/ppc64-2.6
Linus Torvalds [Mon, 12 Sep 2005 14:59:21 +0000 (07:59 -0700)]
Mark ia64-specific MCA/INIT scheduler hooks as dangerous
..and only enable them for ia64. The functions are only valid
when the whole system has been totally stopped and no scheduler
activity is ongoing on any CPU, and interrupts are globally
disabled.
In other words, they aren't useful for anything else. So make
sure that nobody can use them by mistake.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Roland McGrath [Sun, 11 Sep 2005 08:44:45 +0000 (01:44 -0700)]
[PATCH] i386: Don't miss pending signals returning to user mode after signal processing
Signed-off-by: Roland McGrath <roland@redhat.com>
Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Mon, 12 Sep 2005 03:19:51 +0000 (13:19 +1000)]
[PATCH] ppc64: Remove unused code
ppc64_attention_msg and ppc64_dump_msg are not used so remove them.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Mon, 12 Sep 2005 03:17:27 +0000 (13:17 +1000)]
[PATCH] ppc64: Fix for missing start-cpu rtas token
If the rtas start-cpu token doesnt exist then presume the cpu is already
spinning. If it isnt we will catch it later on when the cpu doesnt
respond.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Mon, 12 Sep 2005 03:14:26 +0000 (13:14 +1000)]
[PATCH] ppc64: indent pci code
Fix up some badly indented code.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Mon, 12 Sep 2005 03:12:11 +0000 (13:12 +1000)]
[PATCH] ppc64: xics cleanup
A few xics cleanups:
- Make some things static.
- Be more consistent with error printing - interrupts are unsigned,
error values are signed.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Sat, 10 Sep 2005 06:01:11 +0000 (16:01 +1000)]
[PATCH] ppc64: Add ptrace data breakpoint support
Add hardware data breakpoint support.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Sat, 10 Sep 2005 06:01:10 +0000 (16:01 +1000)]
[PATCH] ppc64: Add definitions for new PTRACE calls
- Add PTRACE_GET_DEBUGREG/PTRACE_SET_DEBUGREG. The definition is
as follows:
/*
* Get or set a debug register. The first 16 are DABR registers and the
* second 16 are IABR registers.
*/
#define PTRACE_GET_DEBUGREG 25
#define PTRACE_SET_DEBUGREG 26
DABR == data breakpoint and IABR = instruction breakpoint in IBM
speak. We could split out the IABR into 2 more ptrace calls but I
figured there was no need and 16 DABR registers should be more
than enough (POWER4/POWER5 have one).
- Add 2 new SIGTRAP si_codes: TRAP_HWBKPT and TRAP_BRANCH. I couldnt
find any standards on either of these so I copied what ia64 is
doing. Again this might be better placed in
include/asm-generic/siginfo.h
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Sat, 10 Sep 2005 06:01:09 +0000 (16:01 +1000)]
[PATCH] ppc64: Fix up some whitespace issues in ptrace32.c
Fix up some whitespace issues in ptrace32.c
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Anton Blanchard [Sat, 10 Sep 2005 06:01:08 +0000 (16:01 +1000)]
[PATCH] ppc64: ptrace cleanups
- Remove the PPC_REG* defines
- Wrap some more stuff with ifdef __KERNEL__
- Add missing PT_TRAP, PT_DAR, PT_DSISR defines
- Add PTRACE_GETEVRREGS/PTRACE_SETEVRREGS, even though we dont use it on
ppc64 we dont want to allocate them for something else.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Robert Jennings [Sat, 10 Sep 2005 06:01:07 +0000 (16:01 +1000)]
[PATCH] ppc64: Add PTRACE_{GET|SET}VRREGS
The ptrace get and set methods for VMX/Altivec registers present in the
ppc tree were missing for ppc64. This patch adds the 32-bit and
64-bit methods. Updated with the suggestions from Anton following the lines
of his code snippet.
Added:
- flush_altivec_to_thread calls as suggested by Anton
- piecewise copy of structure to preserve 32-bit vrsave data as per
Anton
(I consolidated the 32 and 64bit versions with 2 helper macros - Anton)
Signed-off-by: Robert C Jennings <rcjenn@austin.ibm.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Paul Mackerras [Mon, 12 Sep 2005 07:17:36 +0000 (17:17 +1000)]
ppc64: Set up PCI tree from Open Firmware device tree
This adds code which gives us the option on ppc64 of instantiating the
PCI tree (the tree of pci_bus and pci_dev structs) from the Open
Firmware device tree rather than by probing PCI configuration space.
The OF device tree has a node for each PCI device and bridge in the
system, with properties that tell us what addresses the firmware has
configured for them and other details.
There are a couple of reasons why this is needed. First, on systems
with a hypervisor, there is a PCI-PCI bridge per slot under the PCI
host bridges. These PCI-PCI bridges have special isolation features
for virtualization. We can't write to their config space, and we are
not supposed to be reading their config space either. The firmware
tells us about the address ranges that they pass in the OF device
tree.
Secondly, on powermacs, the interrupt controller is in a PCI device
that may be behind a PCI-PCI bridge. If we happened to take an
interrupt just at the point when the device or a bridge on the path to
it was disabled for probing, we would crash when we try to access the
interrupt controller.
I have implemented a platform-specific function which is called for
each PCI bridge (host or PCI-PCI) to say whether the code should look
in the device tree or use normal PCI probing for the devices under
that bridge. On pSeries machines we use the device tree if we're
running under a hypervisor, otherwise we use normal probing. On
powermacs we use normal probing for the AGP bridge, since the device
for the AGP bridge itself isn't shown in the device tree (at least on
my G5), and the device tree for everything else.
This has been tested on a dual G5 powermac, a partition on a POWER5
machine (running under the hypervisor), and a legacy iSeries
partition.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Antonino A. Daplas [Mon, 12 Sep 2005 01:18:12 +0000 (09:18 +0800)]
[PATCH] i810fb: Update i810fb documentation
Update i810fb documentation to describe new features and configuration
changes.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Antonino A. Daplas [Mon, 12 Sep 2005 01:16:47 +0000 (09:16 +0800)]
[PATCH] i810fb: Change option ext_vga to extvga to match documentation
Reported by: Manuel Lauss <mano@roarinelk.homelinux.net>
He was getting random initial video modes depending on the kernel
configuration. His option line includes 'extvga'.
The i810fb documentation describes the option 'extvga', however the
driver accepts 'ext_vga'. Besides 'extvga' being ignored by i810fb,
it also confuses the option parser of i810fb and assigns 'extvga' to
'mode_option'. This leads to an incorrect video mode at boot time.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Antonino A. Daplas [Mon, 12 Sep 2005 01:15:16 +0000 (09:15 +0800)]
[PATCH] i810fb: Restore xres and yres option parameters
If i810fb successfully probed for the EDID, it will disregard the
boot option parameters 'xres' and 'yres'. Fix this regression.
Excellent testing done by Manuel Lauss <mano@roarinelk.homelinux.net>.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Antonino A. Daplas [Mon, 12 Sep 2005 01:13:32 +0000 (09:13 +0800)]
[PATCH] i810fb: Fix oops if CONFIG_FB_I810_I2C is set to no
Reported by: Manuel Lauss <mano@roarinelk.homelinux.net>
compiled with CONFIG_FB_I810_I2C = n and CONFIG_FB_I810 = y
it oopses at boot in file drivers/video/i810/i810_main.c:1884
...
Unable to handle kernel NULL pointer dereference at virtual address
00000054
printing eip:
c02543c0
*pde =
00000000
Oops: 0000 [#1]
last sysfs file:
Modules linked in:
CPU: 0
EIP: 0060:[<
c02543c0>] Not tainted VLI
EFLAGS:
00010286 (2.6.13-mm2)
EIP is at i810fb_find_init_mode+0x53/0x93
eax:
c113ddd4 ebx:
c1194000 ecx:
c04be2dd edx:
c1194000
esi:
c1194008 edi:
c113ddd4 ebp:
c1194240 esp:
c113ddcc
ds: 007b es: 007b ss: 0068
struct fb_monspecs *specs is initialized to NULL causing the oops.
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: common RAM based 68360 startup code
Create common start code for all 68360 based platforms that are
loaded and run directly from RAM (as opposed to running from
flash/ROM). This replaces the old specific startup code for
each board.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: allow for SDRAM and GPIO differences on 5270/1 and 5274/5 processors
Allow for differences in the SDRAM controller setup and GPIO pin setup
of the 5270/1 and 5274/5 parts. With separate config options for each
now this no longer needs to be board specific.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: FEC eth definitions support for the 523x Coldfire processor family
Add support for the FEC ethernet driver of the Freescale 523x processor
family to the FEC header definitions.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: add SPI register definitions for 528x processors
Add QSPI register definitions of ColdFIre 528x processor SPI controller.
Patch originally submitted by Derek Cheung <derek.cheung@sympatico.ca>
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] uclinux: add NULL check, 0 end valid check and some more exports to nommu.c
Move call to get_mm_counter() in update_mem_hiwater() to be
inside the check for tsk->mm being null. Otherwise you can be
following a null pointer here. This patch submitted by
Javier Herrero <jherrero@hvsistemas.es>.
Modify the end check for munmap regions to allow for the
legacy behavior of 0 being valid. Pretty much all current
uClinux system libc malloc's pass in 0 as the end point.
A hard check will fail on these, so change the check so
that if it is non-zero it must be valid otherwise it fails.
A passed in value will always succeed (as it used too).
Also export a few more mm system functions - to be consistent
with the VM code exports.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: dma support for 523x processors
Support the DMA unit of the ColdFire 523x processor family.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] uclinux: remove use of mtd_put_device() in uclinux MTD map driver
We should not call mtd_put_device() in the uclinux MTD map driver.
Also consistently use phys/virt fields of maps map_info struct,
instead of mixing it with map_priv_1.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: add ColdFire serial driver support for 523x processor family
Add support for the new Freescale 523x processor family to ColdFire
serial driver. Also set different default baud rate for MOD5272
board.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: change addr arg to const in bitops.h/find_next_zero_bit()
Change addr arg to find_next_zero_bit to be a const.
Cleans up compiler warning.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: correct prototype args in checksum.h
Bring arg types for csum_partial_copy and csum_paritial_copy_from_user
prototypes into line with their actual implementation.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Greg Ungerer [Mon, 12 Sep 2005 01:18:10 +0000 (11:18 +1000)]
[PATCH] m68knommu: common ROM/flash based 68360 startup code
Create common start code for all 68360 based platforms that are
loaded and run directly from ROM/flash (as opposed to running from
RAM). This replaces the old specific startup code for each board.
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>