OpenCloudOS-Kernel/arch/sparc/include/asm
David S. Miller 7cafc0b8bf sparc64: Fix return from trap window fill crashes.
We must handle data access exception as well as memory address unaligned
exceptions from return from trap window fill faults, not just normal
TLB misses.

Otherwise we can get an OOPS that looks like this:

ld-linux.so.2(36808): Kernel bad sw trap 5 [#1]
CPU: 1 PID: 36808 Comm: ld-linux.so.2 Not tainted 4.6.0 #34
task: fff8000303be5c60 ti: fff8000301344000 task.ti: fff8000301344000
TSTATE: 0000004410001601 TPC: 0000000000a1a784 TNPC: 0000000000a1a788 Y: 00000002    Not tainted
TPC: <do_sparc64_fault+0x5c4/0x700>
g0: fff8000024fc8248 g1: 0000000000db04dc g2: 0000000000000000 g3: 0000000000000001
g4: fff8000303be5c60 g5: fff800030e672000 g6: fff8000301344000 g7: 0000000000000001
o0: 0000000000b95ee8 o1: 000000000000012b o2: 0000000000000000 o3: 0000000200b9b358
o4: 0000000000000000 o5: fff8000301344040 sp: fff80003013475c1 ret_pc: 0000000000a1a77c
RPC: <do_sparc64_fault+0x5bc/0x700>
l0: 00000000000007ff l1: 0000000000000000 l2: 000000000000005f l3: 0000000000000000
l4: fff8000301347e98 l5: fff8000024ff3060 l6: 0000000000000000 l7: 0000000000000000
i0: fff8000301347f60 i1: 0000000000102400 i2: 0000000000000000 i3: 0000000000000000
i4: 0000000000000000 i5: 0000000000000000 i6: fff80003013476a1 i7: 0000000000404d4c
I7: <user_rtt_fill_fixup+0x6c/0x7c>
Call Trace:
 [0000000000404d4c] user_rtt_fill_fixup+0x6c/0x7c

The window trap handlers are slightly clever, the trap table entries for them are
composed of two pieces of code.  First comes the code that actually performs
the window fill or spill trap handling, and then there are three instructions at
the end which are for exception processing.

The userland register window fill handler is:

	add	%sp, STACK_BIAS + 0x00, %g1;		\
	ldxa	[%g1 + %g0] ASI, %l0;			\
	mov	0x08, %g2;				\
	mov	0x10, %g3;				\
	ldxa	[%g1 + %g2] ASI, %l1;			\
	mov	0x18, %g5;				\
	ldxa	[%g1 + %g3] ASI, %l2;			\
	ldxa	[%g1 + %g5] ASI, %l3;			\
	add	%g1, 0x20, %g1;				\
	ldxa	[%g1 + %g0] ASI, %l4;			\
	ldxa	[%g1 + %g2] ASI, %l5;			\
	ldxa	[%g1 + %g3] ASI, %l6;			\
	ldxa	[%g1 + %g5] ASI, %l7;			\
	add	%g1, 0x20, %g1;				\
	ldxa	[%g1 + %g0] ASI, %i0;			\
	ldxa	[%g1 + %g2] ASI, %i1;			\
	ldxa	[%g1 + %g3] ASI, %i2;			\
	ldxa	[%g1 + %g5] ASI, %i3;			\
	add	%g1, 0x20, %g1;				\
	ldxa	[%g1 + %g0] ASI, %i4;			\
	ldxa	[%g1 + %g2] ASI, %i5;			\
	ldxa	[%g1 + %g3] ASI, %i6;			\
	ldxa	[%g1 + %g5] ASI, %i7;			\
	restored;					\
	retry; nop; nop; nop; nop;			\
	b,a,pt	%xcc, fill_fixup_dax;			\
	b,a,pt	%xcc, fill_fixup_mna;			\
	b,a,pt	%xcc, fill_fixup;

And the way this works is that if any of those memory accesses
generate an exception, the exception handler can revector to one of
those final three branch instructions depending upon which kind of
exception the memory access took.  In this way, the fault handler
doesn't have to know if it was a spill or a fill that it's handling
the fault for.  It just always branches to the last instruction in
the parent trap's handler.

For example, for a regular fault, the code goes:

winfix_trampoline:
	rdpr	%tpc, %g3
	or	%g3, 0x7c, %g3
	wrpr	%g3, %tnpc
	done

All window trap handlers are 0x80 aligned, so if we "or" 0x7c into the
trap time program counter, we'll get that final instruction in the
trap handler.

On return from trap, we have to pull the register window in but we do
this by hand instead of just executing a "restore" instruction for
several reasons.  The largest being that from Niagara and onward we
simply don't have enough levels in the trap stack to fully resolve all
possible exception cases of a window fault when we are already at
trap level 1 (which we enter to get ready to return from the original
trap).

This is executed inline via the FILL_*_RTRAP handlers.  rtrap_64.S's
code branches directly to these to do the window fill by hand if
necessary.  Now if you look at them, we'll see at the end:

	    ba,a,pt    %xcc, user_rtt_fill_fixup;
	    ba,a,pt    %xcc, user_rtt_fill_fixup;
	    ba,a,pt    %xcc, user_rtt_fill_fixup;

And oops, all three cases are handled like a fault.

This doesn't work because each of these trap types (data access
exception, memory address unaligned, and faults) store their auxiliary
info in different registers to pass on to the C handler which does the
real work.

So in the case where the stack was unaligned, the unaligned trap
handler sets up the arg registers one way, and then we branched to
the fault handler which expects them setup another way.

So the FAULT_TYPE_* value ends up basically being garbage, and
randomly would generate the backtrace seen above.

Reported-by: Nick Alcock <nix@esperi.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-05-29 18:55:54 -07:00
..
Kbuild locking/rwsem, sparc: Drop superfluous arch specific implementation 2016-04-13 10:42:19 +02:00
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
apb.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h sparc: Add asm/asm.h 2008-12-09 00:50:13 -08:00
asmmacro.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
atomic.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
atomic_32.h atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
atomic_64.h atomic, arch: Audit atomic_{read,set}() 2015-09-23 09:54:28 +02:00
auxio.h sparc32: fix sparse warnings in auxio_32.c 2014-04-29 01:12:26 -04:00
auxio_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
auxio_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
backoff.h sparc64: Improvde documentation and readability of atomic backoff code. 2012-10-28 13:04:47 -07:00
barrier.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
barrier_32.h sparc: reuse asm-generic/barrier.h 2016-01-12 20:46:49 +02:00
barrier_64.h sparc: define __smp_xxx 2016-01-12 20:46:57 +02:00
bbc.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
bitext.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bitops.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
bitops_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
bitops_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
btext.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bug.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bugs.h sparc64: Implement SSTATE purely using notifiers and initcalls. 2008-09-02 00:49:38 -07:00
cache.h sparc32: Remove completely unused code from asm/cache.h 2012-05-19 21:15:37 -07:00
cacheflush.h sparc32: use flushi when run-time patching in per_cpu_patch 2012-05-20 13:33:36 -07:00
cacheflush_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
cacheflush_64.h mm/debug_pagealloc: fix build failure on ppc and some other archs 2015-02-05 13:35:30 -08:00
cachetlb_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
chafsr.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
checksum.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
checksum_32.h ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short 2016-03-13 23:55:13 -04:00
checksum_64.h ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short 2016-03-13 23:55:13 -04:00
chmctrl.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
clock.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
cmpxchg.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
cmpxchg_32.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
cmpxchg_64.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
compat.h sparc/compat: provide an accurate in_compat_syscall implementation 2016-03-22 15:36:02 -07:00
compat_signal.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
contregs.h sparc32: Remove sun4{,c} control reg definitions from contregs.h. 2012-05-11 21:29:17 -07:00
cpu_type.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
cpudata.h sparc: fix sparse warnings in cpu.c 2014-04-29 01:12:25 -04:00
cpudata_32.h sparc: Replace __get_cpu_var uses 2014-08-26 13:45:55 -04:00
cpudata_64.h sparc64: Setup sysfs to mark LDOM sockets, cores and threads correctly 2015-04-22 15:42:56 -04:00
current.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
dcr.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
dcu.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
delay.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
delay_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
delay_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
device.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
dma-mapping.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dma.h sparc32: Convert mmu_* interfaces from btfixup to method ops. 2012-05-13 13:57:05 -07:00
ebus_dma.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ecc.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
eeprom.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
elf.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
elf_32.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
elf_64.h sparc64: Add ADI capability to cpu capabilities 2015-12-24 12:05:06 -05:00
estate.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
fb.h sparc: Really fix "console=" for serial consoles. 2010-08-16 12:26:09 -07:00
fbio.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
fhc.h sparc64: Rewrite central driver. 2008-08-31 20:56:15 -07:00
floppy.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
floppy_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
floppy_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
fpumacro.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
ftrace.h ftrace: Format MCOUNT_ADDR address as type unsigned long 2015-07-20 22:30:53 -04:00
futex.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
futex_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
futex_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
hardirq.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
hardirq_32.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
hardirq_64.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
head.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
head_32.h sparc32: drop hardcoding trap_level in kgdb_trap 2016-05-20 17:55:41 -07:00
head_64.h sparc64: Fix return from trap window fill crashes. 2016-05-29 18:55:54 -07:00
hibernate.h sparc64: Hibernation support 2013-03-20 11:06:54 -07:00
highmem.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
hugetlb.h mm/hugetlb: remove arch_prepare/release_hugepage from arch headers 2015-06-25 17:00:35 -07:00
hvtramp.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
hw_irq.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
hypervisor.h sparc: perf: Add support M7 processor 2015-03-19 18:54:49 -07:00
ide.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
idprom.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
intr_queue.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
io-unit.h sparc32: fix sparse warning in io-unit.c 2014-05-18 19:01:26 -07:00
io.h sparc: io: remove duplicate relaxed accessors on sparc32 2014-11-19 10:19:45 +01:00
io_32.h arch/*/io.h: Add ioremap_wt() to all architectures 2015-06-07 15:28:57 +02:00
io_64.h arch/*/io.h: Add ioremap_wt() to all architectures 2015-06-07 15:28:57 +02:00
ioctls.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
iommu.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
iommu_32.h sparc32: fix sparse warning in iommu.c 2014-05-18 19:01:26 -07:00
iommu_64.h sparc: Make sparc64 use scalable lib/iommu-common.c functions 2015-04-18 12:32:59 -07:00
irq.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
irq_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
irq_64.h sparc64: sparse irq 2014-10-05 16:53:40 -07:00
irqflags.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
irqflags_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
irqflags_64.h sparc/irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-06 08:00:29 -07:00
jump_label.h locking/static_keys: Add a new static_key interface 2015-08-03 11:34:15 +02:00
kdebug.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
kdebug_32.h sparc32: kernel/trace/trace.c wants DIE_OOPS 2008-11-01 21:44:01 -07:00
kdebug_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
kgdb.h sparc32: drop hardcoding trap_level in kgdb_trap 2016-05-20 17:55:41 -07:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h sparc64: fix sparse warning in kprobes.c 2014-05-18 19:01:34 -07:00
ldc.h sparc/ldc: create separate ldc_unbind from ldc_free 2014-12-11 18:52:45 -08:00
leon.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
leon_amba.h sparc32, leon: Remove separate "ticker" timer for SMP 2013-06-19 02:10:29 -07:00
leon_pci.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
lsu.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
machines.h sparc32: Trivial removal of sun4c references in comments. 2012-05-12 00:35:45 -07:00
mbus.h sparc32: Remove cypress cpu support. 2012-05-15 10:22:00 -07:00
mc146818rtc.h sparc32: fix sparse warnings in time_32.c 2014-05-18 19:01:27 -07:00
mc146818rtc_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
mc146818rtc_64.h sparc64: Use generic CMOS driver. 2008-08-29 14:16:48 -07:00
mdesc.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
memctrl.h sparc64: Add generic interface for registering a dimm printing handler. 2008-08-24 22:08:34 -07:00
mman.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
mmu.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
mmu_32.h sparc32: add irq + smp declarations to headers 2011-03-16 18:19:08 -07:00
mmu_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
mmu_context.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
mmu_context_32.h sparc32: centralize all mmu context handling in srmmu.c 2012-07-26 16:46:16 -07:00
mmu_context_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
msi.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
mxcc.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
nmi.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ns87303.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
obio.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
openprom.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
oplib.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
oplib_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
oplib_64.h sparc64: Fix register corruption in top-most kernel stack frame during boot. 2014-10-24 09:52:49 -07:00
page.h sparc: move page_to_phys to page.h 2014-05-02 01:30:20 -04:00
page_32.h sparc32: fix build with STRICT_MM_TYPECHECKS 2016-05-20 17:55:42 -07:00
page_64.h sparc64: Adjust vmalloc region size based upon available virtual address bits. 2014-10-05 16:53:40 -07:00
parport.h sparc: include: asm: drop owner assignment from platform_drivers 2014-10-20 16:20:14 +02:00
pbm.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
pci.h PCI: Move pci_dma_* helpers to common code 2016-03-07 10:40:02 -06:00
pci_32.h PCI: Remove unused pci_dma_burst_advice() 2015-06-08 07:56:43 -05:00
pci_64.h PCI: Remove unused pci_dma_burst_advice() 2015-06-08 07:56:43 -05:00
pcic.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
pcr.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
percpu.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
percpu_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
percpu_64.h sparc64: Get rid of real_setup_per_cpu_areas(). 2009-06-16 04:56:23 -07:00
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
pgalloc.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
pgalloc_32.h sparc32: drop superfluous cast in calls to __nocache_pa() 2016-05-20 17:55:42 -07:00
pgalloc_64.h sparc64: Switch to 4-level page tables. 2014-10-05 16:53:38 -07:00
pgtable.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
pgtable_32.h sparc32: fix build with STRICT_MM_TYPECHECKS 2016-05-20 17:55:42 -07:00
pgtable_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2016-05-22 19:24:13 -07:00
pgtsrmmu.h sparc: drop pte_file()-related helpers 2015-02-10 14:30:33 -08:00
pil.h sparc64: Reschedule KGDB capture to a software interrupt. 2009-03-18 23:51:57 -07:00
processor.h sparc: reuse asm-generic/barrier.h 2016-01-12 20:46:49 +02:00
processor_32.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
processor_64.h sparc: Fix misspellings in comments. 2016-03-20 21:28:58 -07:00
prom.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
psr.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
ptrace.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ross.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
sbi.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
scratchpad.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
seccomp.h sparc: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
setup.h sparc64: Fix register corruption in top-most kernel stack frame during boot. 2014-10-24 09:52:49 -07:00
sfafsr.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
sfp-machine.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
sfp-machine_32.h sparc32: remove cast from output constraints in math asm statements 2014-05-18 19:01:28 -07:00
sfp-machine_64.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
shmparam.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
shmparam_32.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
shmparam_64.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
sigcontext.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
siginfo.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
signal.h consolidate kernel-side struct sigaction declarations 2013-02-03 15:09:22 -05:00
smp.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
smp_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
smp_64.h sparc64: fix sparse warnings in smp_64.c 2014-05-18 19:01:31 -07:00
sparsemem.h sparc64: Fix inconsistent max-physical-address defines. 2013-11-12 15:22:34 -08:00
spinlock.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
spinlock_32.h sparc32: unbreak arch_write_unlock() 2011-08-15 14:35:19 -07:00
spinlock_64.h sparc64: remove unnecessary macros from spinlock_64.h 2011-08-15 14:35:18 -07:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spitfire.h sparc64: recognize and support Sonoma CPU type 2016-04-21 16:43:47 -04:00
stacktrace.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
starfire.h arch: sparc: kernel: starfire.c: Remove unused function 2015-03-01 21:33:58 -08:00
string.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
string_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
string_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
sunbpp.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
swift.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
switch_to.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
switch_to_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
switch_to_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
syscall.h sparc/syscall: fix syscall_get_arch 2016-03-22 15:36:02 -07:00
syscalls.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
termbits.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
termios.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
thread_info.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
thread_info_32.h sparc: Fix execution domain removal 2015-04-12 21:03:31 +02:00
thread_info_64.h sparc: Remove signal translation and exec_domain 2015-04-12 21:03:21 +02:00
timer.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
timer_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
timer_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
timex.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
timex_32.h sparc32: generic clockevent support 2012-04-15 10:28:50 -07:00
timex_64.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
tlb.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
tlb_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
tlb_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
tlbflush.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
tlbflush_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
tlbflush_64.h sparc64: Reduce TLB flushes during hugepte changes 2016-05-20 18:44:27 -07:00
topology.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
topology_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
topology_64.h sparc64: Fix numa distance values 2015-11-04 12:14:49 -08:00
trap_block.h sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE 2015-05-31 22:15:01 -07:00
traps.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
tsb.h sparc: Fix misspellings in comments. 2016-03-20 21:28:58 -07:00
tsunami.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
ttable.h sparc64: Fix return from trap window fill crashes. 2016-05-29 18:55:54 -07:00
turbosparc.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
uaccess.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
uaccess_32.h put the remnants of ..._user_ret() to rest 2016-01-04 10:28:06 -05:00
uaccess_64.h put the remnants of ..._user_ret() to rest 2016-01-04 10:28:06 -05:00
unaligned.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
upa.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
user.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
vaddrs.h sparc32: drop fixmap.h 2012-07-26 16:46:16 -07:00
vga.h BUG: headers with BUG/BUG_ON etc. need linux/bug.h 2012-03-04 17:54:34 -05:00
viking.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
vio.h vio: create routines for inc,dec vio dring indexes 2014-12-11 18:52:45 -08:00
visasm.h sparc64: Fix userspace FPU register corruptions. 2015-08-06 19:13:25 -07:00
winmacro.h sparc32: Implement hard_smp_processor_id() via instruction patching. 2012-05-14 13:31:38 -07:00
xor.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
xor_32.h sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
xor_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00