linux/arch/sparc64/kernel
David S. Miller 301feb6524 [SPARC64]: Fix lockdep, particularly on SMP.
As noted by Al Viro, when we try to call prom_set_trap_table()
in the SMP trampoline code we try to take the PROM call spinlock
which doesn't work because the current thread pointer isn't
valid yet and lockdep depends upon that being correct.

Furthermore, we cannot set the current thread pointer register
because it can't be properly dereferenced until we return from
prom_set_trap_table().  Kernel TLB misses only work after that
call.

So do the PROM call to set the trap table directly instead of
going through the OBP library C code, and thus avoid the lock
altogether.

These calls are guarenteed to be serialized fully.

Since there are now no calls to the prom_set_trap_table{_sun4v}()
library functions, they can be deleted.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-09-16 11:51:15 -07:00
..
asm-offsets.c kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
auxio.c [SPARC/64] Rename some functions like PowerPC 2007-07-20 14:24:53 +10:00
binfmt_aout32.c [PATCH] struct path: convert sparc64 2006-12-08 08:28:50 -08:00
binfmt_elf32.c [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
central.c [SPARC64]: Fix section mismatch warnings in arch/sparc64/kernel/console.c 2007-05-07 00:00:37 -07:00
chmc.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu.c [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00
ds.c [SPARC64]: Do not flood log with failed DS messages. 2007-07-20 17:14:38 -07:00
dtlb_miss.S [SPARC64]: More TLB/TSB handling fixes. 2006-03-20 01:13:34 -08:00
dtlb_prot.S [SPARC64]: Fix boot failures on SunBlade-150 2005-10-12 12:22:46 -07:00
ebus.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
entry.S [SPARC64]: Fix args to sun4v_ldc_revoke(). 2007-06-13 00:01:27 -07:00
etrap.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
hvapi.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
hvtramp.S [SPARC64]: Fix memory leak when cpu hotplugging. 2007-08-08 17:33:52 -07:00
idprom.c
init_task.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
iommu_common.c
iommu_common.h
iommu.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
irq.c [SPARC64]: Fix several bugs in MSI handling. 2007-08-30 23:06:51 -07:00
isa.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
itlb_miss.S [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. 2007-05-29 02:50:15 -07:00
kprobes.c [SPARC64]: Optimize fault kprobe handling just like powerpc. 2007-05-08 18:25:14 -07:00
ktlb.S [SPARC64]: Get DEBUG_PAGEALLOC working again. 2007-03-16 17:20:28 -07:00
ldc.c [SPARC64]: Abstract out mdesc accesses for better MD update handling. 2007-07-16 04:04:28 -07:00
Makefile [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
mdesc.c [SPARC64]: Allow userspace to get at the machine description. 2007-08-15 21:02:23 -07:00
module.c [SPARC]: Handle UNWIND_INFO properly. 2006-05-12 12:45:50 -07:00
of_device.c [SPARC]: Make sure dev_archdata is filled in for all devices. 2007-07-20 17:13:42 -07:00
pci_common.c [SPARC64]: Fix sun4u PCI config space accesses on sun4u. 2007-07-30 00:27:29 -07:00
pci_fire.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
pci_impl.h [SPARC64] PCI: Consolidate PCI access code into pci_common.c 2007-05-09 02:35:27 -07:00
pci_psycho.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
pci_sabre.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
pci_schizo.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
pci_sun4v_asm.S [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci_sun4v.c [SPARC64]: Fix several bugs in MSI handling. 2007-08-30 23:06:51 -07:00
pci_sun4v.h [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci.c [SPARC64]: Fix booting on V100 systems. 2007-09-12 10:15:59 +02:00
power.c [SPARC]: Fix serial console device detection. 2007-07-20 16:59:26 -07:00
process.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
prom.c [SPARC]: Centralize find_in_proplist() instead of duplicating N times. 2007-08-07 18:46:36 -07:00
ptrace.c [SPARC{32,64}]: Propagate ptrace_traceme() return value. 2006-12-10 02:40:27 -08:00
rtrap.S [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
sbus.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
semaphore.c [SPARC64]: Avoid membar instructions in delay slots. 2005-06-27 15:42:04 -07:00
setup.c [SPARC]: Fix serial console device detection. 2007-07-20 16:59:26 -07:00
signal32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
signal.c [SPARC64]: Kill bogus set_fs(KERNEL_DS) in do_rt_sigreturn(). 2007-07-17 14:37:54 -07:00
smp.c [SPARC64]: Fix memory leak when cpu hotplugging. 2007-08-08 17:33:52 -07:00
sparc64_ksyms.c [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00
sstate.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
stacktrace.c simplify the stacktrace code 2007-05-08 11:14:58 -07:00
starfire.c [SPARC64]: Kill starfire_cookie from SBUS/PCI. 2006-06-29 16:37:08 -07:00
sun4v_ivec.S [SPARC64]: Use machine description and OBP properly for cpu probing. 2007-05-29 02:49:41 -07:00
sun4v_tlb_miss.S [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. 2007-01-26 18:56:01 -08:00
sunos_ioctl32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sys32.S [SPARC64]: Fix arg passing to compat_sys_ipc(). 2007-04-13 13:27:08 -07:00
sys_sparc32.c [SPARC]: Add sys_fallocate() entries. 2007-07-19 21:26:47 -07:00
sys_sparc.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sys_sunos32.c [SPARC]: avoid CHILD_MAX and OPEN_MAX constants 2007-04-12 13:13:42 -07:00
sysfs.c [SPARC64]: More sensible udelay implementation. 2007-07-16 04:05:02 -07:00
systbls.S [SPARC]: Add sys_fallocate() entries. 2007-07-19 21:26:47 -07:00
time.c [SPARC64]: Handle mostek clock type in mini_rtc driver. 2007-07-30 00:27:32 -07:00
trampoline.S [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
traps.c [SPARC64]: Fix show_stack() when stack argument is NULL. 2007-07-30 00:27:38 -07:00
tsb.S [SPARC64]: store-init needs trailing membar. 2007-03-19 13:27:33 -07:00
ttable.S [SPARC64]: Unify timer interrupt handler. 2007-04-26 01:54:11 -07:00
una_asm.S [SPARC64]: Mark __ex_table section correctly. 2006-03-04 23:23:56 -08:00
unaligned.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
us2e_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
us3_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
vio.c [SPARC]: Centralize find_in_proplist() instead of duplicating N times. 2007-08-07 18:46:36 -07:00
viohs.c viohs: extern on function definition 2007-07-26 11:11:56 -07:00
visemul.c [SPARC64]: Call do_mathemu on illegal instruction traps too. 2006-12-10 02:39:32 -08:00
vmlinux.lds.S [SPARC]: Add missing NOTES section. 2007-07-24 13:24:34 -07:00
winfixup.S [SPARC64]: Fix unaligned access winfxup handling on SUN4V. 2006-03-20 01:13:39 -08:00