linux-sg2042/arch/sparc64
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
..
boot [SPARC64]: Add .gitignore file for sparc64 boot images. 2006-02-05 00:15:11 -08:00
kernel [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -07:00
lib [SPARC64]: Fix register usage in xor_raid_4(). 2007-10-13 21:53:14 -07:00
math-emu [SPARC64] math-emu: Delete debugging printk left by previous commit. 2006-03-20 01:13:53 -08:00
mm hugepage: fix broken check for offset alignment in hugepage mappings 2007-08-31 01:42:23 -07:00
oprofile [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
prom [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
solaris [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
Kconfig NTP: move the cmos update code into ntp.c 2007-07-21 17:49:15 -07:00
Kconfig.debug Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION 2007-07-29 16:45:38 -07:00
Makefile [SPARC64]: Stop putting -finline-limit=XXX into CFLAGS 2005-12-20 14:53:05 -08:00
defconfig [SPARC64]: Update defconfig. 2007-09-16 09:52:36 -07:00