kernel-fxtec-pro1x/arch/sparc64/kernel
David S. Miller b80e699812 [SPARC64]: Use sun4v VIRQ interfaces as intended.
We were simply concatenating the devhandle and devino and using that
as the cookie, which defeats the entire purpose of the VIRQ hypervisor
interfaces.

Now that we use physical addresses for the INO buckets, we can
allocate them dynamically for VIRQs and encode the cookies as
~__pa(bucket).  This allows us to test for and decode the cookie with
a simple:

	brlz	$reg1, 1f
	 xnor	$reg1, %g0, $reg2

sequence.

This works because bit 64 is never set in traditional
INO vectors, and it is also never set in a physical
address.  So xnor'ing the physical address of the bucket
always gives us a negative number, and thus a unique
condition we can test cheaply.

Inspired by ideas from Greg Onufer.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-13 21:53:16 -07:00
..
asm-offsets.c
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
auxio.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
binfmt_aout32.c [SPARC64]: Fix put_user() calls in binfmt_aout32.c 2007-09-30 17:00:34 -07:00
binfmt_elf32.c
central.c [SPARC64]: Fix section mismatch warnings in arch/sparc64/kernel/console.c 2007-05-07 00:00:37 -07:00
chmc.c
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
dtlb_prot.S
ebus.c [SPARC]: Fix EBUS use of uninitialized variable. 2007-09-27 13:09:28 -07:00
entry.S [SPARC64]: Access ivector_table[] using physical addresses. 2007-10-13 21:53:15 -07:00
etrap.S
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.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
iommu_common.c
iommu_common.h
irq.c [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -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
ldc.c [SPARC64]: Abstract out mdesc accesses for better MD update handling. 2007-07-16 04:04:28 -07:00
Makefile [SPARC64]: Consolidate MSI support code. 2007-10-13 21:53:13 -07:00
mdesc.c [SPARC64]: Warn user if cpu is ignored. 2007-09-16 14:45:06 -07:00
module.c
of_device.c [SPARC/64]: Prepare to remove of_platform_driver name. 2007-10-13 21:53:11 -07:00
pci.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_common.c [SPARC64]: Temporary workaround for PCI-E slot on T1000. 2007-10-03 21:37:57 -07:00
pci_fire.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_impl.h [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_msi.c [SPARC64]: Consolidate MSI support code. 2007-10-13 21:53:13 -07:00
pci_psycho.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -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]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_sun4v.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_sun4v.h
pci_sun4v_asm.S
power.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
process.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
prom.c [SPARC64]: Fix 'niu' complex IRQ probing. 2007-10-04 15:03:35 -07:00
ptrace.c
rtrap.S
sbus.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
semaphore.c
setup.c [SPARC]: Fix serial console device detection. 2007-07-20 16:59:26 -07:00
signal.c [SPARC64]: Kill bogus set_fs(KERNEL_DS) in do_rt_sigreturn(). 2007-07-17 14:37:54 -07:00
signal32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
smp.c [SPARC64]: check fork_idle() error 2007-10-04 14:55:59 -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
sun4v_ivec.S [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -07:00
sun4v_tlb_miss.S
sunos_ioctl32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sys32.S
sys_sparc.c [SPARC64]: Fix bugs in SYSV IPC handling in 64-bit processes. 2007-10-13 21:53:12 -07:00
sys_sparc32.c [SPARC]: Add sys_fallocate() entries. 2007-07-19 21:26:47 -07:00
sys_sunos32.c
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 [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
trampoline.S [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
traps.c [SPARC64]: Access ivector_table[] using physical addresses. 2007-10-13 21:53:15 -07:00
tsb.S
ttable.S
una_asm.S
unaligned.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
us2e_cpufreq.c [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core 2007-10-04 18:40:57 -04:00
us3_cpufreq.c
vio.c [SPARC64]: VIO device addition log message level is too high. 2007-10-03 21:23:40 -07:00
viohs.c viohs: extern on function definition 2007-07-26 11:11:56 -07:00
visemul.c
vmlinux.lds.S [SPARC64]: beautify vmlinux.lds 2007-10-13 21:53:10 -07:00
winfixup.S