aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
Commit message (Collapse)AuthorAge
* [PATCH] simplify update_times (avoid jiffies/jiffies_64 aliasing problem)Atsushi Nemoto2006-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass ticks to do_timer() and update_times(), and adjust x86_64 and s390 timer interrupt handler with this change. Currently update_times() calculates ticks by "jiffies - wall_jiffies", but callers of do_timer() should know how many ticks to update. Passing ticks get rid of this redundant calculation. Also there are another redundancy pointed out by Martin Schwidefsky. This cleanup make a barrier added by 5aee405c662ca644980c184774277fc6d0769a84 needless. So this patch removes it. As a bonus, this cleanup make wall_jiffies can be removed easily, since now wall_jiffies is always synced with jiffies. (This patch does not really remove wall_jiffies. It would be another cleanup patch) Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: john stultz <johnstul@us.ibm.com> Cc: Andi Kleen <ak@muc.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Acked-by: Russell King <rmk@arm.linux.org.uk> Cc: Ian Molton <spyro@f2s.com> Cc: Mikael Starvik <starvik@axis.com> Acked-by: David Howells <dhowells@redhat.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Hirokazu Takata <takata.hirokazu@renesas.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Cc: Kyle McMartin <kyle@mcmartin.ca> 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: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp> Cc: Chris Zankel <chris@zankel.net> Acked-by: "Luck, Tony" <tony.luck@intel.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] pidspace: is_init()Sukadev Bhattiprolu2006-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an updated version of Eric Biederman's is_init() patch. (http://lkml.org/lkml/2006/2/6/280). It applies cleanly to 2.6.18-rc3 and replaces a few more instances of ->pid == 1 with is_init(). Further, is_init() checks pid and thus removes dependency on Eric's other patches for now. Eric's original description: There are a lot of places in the kernel where we test for init because we give it special properties. Most significantly init must not die. This results in code all over the kernel test ->pid == 1. Introduce is_init to capture this case. With multiple pid spaces for all of the cases affected we are looking for only the first process on the system, not some other process that has pid == 1. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com> Cc: Dave Hansen <haveblue@us.ibm.com> Cc: Serge Hallyn <serue@us.ibm.com> Cc: Cedric Le Goater <clg@fr.ibm.com> Cc: <lxc-devel@lists.sourceforge.net> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] make PROT_WRITE imply PROT_READJason Baron2006-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make PROT_WRITE imply PROT_READ for a number of architectures which don't support write only in hardware. While looking at this, I noticed that some architectures which do not support write only mappings already take the exact same approach. For example, in arch/alpha/mm/fault.c: " if (cause < 0) { if (!(vma->vm_flags & VM_EXEC)) goto bad_area; } else if (!cause) { /* Allow reads even for write-only mappings */ if (!(vma->vm_flags & (VM_READ | VM_WRITE))) goto bad_area; } else { if (!(vma->vm_flags & VM_WRITE)) goto bad_area; } " Thus, this patch brings other architectures which do not support write only mappings in-line and consistent with the rest. I've verified the patch on ia64, x86_64 and x86. Additional discussion: Several architectures, including x86, can not support write-only mappings. The pte for x86 reserves a single bit for protection and its two states are read only or read/write. Thus, write only is not supported in h/w. Currently, if i 'mmap' a page write-only, the first read attempt on that page creates a page fault and will SEGV. That check is enforced in arch/blah/mm/fault.c. However, if i first write that page it will fault in and the pte will be set to read/write. Thus, any subsequent reads to the page will succeed. It is this inconsistency in behavior that this patch is attempting to address. Furthermore, if the page is swapped out, and then brought back the first read will also cause a SEGV. Thus, any arbitrary read on a page can potentially result in a SEGV. According to the SuSv3 spec, "if the application requests only PROT_WRITE, the implementation may also allow read access." Also as mentioned, some archtectures, such as alpha, shown above already take the approach that i am suggesting. The counter-argument to this raised by Arjan, is that the kernel is enforcing the write only mapping the best it can given the h/w limitations. This is true, however Alan Cox, and myself would argue that the inconsitency in behavior, that is applications can sometimes work/sometimes fails is highly undesireable. If you read through the thread, i think people, came to an agreement on the last patch i posted, as nobody has objected to it... Signed-off-by: Jason Baron <jbaron@redhat.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Hugh Dickins <hugh@veritas.com> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Andi Kleen <ak@muc.de> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Arjan van de Ven <arjan@linux.intel.com> Acked-by: Paul Mundt <lethal@linux-sh.org> Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp> Cc: Ian Molton <spyro@f2s.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* sh: Fix occasional flush_cache_4096() stack corruption.Paul Mundt2006-09-27
| | | | | | | | | | IRQs disabling in flush_cache_4096 for cache purge. Under certain workloads we would get an IRQ in the middle of a purge operation, and the cachelines would remain in an inconsistent state, leading to occasional stack corruption. Signed-off-by: Takeo Takahashi <takahashi.takeo@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Calculate shm alignment at runtime.Paul Mundt2006-09-27
| | | | | | | Set the SHM alignment at runtime, based off of probed cache desc. Optimize get_unmapped_area() to only colour align shared mappings. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Initial vsyscall page support.Paul Mundt2006-09-27
| | | | | | | | | | This implements initial support for the vsyscall page on SH. At the moment we leave it configurable due to having nommu to support from the same code base. We hook it up for the signal trampoline return at present, with more to be added later, once uClibc catches up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Selective flush_cache_mm() flushing.Paul Mundt2006-09-27
| | | | | | | | | | flush_cache_mm() wraps in to flush_cache_all(), which is rather excessive given that the number of PTEs within the specified context are generally quite low. Optimize for walking the mm's VMA list and selectively flushing the VMA ranges from the dcache. Invalidate the icache only if a VMA sets VM_EXEC. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: More intelligent entry_mask/way_size calculation.Paul Mundt2006-09-27
| | | | | | | Figure out the cache desc entry_mask at runtime, and remove hard-coded assumption about the cacheline size. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Support for L2 cache on newer SH-4A CPUs.Paul Mundt2006-09-27
| | | | | | | This implements preliminary support for the L2 caches found on newer SH-4A CPUs. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Update kexec support for API changes.Paul Mundt2006-09-27
| | | | | | This was falling a bit behind.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Optimized readsl()/writesl() support.Paul Mundt2006-09-27
| | | | | | Implement optimized copies of readsl()/writesl(). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Report movli.l/movco.l capabilities.Paul Mundt2006-09-27
| | | | | | | Add llsc to cpu_flags[] and comment cpu-features.h. Signed-off-by: Jamie Lenehan <nynaeve@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: CPU flags in AT_HWCAP in ELF auxvt.Paul Mundt2006-09-27
| | | | | | Encode processor flags in AT_HWCAP in the ELF auxiliary vector. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Add support for 4K stacks.Paul Mundt2006-09-27
| | | | | | | | | This enables support for 4K stacks on SH. Currently this depends on DEBUG_KERNEL, but likely all boards will switch to this as the default in the future. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Enable /proc/kcore support.Paul Mundt2006-09-27
| | | | | | This was previously unimplemented.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: stack debugging support.Paul Mundt2006-09-27
| | | | | | This adds a DEBUG_STACK_USAGE and DEBUG_STACKOVERFLOW for SH. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: select CONFIG_EMBEDDED.Paul Mundt2006-09-27
| | | | | | | This solution isn't very optimal, but it's generaly the behaviour that we want.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: machvec rework.Paul Mundt2006-09-27
| | | | | | | | | Some more machvec overhauling and setup code cleanup. Kill off get_system_type() and platform_setup(), we can do these both through the machvec. While we're add it, kill off more useless mach.c's and drop some legacy cruft from setup.c. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Solution Engine SH7343 board support.Paul Mundt2006-09-27
| | | | | | This adds support for the SE7343 board. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: SH7710VoIPGW board support.Paul Mundt2006-09-27
| | | | | | This adds support for the SH7710 VoIP Gateway board. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Cleanup IRQ disabling for hardirq handlers.Paul Mundt2006-09-27
| | | | | | | | The generic hardirq layer already takes care of a lot of the appropriate locking and disabling for us, no need to duplicate it in the handlers.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: maskreg IRQ support.Paul Mundt2006-09-27
| | | | | | | Formerly implemented by ADX, we can use this generically, so move it over. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Kill off dead boards.Paul Mundt2006-09-27
| | | | | | | None of these have been maintained in years, and no one seems to be interested in doing so, so just get rid of them. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Add support for cacheline poking through debugfs.Paul Mundt2006-09-27
| | | | | | | A simple debugging aid for easier visibility of the respective cachelines. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix memcpy() build error on sh4eb.Nobuhiro Iwamatsu2006-09-27
| | | | | | | A trivial bug breaking the build on sh4eb. Signed-off-by: Nobuhiro Iwamatsu <hemamu@t-base.ne.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Kill off the rest of the legacy rtc mess.Paul Mundt2006-09-27
| | | | | | | With the new RTC class driver, we can get rid of most of the old left over cruft. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: SHMIN board support.Takashi YOSHII2006-09-27
| | | | | | | This adds support for the SHMIN SH7706 board. Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Add support for SH7706/SH7710/SH7343 CPUs.Paul Mundt2006-09-27
| | | | | | | This adds support for the aforementioned CPU subtypes, and cleans up some build issues encountered as a result. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Add setup code for various CPU subtypes.Paul Mundt2006-09-27
| | | | | | | This adds some simple setup code for most of the CPU subtypes, primarily simple platform device registration. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: sem2mutex conversion for clock framework.Paul Mundt2006-09-27
| | | | | | Simple sem2mutex conversion. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: pselect6 and ppoll, along with signal trampoline rework.Paul Mundt2006-09-27
| | | | | | This implements support for ppoll() and pselect6().. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: __addr_ok() and other misc nommu fixups.Yoshinori Sato2006-09-27
| | | | | | | A few more outstanding nommu fixups.. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: __NR_restart_syscall support.Paul Mundt2006-09-27
| | | | | | This implements support for __NR_restart_syscall. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Various nommu fixes.Yoshinori Sato2006-09-27
| | | | | | | | This fixes up some of the various outstanding nommu bugs on SH. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Make PAGE_OFFSET configurable.Paul Mundt2006-09-27
| | | | | | | | nommu needs to be able to shift PAGE_OFFSET, so we switch it to a non-user-visible CONFIG_PAGE_OFFSET and use that in the few places where it matters. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Move voyagergx_reg.h to a more sensible place.Paul Mundt2006-09-27
| | | | | | | Other boards require this as well, so move it out of the rts7751r2d directory. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: math-emu supportTakashi YOSHII2006-09-27
| | | | | | | This implements initial math-emu support, aimed primarily at SH-3. Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Rename rtc_get/set_time() to avoid RTC_CLASS conflict.Paul Mundt2006-09-27
| | | | | | | We have a clash with RTC_CLASS over these names, so we change them.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fixup __strnlen_user() behaviour.Paul Mundt2006-09-27
| | | | | | | | | | Drop TIF_USERSPACE and add addr_limit to the thread_info struct. Subsequently, use that for address checking in strnlen_user() to ward off bogus -EFAULTs. Make __strnlen_user() return 0 on exception, rather than -EFAULT. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: More cosmetic cleanups and trivial fixes.Paul Mundt2006-09-27
| | | | | | Nothing exciting here, just trivial fixes.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fixup TEI IRQ requests in request_dma().Paul Mundt2006-09-27
| | | | | | If a channel is not TEI capable, don't try to request_irq().. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: G2 DMA IRQ and residue sampling.Paul Mundt2006-09-27
| | | | | | | | This fixes a long-standing FIXME for G2 DMA, where we finally wire up the IRQ handler and allow for sampling remaining bytes while in-flight. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: VoyagerGX cleanups and 8250 UART support.Paul Mundt2006-09-27
| | | | | | | | This adds the VoyagerGX UART to the RTS7751R2D setup code, and cleans up a few build issues. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Inhibit mapping PCI apertures through page tables.Paul Mundt2006-09-27
| | | | | | | | | | Inhibit mapping through page tables in __ioremap() for PCI memory apertures on SH7751 and SH7780-style PCI controllers, translation is not possible for these areas. For other users that map a small window in P1/P2 space, ioremap() traps that already, and should never make it to __ioremap(). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Consolidated SH7751/SH7780 PCI support.Paul Mundt2006-09-27
| | | | | | | | This cleans up quite a lot of the PCI mess that we currently have, and attempts to consolidate the duplication in the SH7780 and SH7751 PCI controllers. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: kgdb stub cleanups.Paul Mundt2006-09-27
| | | | | | | | Some kgdb cleanup. Move hexchars/highhex/lowhex to the header, so it can be reused by sh-sci. Also drop silly ctrl_inl/outl() overloading being done by the kgdb stub. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Use generic CONFIG_FRAME_POINTER.Paul Mundt2006-09-27
| | | | | | | We had our own version, which serves no purpose. Simply hook SH in to the generic one. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: APM/PM support.Andriy Skulysh2006-09-27
| | | | | | | | | This adds some simple PM stubs and the basic APM interfaces, primarily for use by hp6xx, where the existing userland expects it. Signed-off-by: Andriy Skulysh <askulysh@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: SE73180 updates for IRQ changes.Paul Mundt2006-09-27
| | | | | | | SE73180 can use the generic support, we just need to wire up the IRQ demuxing. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Make O= builds work again.Paul Mundt2006-09-27
| | | | | | Some of the paths were a bit broken, fix it up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>