sh: fix up fallout from system.h disintegration.

Quite a bit of fallout all over the place, nothing terribly exciting.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
sh: dwarf unwinder depends on SHcompact.

Presently there's no SHmedia support plugged in for the dwarf unwinder.
While it's trivial to provide an SHmedia version of dwarf_read_arch_reg(),
the general sh64 case is more complicated in that the TLB miss handler
uses a locked down set of registers for optimization (including the frame
pointer) which we need for the unwind table generation.

While freeing up the frame pointer for use in the TLB miss handler is
reasonably straightforward, it's still more trouble than it's worth, so
we simply restrict the unwinder to 32-bit for now.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
sh: dma: Fix up device attribute mismatch from sysdev fallout.

This fixes up an attribute mismatch that was introduced in the
sysdev->struct device migration.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
sh: vsyscall: Fix up .eh_frame generation.

Some improper formatting caused the .eh_frame generation to fail,
resulting in gcc/g++ testsuite failures with regards to unwinding through
the vDSO. Now that someone is actually working on this on the gcc side
it's time to fix up the kernel side, too.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
serial: sh-sci: use serial_port_in/out vs sci_in/out.

Follows the 8250 change for pretty much the same rationale.

See commit "serial: use serial_port_in/out vs serial_in/out in 8250".

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Merge branches 'sh/urgent', 'sh/vsyscall' and 'common/serial-rework' into sh-latest
tile: fix multiple build failures from system.h dismantle

Commit bd119c69239322caafdb64517a806037d0d0c70a

    "Disintegrate asm/system.h for Tile"

created the asm/switch_to.h file, but did not add an include
of it to all its users.

Also, commit b4816afa3986704d1404fc48e931da5135820472

        "Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h"

introduced the concept of asm/cmpxchg.h but the tile arch
never got one.  Fork the cmpxchg content out of the asm/atomic.h
file to create one.

Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile/Kconfig: remove pointless "!M386" test.

Looks like a cut and paste bug from the x86 version.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile/Kconfig: rename tile_defconfig to tilepro_defconfig

We switched to using "tilepro" for the 32-bit stuff a while ago,
but missed this one usage.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile/Kconfig: don't specify CONFIG_PAGE_OFFSET for 64-bit builds

It's fixed at half the VA space and there's no point in configuring it.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: fix typo in <arch/spr_def.h>

We aren't yet using this definition in the kernel, but fix it up
before someone goes looking for it.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: revert comment for atomic64_add_unless().

It still returns whether @v was not @u, not the old value,
unlike __atomic_add_unless().

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Acked-by: Arun Sharma <asharma@fb.com>
arch/tile: fix gcc 4.6 warnings in <asm/bitops_64.h>

Fix some signedness and variable usage warnings in change_bit()
and test_and_change_bit().

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: use 0 for IRQ_RESCHEDULE instead of 1

This avoids assigning IRQ 0 to PCI devices, because we've seen that
doesn't always work well.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: avoid false corrupt frame warning in early boot

With lockstat we can end up trying to get a backtrace before
"high_memory" is initialized, so don't worry about range testing
if it is zero.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: make sure to build memcpy_user_64 without frame pointer

Add a comment explaining why this is important, and add a CFLAGS_REMOVE
clause to the Makefile to make sure it happens.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: various bugs in stack backtracer

Fix a long-standing bug in the stack backtracer where we would print
garbage to the console instead of kernel function names, if the kernel
wasn't built with symbol support (e.g. mboot).

Make sure to tag every line of userspace backtrace output if we actually
have the mmap_sem, since that way if there's no tag, we know that it's
because we couldn't trylock the semaphore.

Stop doing a TLB flush and examining page tables during backtrace.
Instead, just trust that __copy_from_user_inatomic() will properly fault
and return a failure, which it should do in all cases.

Fix a latent bug where the backtracer would directly examine a signal
context in user space, rather than copying it safely to kernel memory
first.  This meant that a race with another thread could potentially
have caused a kernel panic.

Guard against unaligned sp when trying to restart backtrace at an
interrupt or signal handler point in the kernel backtracer.

Report kernel symbolic information for the call instruction rather
than for the following instruction.  We still report the actual numeric
address corresponding to the instruction after the call, for the sake
of consistency with the normal expectations for stack backtracers.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: work around a hardware issue with the return-address stack

In certain circumstances we need to do a bunch of jump-and-link
instructions to fill the hardware return-address stack with nonzero values.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: fix up some minor trap handling issues

We now respond to MEM_ERROR traps (e.g. an atomic instruction to
non-cacheable memory) with a SIGBUS.

We also no longer generate a console crash message if a user
process die due to a SIGTRAP.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
arch/tile: fix a couple of comments that needed updating

Not associated with any code changes, so I'm just lumping these
comment changes into a commit by themselves.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>