Commit Graph

666 Commits

Author SHA1 Message Date
Will Schmidt
dcca2bde4f During VM oom condition, kill all threads in process group
We have had complaints where a threaded application is left in a bad state
after one of it's threads is killed when we hit a VM: out_of_memory
condition.

Killing just one of the process threads can leave the application in a bad
state, whereas killing the entire process group would allow for the
application to restart, or be otherwise handled, and makes it very obvious
that something has gone wrong.

This change allows the entire process group to be taken down, rather
than just the one thread.

Signed-off-by: Will Schmidt <will_schmidt@vnet.ibm.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ian Molton <spyro@f2s.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Andi Kleen <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Matthew Wilcox <willy@debian.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Cc: Richard Curnow <rc@rc0.org.uk>
Cc: William Lee Irwin III <wli@holomorphy.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:42:52 -07:00
Alexey Dobriyan
1bcf548293 Consolidate PTRACE_DETACH
Identical handlers of PTRACE_DETACH go into ptrace_request().
Not touching compat code.
Not touching archs that don't call ptrace_request.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:42:49 -07:00
Linus Torvalds
dcf397f037 Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (124 commits)
  sh: allow building for both r2d boards in same binary.
  sh: fix r2d board detection
  sh: Discard .exit.text/.exit.data at runtime.
  sh: Fix up some section alignments in linker script.
  sh: Fix SH-4 DMAC CHCR masking.
  sh: Rip out left-over nommu cond syscall cruft.
  sh: Make kgdb i-cache flushing less inept.
  sh: kgdb section mismatches and tidying.
  sh: cleanup struct irqaction initializers.
  sh: early_printk tidying.
  video: pvr2fb: Add TV (RGB) support to Dreamcast PVR driver.
  sh: Conditionalize gUSA support.
  sh: Follow gUSA preempt changes in __switch_to().
  sh: Tidy up gUSA preempt handling.
  sh: __copy_user() optimizations for small copies.
  sh: clkfwk: Support multi-level clock propagation.
  sh: Fix URAM start address on SH7785.
  sh: Use boot_cpu_data for CPU probe.
  sh: Support extended mode TLB on SH-X3.
  sh: Bump MAX_ACTIVE_REGIONS for SH7785.
  ...
2007-10-13 09:49:04 -07:00
Linus Torvalds
4d5709a7b7 Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] Don't take semaphore in cpufreq_quick_get()
  [CPUFREQ] Support different families in fid/did to frequency conversion
  [CPUFREQ] cpufreq_stats: misc cpuinit section annotations
  [CPUFREQ] implement !CONFIG_CPU_FREQ stub for  cpufreq_unregister_notifier()
  [CPUFREQ] mark hotplug notifier callback as __cpuinit
  [CPUFREQ] Only check for transition latency on problematic governors (kconfig fix)
  [CPUFREQ] allow ondemand and conservative cpufreq governors to be used as default
  [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core
  [CPUFREQ] Longhaul - Add support for PM133 northbridge
  [CPUFREQ] x86: use num_online_nodes to get physical cpus numbers for
2007-10-12 15:42:01 -07:00
Robert Olsson
c45248c701 [SOFTIRQ]: Remove do_softirq() symbol export.
As noted by Christoph Hellwig, pktgen was the only user so
it can now be removed.

[ Add missing cases caught by Adrian Bunk. -DaveM ]

Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 16:48:36 -07:00
Magnus Damm
68ee0f9c98 sh: allow building for both r2d boards in same binary.
This patch enables building for both R2D-PLUS and R2D-1 boards. All code is
already in place except for the Kconfig limitation. This is useful if you
want to run the same binary on both R2D-PLUS and R2D-1 boards.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-10 18:04:42 +09:00
Magnus Damm
9cbf3be67d sh: fix r2d board detection
This patch fixes the R2D-PLUS and R2D-1 board detection code. Tested on two
R2D-PLUS and two R2D-1 boards.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-10 18:03:58 +09:00
Paul Mundt
63482aaada sh: Discard .exit.text/.exit.data at runtime.
These were previously discarded at link time, though as with MIPS
we keep them around until runtime to satisfy .rodata references.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-09 15:23:02 +09:00
Paul Mundt
3497337946 sh: Fix up some section alignments in linker script.
With the PERCPU() macro introduction .data.cacheline_aligned was
inhereting PAGE_SIZE alignment, fix that up for L1_CACHE_BYTES
again. Likewise, the initramfs section wants PAGE_SIZE alignment.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-09 15:20:53 +09:00
Thomas Renninger
8122c6cea0 [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Bryan Wu <bryan.wu@analog.com>
Cc: Andi Kleen <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Jones <davej@redhat.com>
2007-10-04 18:40:57 -04:00
Paul Mundt
6cc15e9fdc sh: Rip out left-over nommu cond syscall cruft.
At some point way back when (2.5 or so) quite a few syscalls hadn't
yet been wired up as cond_syscalls(), so we opted to just do direct
sys_ni_syscall wrapping in the assembly code instead. That's all
been fixed up since then, so we can drop the wrapping.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-04 19:52:32 +09:00
Paul Mundt
01bd5e9ef2 sh: Make kgdb i-cache flushing less inept.
kgdb had its own ranged I-cache flushing routine that attempted to
duplicate the flush_icache_range() functionality, but managed to do
an explicit D-cache writeback & invalidate twice on SH-4. This is
a no-op for SH-3, and the flush_icache_range() semantics already do
what kgdb was feebly attempting to do already, so just move over to
that and kill off the wrapper.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-03 17:21:10 +09:00
Paul Mundt
a90f354709 sh: kgdb section mismatches and tidying.
The kgdb console setup was callable from a left-over deferred
initialization path, which in turn depends on __init symbols. Since
the deferred initialization was removed some time ago, kill off the
rest of those remnants and move kgdb_init() and friends to __init.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-03 17:13:34 +09:00
Thomas Gleixner
e1fb4552ac sh: cleanup struct irqaction initializers.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-03 15:04:08 +09:00
Paul Mundt
008d50fc16 sh: early_printk tidying.
setup_early_printk() can be static, and with that, we can kill off
the early initialization variable and move the CON_BOOT check in
to the function body.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-02 16:24:50 +09:00
Paul Mundt
836624619b sh: Conditionalize gUSA support.
This conditionalizes gUSA support. gUSA is not supported on
SMP configurations, and it's not necessary there anyways due
to having other atomicity options (ie, movli.l/movco.l).

Anything implementing the LL/SC semantics (all SH-4A CPUs)
can switch to userspace atomicity implementations without
requiring gUSA. This is left default-enabled on all UP so
that glibc doesn't break.

Those that know what they are doing can disable this explicitly.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-28 16:04:49 +09:00
Paul Mundt
995bb781d4 sh: Follow gUSA preempt changes in __switch_to().
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-28 15:48:06 +09:00
Paul Mundt
e5137682a1 sh: Tidy up gUSA preempt handling.
Currently gUSA toggles hardirqs to disable preemption in the signal
handler. Make the preemption toggling explicit, and kill off some
CONFIG_PREEMPT ifdefs in the process.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-28 15:21:51 +09:00
Stuart Menefy
023ef184ff sh: __copy_user() optimizations for small copies.
This implements a fast-path for small (less than 12 bytes) copies,
with the existing path treated as the slow-path and left as the default
behaviour for all other copy sizes.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-28 12:36:35 +09:00
Stuart Menefy
24eb17e081 sh: clkfwk: Support multi-level clock propagation.
Currently clock propagation only works for one level, but we have some
clocks which need to propagate multiple levels, so make this recursive.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-28 11:51:52 +09:00
Paul Mundt
675bd7804c sh: Fix URAM start address on SH7785.
Not all of the SH-X2 URAM blocks are mapped in the same place,
SH7785 happens to map it on the opposite end of the address space
from SH7722, correct the addresses.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 18:22:21 +09:00
Paul Mundt
cb7af21f7d sh: Use boot_cpu_data for CPU probe.
This moves off of smp_processor_id() and only sets the probe
information for the boot CPU directly. This will be copied out
for the secondaries, so there's no reason to do this each time.

This also allows for some header tidying.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 18:18:39 +09:00
Paul Mundt
c3af39758c sh: Support extended mode TLB on SH-X3.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 18:08:46 +09:00
Paul Mundt
dc47e9dd41 sh: Bump MAX_ACTIVE_REGIONS for SH7785.
When using URAM in NUMA mode another active region is needed.
Bump this up so we don't trigger the region truncation in
add_active_range().

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 16:48:00 +09:00
Paul Mundt
f72abd0a4c sh: Fix plat_irq_setup_pins() for SH7785.
There was some debug code left in here that caused the pin changes
to never be hit. Kill that off, and all is well.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 16:45:46 +09:00
Paul Mundt
c167aeef23 sh: Kill off duplicate NODES_SHIFT.
We already set this in arch/sh/mm/Kconfig, don't set a conflicting
one in arch/sh/Kconfig too..

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 16:43:39 +09:00
Paul Mundt
4d2cab7c00 sh: Disable 4kB pages on extended mode TLB.
4kB pages are unstable on extended mode TLB, it's recommended
that TLB compat mode be used when using a 4kB PAGE_SIZE. Set
the default for extended mode to 8kB.

This should have negligible impact, as other than the extra swap
cache entry bits, there's no reason to use the extended mode TLB
with 4kB pages.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 10:47:00 +09:00
Paul Mundt
26fad19d8c sh: Disable L2 reporting for present URAM only parts.
The probing logic works for both URAM and L2, with no way to
distinguish between the two. Disable the probing for now and
let the CPU subtypes that have this in a real L2 configuration
explicitly say so.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-27 10:29:58 +09:00
Paul Mundt
1f91bbb584 sh: Define _ebss for uClinux MTD map driver.
The uClinux MTD device uses _ebss, add the symbol and corresponding
export.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-24 18:11:27 +09:00
Paul Mundt
e71cf2b63c sh: Revert incorrect license string changes.
These were right the first time. Either a thinko or
building in the wrong tree. Revert this.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-24 17:49:51 +09:00
Paul Mundt
ab27f62002 sh: Calculate cache aliases on L2 caches.
Calculate the number of cache aliases on probed L2 caches, and while
we're at it, print out the detected statistics at boot time for these
also.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-24 17:00:45 +09:00
Paul Mundt
8328a8ba92 sh: nommu: Kill off dummy page fault ops for SH-3/4.
We stopped referencing these functions unconditionally when the
old entry.S code was refactored, so this is just dead code at
present. Kill it off.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-24 16:40:56 +09:00
Paul Mundt
d10040f7eb sh: Fix alias calculation for non-aliasing cases.
There was an off-by-1 on the cache alias detection logic on SH-4,
which caused n_aliases to always be 1 even when the page size
precluded the existence of aliases.

With this corrected, 64KB pages happily reports n_aliases == 0, and
hits the appropriate fast paths in the flushing routines.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-24 16:38:25 +09:00
Paul Mundt
1a442fe02d sh: Initial SH-X3 SMP support.
This adds basic support for SH-X3 SMP (4 CPUs).

More IPI and cache debugging is necessary, mostly interfacing the
d-cache coherency and the I-cache broadcast invalidates. Only for
testing at present!

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 19:16:05 +09:00
Paul Mundt
0016a126ac sh: Plug plat_smp_setup() in to generic setup path.
Now that the SMP stubs are in place, call in to the setup code
to be defined by the platform.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:39:49 +09:00
Magnus Damm
ceb9b97451 sh: Hook up the SH-X3 SMP intc register groups.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:34:48 +09:00
Paul Mundt
aba1030a7e sh: Bring SMP support back from the dead.
There was a very preliminary bunch of SMP code scattered around for the
SH7604 microcontrollers from way back when, and it has mostly suffered
bitrot since then. With the tree already having been slowly getting
prepped for SMP, this plugs in most of the remaining platform-independent
bits.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:32:32 +09:00
Magnus Damm
f18d533e3c sh: intc - initial SMP support.
This implements initial support for the SMP INTC (particularly
INTC2) controllers.

These are largely implemented as conventional blocks, with
register sets grouped together at fixed strides relative to
the CPU id.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:16:42 +09:00
Paul Mundt
9964fa8bf9 sh: Add SMP tlbflush variants.
This adds the TLB flushing routines for SMP systems, based on
the MIPS implementation, with some additional SH-specific
flush routines.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:09:55 +09:00
Paul Mundt
7ec9d6f8c0 sh: Avoid smp_processor_id() in cache desc paths.
current_cpu_data uses smp_processor_id() in order to find the
corresponding cpu_data. As the cache descs are all currently
identical, just have this look at probed results from the boot
CPU.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:05:20 +09:00
Paul Mundt
2d4a73d5b9 sh: Kill off special boot_cpu_data.
This consolidates the cpu_data definitions and gets rid of the special
boot_cpu_data. It's made a wrapper to the boot CPU, in order to keep
the existing in-tree users happy.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 18:01:40 +09:00
Paul Mundt
00765c816a sh: Make cpufreq driver less noisy on SMP.
The cpufreq driver banner is currently printed for each CPU, move
it down so it's not as noisy and it's only printed once.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 17:53:26 +09:00
Paul Mundt
c1a069f960 sh: Enable maple by default for the Dreamcast.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 15:56:51 +09:00
Adrian McMenamin
17be2d2b1c sh: Add maple bus support for the SEGA Dreamcast.
The Maple bus is SEGA's proprietary serial bus for peripherals
(keyboard, mouse, controller etc). The bus is capable of some
(limited) hotplugging and operates at up to 2 M/bits.

Drivers of one sort or another existed/exist for 2.4 and a rudimentary
port, which didn't support the 2.6 device driver model was also in
existence.

This driver - for the bus logic itself and for the keyboard (other
drivers will follow) are based on the code and concepts of those old
drivers but have lots of completely rewritten parts.

I have the maple bus code as a built in now as that seems the sane and
rational way to handle something like that - you either want the bus
or you don't.

Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 15:55:55 +09:00
Markus Brunner
e87ab0c43c sh: Magic Panel MTD mapping update.
This update moves the flash mapping for the Magic Panel into the board
setup. It also removes references to the old MTD mapping option in the
defconfig.

Signed-off by: Markus Brunner <super.firetwister@gmail.com>
Signed-off by: Mark Jonas <toertel@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 15:27:35 +09:00
Paul Mundt
02353f5d2a sh: rts7751r2d: Fix up trivial build failure.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 15:21:55 +09:00
Aoi Shinkai
43f4b8c757 sh: rts7751r2d cf_ide rework
Support CF IDE on R2D-1 boards.

Signed-off-by: Aoi Shinkai <shinkoi2005@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 15:18:33 +09:00
Paul Mundt
d04a0f79f5 sh: Fix up extended mode TLB for SH-X2+ cores.
The extended mode TLB requires both 64-bit PTEs and a 64-bit pgprot,
correspondingly, the PGD also has to be 64-bits, so fix that up.

The kernel and user permission bits really are decoupled in early
cuts of the silicon, which means that we also have to set corresponding
kernel permissions on user pages or we end up with user pages that the
kernel simply can't touch (!).

Finally, with those things corrected, really enable MMUCR.ME and
correct the PTEA value (this simply needs to be the upper 32-bits
of the PTE, with the size and protection bit encoding).

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 11:57:55 +09:00
Paul Mundt
db2504966c sh: Wire up URAM node on SH7785.
Add SH7785 URAM as node 1, follows the SH-X3 change.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 11:57:55 +09:00
Paul Mundt
0e01059c3d sh: se7206: update defconfig.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21 11:57:54 +09:00