Commit Graph

643 Commits

Author SHA1 Message Date
Jes Sorensen
f14f75b811 [PATCH] ia64 uncached alloc
This patch contains the ia64 uncached page allocator and the generic
allocator (genalloc).  The uncached allocator was formerly part of the SN2
mspec driver but there are several other users of it so it has been split
off from the driver.

The generic allocator can be used by device driver to manage special memory
etc.  The generic allocator is based on the allocator from the sym53c8xx_2
driver.

Various users on ia64 needs uncached memory.  The SGI SN architecture requires
it for inter-partition communication between partitions within a large NUMA
cluster.  The specific user for this is the XPC code.  Another application is
large MPI style applications which use it for synchronization, on SN this can
be done using special 'fetchop' operations but it also benefits non SN
hardware which may use regular uncached memory for this purpose.  Performance
of doing this through uncached vs cached memory is pretty substantial.  This
is handled by the mspec driver which I will push out in a seperate patch.

Rather than creating a specific allocator for just uncached memory I came up
with genalloc which is a generic purpose allocator that can be used by device
drivers and other subsystems as they please.  For instance to handle onboard
device memory.  It was derived from the sym53c7xx_2 driver's allocator which
is also an example of a potential user (I am refraining from modifying sym2
right now as it seems to have been under fairly heavy development recently).

On ia64 memory has various properties within a granule, ie.  it isn't safe to
access memory as uncached within the same granule as currently has memory
accessed in cached mode.  The regular system therefore doesn't utilize memory
in the lower granules which is mixed in with device PAL code etc.  The
uncached driver walks the EFI memmap and pulls out the spill uncached pages
and sticks them into the uncached pool.  Only after these chunks have been
utilized, will it start converting regular cached memory into uncached memory.
Hence the reason for the EFI related code additions.

Signed-off-by: Jes Sorensen <jes@wildopensource.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:18 -07:00
Badari Pulavarty
cbe37d0937 [PATCH] mm: remove PG_highmem
Remove PG_highmem, to save a page flag.  Use is_highmem() instead.  It'll
generate a little more code, but we don't use PageHigheMem() in many places.

Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:17 -07:00
Wolfgang Wander
1363c3cd86 [PATCH] Avoiding mmap fragmentation
Ingo recently introduced a great speedup for allocating new mmaps using the
free_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and
causes huge performance increases in thread creation.

The downside of this patch is that it does lead to fragmentation in the
mmap-ed areas (visible via /proc/self/maps), such that some applications
that work fine under 2.4 kernels quickly run out of memory on any 2.6
kernel.

The problem is twofold:

  1) the free_area_cache is used to continue a search for memory where
     the last search ended.  Before the change new areas were always
     searched from the base address on.

     So now new small areas are cluttering holes of all sizes
     throughout the whole mmap-able region whereas before small holes
     tended to close holes near the base leaving holes far from the base
     large and available for larger requests.

  2) the free_area_cache also is set to the location of the last
     munmap-ed area so in scenarios where we allocate e.g.  five regions of
     1K each, then free regions 4 2 3 in this order the next request for 1K
     will be placed in the position of the old region 3, whereas before we
     appended it to the still active region 1, placing it at the location
     of the old region 2.  Before we had 1 free region of 2K, now we only
     get two free regions of 1K -> fragmentation.

The patch addresses thes issues by introducing yet another cache descriptor
cached_hole_size that contains the largest known hole size below the
current free_area_cache.  If a new request comes in the size is compared
against the cached_hole_size and if the request can be filled with a hole
below free_area_cache the search is started from the base instead.

The results look promising: Whereas 2.6.12-rc4 fragments quickly and my
(earlier posted) leakme.c test program terminates after 50000+ iterations
with 96 distinct and fragmented maps in /proc/self/maps it performs nicely
(as expected) with thread creation, Ingo's test_str02 with 20000 threads
requires 0.7s system time.

Taking out Ingo's patch (un-patch available per request) by basically
deleting all mentions of free_area_cache from the kernel and starting the
search for new memory always at the respective bases we observe: leakme
terminates successfully with 11 distinctive hardly fragmented areas in
/proc/self/maps but thread creating is gringdingly slow: 30+s(!) system
time for Ingo's test_str02 with 20000 threads.

Now - drumroll ;-) the appended patch works fine with leakme: it ends with
only 7 distinct areas in /proc/self/maps and also thread creation seems
sufficiently fast with 0.71s for 20000 threads.

Signed-off-by: Wolfgang Wander <wwc@rentec.com>
Credit-to: "Richard Purdie" <rpurdie@rpsys.net>
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu> (partly)
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:16 -07:00
David Gibson
63551ae0fe [PATCH] Hugepage consolidation
A lot of the code in arch/*/mm/hugetlbpage.c is quite similar.  This patch
attempts to consolidate a lot of the code across the arch's, putting the
combined version in mm/hugetlb.c.  There are a couple of uglyish hacks in
order to covert all the hugepage archs, but the result is a very large
reduction in the total amount of code.  It also means things like hugepage
lazy allocation could be implemented in one place, instead of six.

Tested, at least a little, on ppc64, i386 and x86_64.

Notes:
	- this patch changes the meaning of set_huge_pte() to be more
	  analagous to set_pte()
	- does SH4 need s special huge_ptep_get_and_clear()??

Acked-by: William Lee Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:15 -07:00
Martin Hicks
753ee72896 [PATCH] VM: early zone reclaim
This is the core of the (much simplified) early reclaim.  The goal of this
patch is to reclaim some easily-freed pages from a zone before falling back
onto another zone.

One of the major uses of this is NUMA machines.  With the default allocator
behavior the allocator would look for memory in another zone, which might be
off-node, before trying to reclaim from the current zone.

This adds a zone tuneable to enable early zone reclaim.  It is selected on a
per-zone basis and is turned on/off via syscall.

Adding some extra throttling on the reclaim was also required (patch
4/4).  Without the machine would grind to a crawl when doing a "make -j"
kernel build.  Even with this patch the System Time is higher on
average, but it seems tolerable.  Here are some numbers for kernbench
runs on a 2-node, 4cpu, 8Gig RAM Altix in the "make -j" run:

			wall  user   sys   %cpu  ctx sw.  sleeps
			----  ----   ---   ----   ------  ------
No patch		1009  1384   847   258   298170   504402
w/patch, no reclaim     880   1376   667   288   254064   396745
w/patch & reclaim       1079  1385   926   252   291625   548873

These numbers are the average of 2 runs of 3 "make -j" runs done right
after system boot.  Run-to-run variability for "make -j" is huge, so
these numbers aren't terribly useful except to seee that with reclaim
the benchmark still finishes in a reasonable amount of time.

I also looked at the NUMA hit/miss stats for the "make -j" runs and the
reclaim doesn't make any difference when the machine is thrashing away.

Doing a "make -j8" on a single node that is filled with page cache pages
takes 700 seconds with reclaim turned on and 735 seconds without reclaim
(due to remote memory accesses).

The simple zone_reclaim syscall program is at
http://www.bork.org/~mort/sgi/zone_reclaim.c

Signed-off-by: Martin Hicks <mort@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:14 -07:00
Ingo Molnar
39c715b717 [PATCH] smp_processor_id() cleanup
This patch implements a number of smp_processor_id() cleanup ideas that
Arjan van de Ven and I came up with.

The previous __smp_processor_id/_smp_processor_id/smp_processor_id API
spaghetti was hard to follow both on the implementational and on the
usage side.

Some of the complexity arose from picking wrong names, some of the
complexity comes from the fact that not all architectures defined
__smp_processor_id.

In the new code, there are two externally visible symbols:

 - smp_processor_id(): debug variant.

 - raw_smp_processor_id(): nondebug variant. Replaces all existing
   uses of _smp_processor_id() and __smp_processor_id(). Defined
   by every SMP architecture in include/asm-*/smp.h.

There is one new internal symbol, dependent on DEBUG_PREEMPT:

 - debug_smp_processor_id(): internal debug variant, mapped to
                             smp_processor_id().

Also, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new
lib/smp_processor_id.c file.  All related comments got updated and/or
clarified.

I have build/boot tested the following 8 .config combinations on x86:

 {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}

I have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT.  (Other
architectures are untested, but should work just fine.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:13 -07:00
Suresh Siddha
84929801e1 [PATCH] x86_64: TASK_SIZE fixes for compatibility mode processes
Appended patch will setup compatibility mode TASK_SIZE properly.  This will
fix atleast three known bugs that can be encountered while running
compatibility mode apps.

a) A malicious 32bit app can have an elf section at 0xffffe000.  During
   exec of this app, we will have a memory leak as insert_vm_struct() is
   not checking for return value in syscall32_setup_pages() and thus not
   freeing the vma allocated for the vsyscall page.  And instead of exec
   failing (as it has addresses > TASK_SIZE), we were allowing it to
   succeed previously.

b) With a 32bit app, hugetlb_get_unmapped_area/arch_get_unmapped_area
   may return addresses beyond 32bits, ultimately causing corruption
   because of wrap-around and resulting in SEGFAULT, instead of returning
   ENOMEM.

c) 32bit app doing this below mmap will now fail.

  mmap((void *)(0xFFFFE000UL), 0x10000UL, PROT_READ|PROT_WRITE,
	MAP_FIXED|MAP_PRIVATE|MAP_ANON, 0, 0);

Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 18:46:12 -07:00
David S. Miller
8005aba69a [SPARC64]: Fix cmsg length checks in Solaris emulation layer.
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-06-21 15:39:22 -07:00
Linus Torvalds
1d345dac1f Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2005-06-20 16:00:33 -07:00
Yani Ioannou
ff381d2223 [PATCH] Driver Core: arch: update device attribute callbacks
Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-06-20 15:15:32 -07:00
Patrick Mochel
6623415687 [PATCH] sn: fixes due to driver core changes
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-06-20 15:15:28 -07:00
gregkh@suse.de
8874b414ff [PATCH] class: convert arch/* to use the new class api instead of class_simple
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-06-20 15:15:09 -07:00
Linus Torvalds
91b90475e7 Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-20 11:37:49 -07:00
Lennert Buytenhek
f0ffeddc89 [PATCH] ARM: 2719/1: enable module support in ixp2000 defconfigs by default
Patch from Lennert Buytenhek

The ixp2000 defconfigs are among the few that do not enable module
support by default.  I keep enabling module support by hand for every
new kernel version, so let's just make this change upstream.

Signed-off-by: Lennert Buytenhek
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:51:08 +01:00
Richard Purdie
d67947a1bd [PATCH] ARM: 2716/1: SharpSL Param: Fix typo
Patch from Richard Purdie

Fix typo in sharpsl_param.c so it works correctly on collie.

Signed-off-by: Richard Purdie
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:51:07 +01:00
Lennert Buytenhek
e4fe19819e [PATCH] ARM: 2701/1: free up ixp2000 timer 4 for the watchdog
Patch from Lennert Buytenhek

The IXP2000 has four timers, but if we're on an A-step IXP2800, timer
2 and 3 don't work.  We need two timers for timekeeping (one for the
timer interrupt and one for tracking missed jiffies), so on early
IXP2800s we have no other choice but to use timer 1 and 4 for that,
but on all other IXP2000s we'd rather leave timer 4 free since that's
the only timer we can use for the watchdog.
So, on buggy IXP2000s (i.e. the A-step IXP2800) we use timer 4 for
tracking missed jiffies, and on all all non-buggy IXP2000s (i.e.
everything but the A-step IXP2800) we use timer 2.
On a pre-production IXP2800, this patch should print these messages
on boot:
	Enabling IXP2800 erratum #25 workaround
	Unable to use IXP2000 watchdog due to IXP2800 erratum #25
On any non-buggy IXP2800 (as well as on IXP2400s) you shouldn't see
anything at all, and the watchdog should be usable again.

Signed-off-by: Lennert Buytenhek
Signed-off-by: Deepak Saxena
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:51:07 +01:00
Catalin Marinas
c0da085ad2 [PATCH] ARM: 2693/1: Add PCI support for Versatile/PB
Patch from Catalin Marinas

This patch adds PCI support for the Versatile PB926 platform.

Signed-off-by: Colin King
Signed-off-by: Catalin Marinas
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:51:06 +01:00
Bellido Nicolas
038c5b6025 [PATCH] ARM: 2686/2: AAEC-2000 Core support
Patch from Bellido Nicolas

Core support for AAEC-2000 based platforms.
This is an updated version of the previous patch, and takes
into account Russell's comments.
AAED-2000 default configuration will follow as soon
as some problems with the bootloader are sorted out...

Signed-off-by: Nicolas Bellido
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:51:05 +01:00
Russell King
09f0551d20 [PATCH] ARM: Add iomap support for ARM
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 18:44:37 +01:00
Russell King
a507ef3ac6 [PATCH] ARM: Remove nmi_tick() from Integrator.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 16:57:17 +01:00
Russell King
14eb75b6f8 [PATCH] ARM: Add missed include for dmabounce.c
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 16:56:08 +01:00
Russell King
3ade2fe0fd [PATCH] ARM: Lindent GCC helper functions
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 16:45:32 +01:00
Linus Torvalds
bcc408b75b Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6 2005-06-20 08:17:59 -07:00
Russell King
f29481c0e7 [PATCH] ARM: Remove gcc type-isms from GCC helper functions
Convert ugly GCC types to Linux types:

	UQImode -> u8
	SImode -> s32
	USImode -> u32
	DImode -> s64
	UDImode -> u64
	word_type -> int

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 15:49:59 +01:00
Russell King
34c8eacab6 [PATCH] ARM: Remove obsolete arch/arm/kernel/arch.c
This is not used anymore - RiscPC now contains the necessary
supporting code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 12:56:40 +01:00
John Rose
d3588ba9bb [PATCH] initialize TCE tables
A fairly recent platform requirement states that the OS must clear the
whole TCE table at setup time, in case firmware left any active
mappings in it.  Without this initialization, dynamic bus removes can
fail.  Firmware rejects these requests if active mappings still exist 
for a slot that has been deallocated by the OS.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-06-20 21:43:48 +10:00
Anton Blanchard
0231c290d8 [PATCH] ppc64: use cpu_has_feature macro
Use the new cpu_has_feature macros instead of open coding it.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-06-20 21:43:15 +10:00
Anton Blanchard
ad21798e0e [PATCH] ppc64: quieten RTAS printks
Some rtasd printks were too loud. They would appear on a quiet boot
even though they were only informational.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-06-20 21:43:07 +10:00
Russell King
5abc100e88 [PATCH] ARM: Ensure DMA-bounced buffers are properly written to RAM
When DMA bounce buffers were unmapped and the data was memcpy'd to
the original buffer, we were not ensuring that the data was written
to RAM.  This means that there was the potential for page cache
pages to have different cache states depending whether they've been
bounced or not.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 12:31:14 +01:00
Russell King
b8a9b66fbe [PATCH] ARM: Add common CACHE_COLOUR macro
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 11:31:09 +01:00
Russell King
8830f04a09 [PATCH] ARM: Fix delayed dcache flush for ARMv6 non-aliasing caches
flush_dcache_page() did nothing for these caches, but since they
suffer from I/D cache coherency issues, we need to ensure that data
is written back to RAM.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-20 09:51:03 +01:00
Russell King
0908db22b1 [PATCH] ARM SMP: Messages about CPUs should be prefixed by CPU%u
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-19 19:48:16 +01:00
Russell King
ea4423c3b6 Merge with ../linux-2.6-smp 2005-06-19 19:26:54 +01:00
Russell King
36c5ed23b9 [PATCH] ARM SMP: Fix PXA/SA11x0 suspend resume crash
We need to re-initialise the stack pointers for undefined, IRQ
and abort mode handlers whenever we resume.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-19 18:39:33 +01:00
Russell King
fe6ef2daa2 [PATCH] ARM SMP: Add missed files from Integrator/CP platform
Add missed new files from basic SMP support for the Integrator/CP platform.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-19 09:52:07 +01:00
Linus Torvalds
3aa3dfb372 Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-18 16:06:50 -07:00
Russell King
20cf33ea16 [PATCH] ARM SMP: Add basic support Integrator/CP platform
Add basic SMP support for the Integrator/CP platform.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-18 10:15:46 +01:00
Russell King
e65f38ed0b [PATCH] ARM SMP: Add support for startup of secondary processors
Create a temporary page table to startup secondary processors.  This
page table must have a 1:1 virtual/physical mapping for the kernel
in addition to the standard mappings to ensure that the secondary
CPU can enable its MMU safely.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-18 09:33:31 +01:00
Russell King
5ab6091db0 Merge with ../linux-2.6-smp 2005-06-18 09:06:59 +01:00
David Woodhouse
0107b3cf32 Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-06-18 08:36:46 +01:00
Nicolas Pitre
22f11c4e66 [PATCH] ARM: 2715/1: restore CPLD interrupts upon resume for Lubbock and Mainstone
Patch from Nicolas Pitre

Without this some devices fail to work again after a suspend event.

Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-16 21:23:56 +01:00
Catalin Marinas
fea7722fd7 [PATCH] ARM: 2713/1: Fix the GPIO base for Integrator/CP
Patch from Catalin Marinas

The GPIO base for Integrator/CP is different from the
Integrator/AP. This patch sets the correct value for
INTEGRATOR_GPIO_BASE.

Signed-off-by: Catalin Marinas
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-16 18:01:11 +01:00
Catalin Marinas
90ef713b63 [PATCH] ARM: 2712/1: Fix the RGB order for the Versatile CLCD
Patch from Catalin Marinas

The current red and blue colours on the Versatile CLCD are
reversed when the 5:6:5 mode is used. The patch sets the proper
bit in the SYS_CLCD register value.

Signed-off-by: Catalin Marinas
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-16 18:01:11 +01:00
Olaf Hering
1016888fb6 [PATCH] update ppc64 defconfig
enable cpusets
enable new lpfc and jsm drivers
enable new dm-multipath
leave new agp disabled
disable rivafb, it does not handle the cards in G5 models (FX5200 as example)
the new nvidiafb doesnt work on bigendian, yet

Signed-off-by: Olaf Hering <olh@suse.de>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-14 17:41:39 -07:00
Paul Mackerras
4845f33337 [PATCH] ppc64: update example configs
Here is a patch to update the example configs in arch/ppc64/configs.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-14 12:11:12 -07:00
Thomas Hood
92c6dc59b7 [PATCH] apm.c: ignore_normal_resume is set a bit too late
This patch causes the ignore_normal_resume flag to be set slightly earlier,
before there is a chance that the apm driver will receive the normal resume
event from the BIOS.  (Addresses Debian bug #310865)

Signed-off-by: Thomas Hood <jdthood@yahoo.co.uk>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-14 07:19:35 -07:00
Jeff Dike
a3c77c67a4 [PATCH] uml: slirp and slip driver cleanups and fixes
This patch merges a lot of duplicated code in the slip and slirp drivers,
abstracts out the slip protocol, and makes the slip driver work in 2.6.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-13 20:58:43 -07:00
Jeff Dike
98fdffccea [PATCH] uml: use fork instead of clone
Convert the boot-time host ptrace testing from clone to fork.  They were
essentially doing fork anyway.  This cleans up the code a bit, and makes
valgrind a bit happier about grinding it.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-13 20:58:43 -07:00
Jeff Dike
36ca1195ad [PATCH] uml: build cleanups
Fix a build failure when CONFIG_MODE_SKAS is disabled and make a Makefile
comment fit in 80 columns.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-13 20:58:43 -07:00
Jeff Dike
8447f3f465 [PATCH] uml: remove duplicate includes
A few files include the same header twice.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-13 20:58:43 -07:00
Nicolas Pitre
a8fa3f0c59 [PATCH] ARM: 2711/1: fix compilation on PXA targets with CONFIG_PM=n
Patch from Nicolas Pitre

Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-13 22:35:41 +01:00
Geert Uytterhoeven
c3315ede1b [PATCH] M68k: Mark Sun-3 NCR5380 SCSI broken
M68k: Mark Sun-3 NCR5380 SCSI broken until NCR5380_abort() and
NCR5380_bus_reset() are replaced with real new-style EH routines (the old EH
SCSI constants were removed in 2.6.12-rc3).

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-12 20:43:22 -07:00
Geert Uytterhoeven
707f919c64 [PATCH] M68k: Update defconfigs
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-12 20:43:21 -07:00
David Brownell
bb011b8e8e [PATCH] ARM: 2709/1: Systems with PCMCIA should also see IDE options (for CompactFlash memories)
Patch from David Brownell

The ARM generic Kconfig filters out IDE options ... except for
an error prone ARMload of special cases.
This adds one general case to the systems that will offer IDE options:
kernels with PCMCIA support, which probably want to use IDE to access
CompactFlash cards.  This might allow many (most?) of the other cases
to disappear, for systems that only see IDE hardware through CF cards.
Right now this one patch is used to gate access to CF cards, including
MicroDrives, for both omap_cf and at91_cf drivers.

Signed-off-by: David Brownell
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-12 23:26:05 +01:00
Linus Torvalds
90abb7b5f3 ppc: remove two extraneous descriptors for the 405EP CPU
The patch to add them keeps on getting applied, over and
over again ;)

Hopefully no more.
2005-06-10 09:37:21 -07:00
Benjamin Herrenschmidt
0086b5ec78 [PATCH] ppc32: Fix nasty sleep/wakeup problem
Despite all the care lately in making the powermac sleep/wakeup as
robust as possible, there is still a nasty related to the use of cpufreq
on PMU based machines.  Unfortunately, it affects paulus old powerbook
so I have to fix it :)

We didn't manage to understand what is precisely going on, it leads to
memory corruption and might have to do with RAM not beeing properly
refreshed when a cpufreq transition is done right before the sleep.

The best workaround (and less intrusive at this point) we could come up
with is included in this patch.  We basically do _not_ force a switch to
high speed on suspend anymore (that is what is causing the problem) on
those machines.  We still force a speed switch on wakeup (since we don't
know what speed we are coming back from sleep at, and that seems to work
fine).

Since, during this short interval, the actual CPU speed might be
incorrect, we also hack around by multiplying loops_per_jiffy by 2 (max
speed factor on those machines) during early wakeup stage to make sure
udelay's during that time aren't too short.

For after 2.6.12, we'll change udelay implementation to use the CPU
timebase (which is always constant) instead like we do on ppc64 and thus
get rid of all those problems.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-09 21:33:35 -07:00
Eugene Surovegin
7fbdf1a23b [PATCH] ppc32: add 405EP cpu_spec entry
Add a definition for PPC 405EP which was lost somehow during 2.4 -> 2.6
transition.

Recent change to arch/ppc/kernel/misc.S ("Fix incorrect CPU_FTR fixup usage
for unified caches") triggered this bug and 405EP boards don't boot
anymore.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-09 15:39:52 -07:00
Linus Torvalds
d80d6fc08e Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-09 15:36:31 -07:00
Vincent Sanders
07c6d48fd1 [PATCH] ARM: 2708/1: Fix hackkit CPU Frequency build faliure
Patch from Vincent Sanders

This fixes the "multiple definitions of cpufreq_get" build faliure on
the hackkit SA1100 platform.

Signed-off-by: Vincent Sanders
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-09 21:59:22 +01:00
Vincent Sanders
7aa0b0d5ab [PATCH] ARM: 2707/2: Fix badge4 CPU Frequency build faliure
Patch from Vincent Sanders

This fixes the "multiple definitions of cpufreq_get" build faliure on
the Badge4 SA1100 platform.

Signed-off-by: Vincent Sanders
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-09 21:59:21 +01:00
Christoph Lameter
a2a64769d0 [IA64] Fix race condition in the rt_sigprocmask fastcall
current->blocked will be set to the value of current->thread_info->flags if the
cmpxchg to update thread_info->flags fails. For performance reasons the store into
current->blocked was placed in the cmpxchg loop. However, the cmpxchg overwrites the
register holding the value to be stored. In the rare case of a retry the value of
thread_info->flags will be written into current->blocked.

The fix is to use another register so that the register containing the current->blocked
value is not overwritten.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-09 13:04:30 -07:00
Dave Neuer
12035d6456 [PATCH] ARM: 2706/1: Fix compile on SA-based iPAQs and remove stale CREDITS info
Patch from Dave Neuer

This fixes the "multiple definitions of cpufreq_get" errors on
StrongARM-based iPAQs.

Signed-off-by: Dave Neuer
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-09 17:40:55 +01:00
Russell King
4e71e47da3 [PATCH] ARM: Remove zero-byte sized file
Remove the remaining zero byte file left over from the Xscale
fixes.

Signed-off-by: Russell King <rmk@arm.linux.org.uk>
2005-06-09 16:53:28 +01:00
Paul Mackerras
ce10d97905 [PATCH] ppc64: Fix PER_LINUX32 behaviour
This patch fixes some bugs in the ppc64 PER_LINUX32 implementation,
noted by Juergen Kreileder:

* uname(2) doesn't respect PER_LINUX32, it returns 'ppc64' instead of 'ppc'
* Child processes of a PER_LINUX32 process don't inherit PER_LINUX32

Along the way I took the opportunity to move things around so that
sys_ppc32.c only has 32-bit syscall emulation functions and to remove
the obsolete "fakeppc" command line option.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:24:15 -07:00
Peter Chubb
05062d96a2 [PATCH] ia64: fix floating-point preemption problem
There've been reports of problems with CONFIG_PREEMPT=y and the high
floating point partition.  This is caused by the possibility of preemption
and rescheduling on a different processor while saving or restioirng the
high partition.

The only places where the FPU state is touched are in ptrace, in
switch_to(), and where handling a floating-point exception.  In switch_to()
preemption is off.  So it's only in trap.c and ptrace.c that we need to
prevent preemption.

Here is a patch that adds commentary to make the conditions clear, and adds
appropriate preempt_{en,dis}able() calls to make it so.  In trap.c I use
preempt_enable_no_resched(), as we're about to return to user space where
the preemption flag will be checked anyway.

Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:14 -07:00
Ananth N Mavinakayanahalli
f829fd23c8 [PATCH] ppc64 kprobes: remove spurious MSR_SE masking
Remove spurious MSR_SE reset during kprobe processing.
single_step_exception() already does it for us.  Reset it to be safe when
executing the fault_handler.

Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:13 -07:00
Ananth N Mavinakayanahalli
63224d1e8b [PATCH] ppc64 kprobes: correct kprobe registration return values
Add stricter checks during kprobe registration.  Return correct error value so
insmod doesn't succeed.  Also printk reason for registration failure.

Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:13 -07:00
Andrew Morton
42442ed574 [PATCH] revert x86_64-use-the-e820-hole-to-map-the-iommu-agp-aperture
Martin Bligh determined that this patch is causing his test box to not boot.
Revert.

Andi Kleen <ak@muc.de>

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:13 -07:00
Keith Owens
5754c9b649 [PATCH] Stop arch/i386/kernel/vsyscall-note.o being rebuilt every time
arch/i386/kernel/vsyscall-note.o is not listed as a target so its .cmd file
is neither considered as a target nor is it read on the next build.  This
causes vsyscall-note.o to be rebuilt every time that you run make, which
causes vmlinux to be rebuilt every time.

Signed-off-by: Keith Owens <kaos@ocs.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:13 -07:00
Eugene Surovegin
beb9e1c3f3 [PATCH] ppc32: add 405EP cpu_spec entry
Add a definition for PPC 405EP which was lost somehow during 2.4 -> 2.6
transition.

Recent change to arch/ppc/kernel/misc.S ("Fix incorrect CPU_FTR fixup usage
for unified caches") triggered this bug and 405EP boards don't boot
anymore.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:12 -07:00
Jeff Dike
1f96ddb4fb [PATCH] uml: clean up error path
This cleans an error path which used to leak file descriptors by returning
without trying to tidy up.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:12 -07:00
Jeff Dike
501cb02b43 [PATCH] uml: fix strace -f
It turns out that we need to check for pending signals when a newly forked
process is run for the first time.  With strace -f, strace needs to know about
the forked process before it gets going.  If it doesn't, then it ptraces some
bogus values into its registers, and the process segfaults.  So, I added calls
to interrupt_end, which does that, plus checks for reschedules.  There
shouldn't be any of those, but x86 does the same thing, so I'm copying that
behavior to be safe.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:12 -07:00
Jeff Dike
da00d9a546 [PATCH] uml: compile fixes for gcc 4
This is a bunch of compile fixes provoked by building UML with gcc 4.  There
are a bunch of signedness mismatches, a couple of uninitialized references,
and a botched C99 structure initialization which had somehow gone unnoticed.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:12 -07:00
Jeff Dike
3df59529ad [PATCH] uml: make the emulated iomem driver work on 2.6
This makes the minimal fixes needed to make the UML iomem driver work in 2.6.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:11 -07:00
Linus Torvalds
a38133298f Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2005-06-08 16:06:15 -07:00
Keith Owens
70aa488cff [IA64] Extract correct break number for break.b
break.b does not store the break number in cr.iim, instead it stores 0,
which makes all break.b instructions look like BUG().  Extract the
break number from the instruction itself.

Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-08 12:25:24 -07:00
Tony Luck
86ebacd360 [IA64] Update comment to describe modes set in default control register.
Christian Hildner pointed out that the comment did not match what the
code does in cpu_init() when we set up the default control register.
Patch based on suggestions from Ken Chen.

Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-08 12:12:48 -07:00
Linus Torvalds
97d26b8042 Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-08 11:43:17 -07:00
Keith Owens
866ba633a8 [IA64] Module gp must point to valid memory
Some bits of the kernel assume that gp always points to valid memory,
in particular PHYSICAL_MODE_ENTER() assumes that both gp and sp are
valid virtual addresses with associated physical pages.  The IA64
module loader puts gp well past the end of the module, with no physical
backing.  Offsets on gp are still valid, but physical mode addressing
breaks for modules.  Ensure that gp always falls within the module
body.  Also ensure that gp is 8 byte aligned.

Signed-off-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-08 11:41:31 -07:00
Nicolas Pitre
dcef1f6346 [PATCH] ARM: 2664/2: add support for atomic ops on pre-ARMv6 SMP systems
Patch from Nicolas Pitre

Not that there might be many of them on the planet, but at least RMK
apparently has one.

Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-08 19:00:47 +01:00
Nicolas Pitre
aeabbbbe12 [PATCH] ARM: 2705/1: fix writesw for misaligned source pointer
Patch from Nicolas Pitre

Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-08 19:00:16 +01:00
David Mosberger-Tang
ad597bd518 [IA64] Fill holes in FIXADDR_USER space with zero pages.
This fixes an oops reported by Jason Baron.

Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-08 10:58:21 -07:00
Ananth N Mavinakayanahalli
358c6ac0dd [PATCH] ppc64 kprobes: don't eat dabr/iabr exceptions
Kprobes was eating the hardware instruction and data address
breakpoint exceptions.  This patch fixes it; kprobes doesn't use those
exceptions at all and should ignore them.

Signed-off-by: Ananth N Mavinakayanahalli <amavin@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 10:18:59 -07:00
Olaf Hering
7840e5e95c [PATCH] ppc64: print negative numbers correctly in boot wrapper
if num has a value of -1, accessing the digits[] array will fail and the
format string will be printed in funny way, or not at all. This happens if
one prints negative numbers.
Just change the code to match lib/vsprintf.c
asm/div64.h cant be used because u64 maps to u32 for this build.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-06-08 10:18:59 -07:00
Linus Torvalds
35d1bc9054 Automatic merge of master.kernel.org:/home/rmk/linux-2.6-arm 2005-06-08 07:57:17 -07:00
Russell King
f8f98a9335 [PATCH] ARM: Fix Xscale copy_page implementation
The ARM copypage changes in 2.6.12-rc4-git1 removed the preempt locking
from the copypage functions which broke the XScale implementation.
This patch fixes the locking on XScale and removes the now unneeded
minicache code.

Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Checked-by: Richard Purdie
2005-06-08 15:28:24 +01:00
Eugene Surovegin
ad95d6098d [PATCH] ppc32: add 405EP cpu_spec entry
Add a definition for PPC 405EP which was lost somehow during 2.4 -> 2.6
transition.

Recent change to arch/ppc/kernel/misc.S ("Fix incorrect CPU_FTR fixup usage
for unified caches") triggered this bug and 405EP boards don't boot
anymore.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07 13:39:26 -07:00
Tony Luck
26abd53d8e auto merge with /home/aegl/GIT/linus 2005-06-06 15:42:07 -07:00
Kumar Gala
4481e8eea7 [PATCH] ppc32: Fix incorrect CPU_FTR fixup usage for unified caches
Runtime feature support for unified caches was testing a userland feature
flag (PPC_FEATURE_UNIFIED_CACHE) instead of a cpu feature flag
(CPU_FTR_SPLIT_ID_CACHE).  Luckily the current defined bit mask for cpu
features and userland features do not overlap so this only causes an issue
on machines with a unified cache, which is extremely rare on PPC today.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06 14:42:23 -07:00
Gerald Schaefer
f26d583e41 [PATCH] s390: deadlock in appldata
The system might hang when using appldata_mem with high I/O traffic and a
large number of devices.  The spinlocks bdev_lock and swaplock are acquired
via calls to si_meminfo() and si_swapinfo() from a tasklet, i.e.  interrupt
context, which can lead to a deadlock.  Replace tasklet with work queue.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-04 17:13:00 -07:00
Martin Schwidefsky
595bf2aaca [PATCH] s390: in_interrupt vs. in_atomic
The condition for no context in do_exception checks for hard and soft
interrupts by using in_interrupt() but not for preemption.  This is bad for
the users of __copy_from/to_user_inatomic because the fault handler might call
schedule although the preemption count is != 0.  Use in_atomic() instead
in_interrupt().

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-04 17:13:00 -07:00
Bodo Stroesser
c5c3a6d8fe [PATCH] s390: uml ptrace fixes
To make UML build and run on s390, I needed to do these two little
changes:

1) UML includes some of the subarch's (s390) headers. I had to
   change one of them with the following one-liner, to make this
   compile. AFAICS, this change doesn't break compilation of s390
   itself.

2) UML needs to intercept syscalls via ptrace to invalidate the syscall,
   read syscall's parameters and write the result with the result of
   UML's syscall processing. Also, UML needs to make sure, that the host
   does no syscall restart processing. On i386 for example, this can be
   done by writing -1 to orig_eax on the 2nd syscall interception
   (orig_eax is the syscall number, which after the interception is used
   as a "interrupt was a syscall" flag only.
   Unfortunately, s390 holds syscall number and syscall result in gpr2 and
   its "interrupt was a syscall" flag (trap) is unreachable via ptrace.
   So I changed the host to set trap to -1, if the syscall number is changed
   to an invalid value on the first syscall interception.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-04 17:13:00 -07:00
Martin Schwidefsky
778959db97 [PATCH] s390: ptrace peek and poke
The special cases of peek and poke on acrs[15] and the fpc register are not
handled correctly.  A poke on acrs[15] will clobber the 4 bytes after the
access registers in the thread_info structure.  That happens to be the kernel
stack pointer.  A poke on the fpc with an invalid value is not caught by the
validity check.  On the next context switch the broken fpc value will cause a
program check in the kernel.  Improving the checks in peek and poke fixes
this.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-04 17:13:00 -07:00
Deepak Saxena
17d82fcc6a [PATCH] ARM: 2700/1: Disable IXP2000 IRQs at bootup
Patch from Deepak Saxena

The IXDP2800 bootloader does not disable IRQs before jumping into
the kernel and this is causing the Grand Unified KGDB to crash
the system when we do an early call to trap_init() and irq handlers
have not yet been registered. This patch disables IRQs before we
jump into the kernel.

Signed-off-by: Deepak Saxena
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-03 22:18:52 +01:00
Nathan Lynch
8be3de3fd8 [PATCH] prom_find_machine_type typo breaks pSeries lpar boot
A typo in prom_find_machine_type from Ben's recent patch "ppc64: Fix
result code handling in prom_init" prevents pSeries LPAR systems from
booting.

Tested on a pSeries 570 and OpenPower 720 (both Power5 LPAR).

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-03 13:20:04 -07:00
Todd Poynor
8775420d2f [PATCH] ARM: 2691/1: PXA27x sleep fixes take 2
Patch from Todd Poynor

PXA27x sleep fixes:
* set additional sleep/wakeup registers for Mainstone boards.
* move CKEN=0 to pxa25x-specific code; that value is harmful on pxa27x.
* save/restore additional registers, including some found necessary for
C5 processors and/or newer blob versions.
* enable future support of additional sleep modes for PXA27x (eg,
standby, deep sleep).
* split off cpu-specific sleep processing between pxa27x and pxa25x into
separate files (partly in preparation for additional sleep modes).
Includes fixes from David Burrage.

Signed-off-by: Todd Poynor
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-03 20:52:27 +01:00
Albrecht Dreß
105bb2698b [PATCH] ARM: 2694/1: [s3c2410/dma] release irq properly to fix kernel oops
Patch from Albrecht Dreß

Problem:
When a module requests a DMA channel via the function s3c2410_dma_request(), this function requests the appropriate irq under the name of the client module. When the client module is unloaded, it calls s3c2410_dma_free() which does not free the irq. Consequently, when e.g. running "cat /proc/interrupts", the irq owner points to freed memory, leading to a kernel oops.
File:
linux/arch/arm/mach-s3c2410/dma.c
Fix:
trivial, below

Signed-off-by: Albrecht Dreß
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-06-03 20:52:26 +01:00
Dean Nelson
ff89bf3bc0 [IA64] fix setting of sn_hub_info->shub_1_1_found
Fix a bug in which shub_1_1_found is not being properly initialized or set,
resulting in the improper setting of sn_hub_info->shub_1_1_found.

Signed-off-by: Dean Nelson <dcn@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-06-03 12:37:53 -07:00
Greg Ungerer
b05a720b37 [PATCH] m68knommu: fix scheduling and race problems in idle loop
Re-work the m68knommu specific idle code according to suggestions
from Nick Piggin <nickpiggin@yahoo.com.au>.

A couple of rules that we need to follow:

1. Preempt should now disabled over idle routines. Should only be enabled
to call schedule() then disabled again.

3. When cpu_idle finds (need_resched() == 'true'), it should call schedule().
It should not call schedule() otherwise.

Also fix interrupt locking around the need_resched() and cpu stop state
so that there is no race condition.

Signed-off-by: Greg Ungerer <gerg@snapgear.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-03 08:16:17 -07:00
Anton Blanchard
c4eb2a9331 [PATCH] ppc64: remove decr_overclock
Now that we have HZ=1000 there is much less of a need for decr_overclock.
Remove it.

Leave spread_lpevents but move it into iSeries_setup.c.  We should look at
making event spreading the default some day.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-02 15:12:30 -07:00