summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/bios_uv.c
diff options
context:
space:
mode:
authorRobin Holt <holt@sgi.com>2009-12-15 16:47:56 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 07:20:14 -0800
commitc2c9f115741453715d6b4da1cd2de65af8c7ad86 (patch)
tree8e20a0641c622b07b3c7380f81a5552e20e1c8d1 /arch/x86/kernel/bios_uv.c
parent289750d1f1fd4a715baa2a2c6dd0cec2b8317fd7 (diff)
downloadlinux-c2c9f115741453715d6b4da1cd2de65af8c7ad86.tar.gz
linux-c2c9f115741453715d6b4da1cd2de65af8c7ad86.tar.bz2
linux-c2c9f115741453715d6b4da1cd2de65af8c7ad86.zip
x86: uv: update XPC to handle updated BIOS interface
The UV BIOS has moved the location of some of their pointers to the "partition reserved page" from memory into a uv hub MMR. The GRU does not support bcopy operations from MMR space so we need to special case the MMR addresses using VLOAD operations. Additionally, the BIOS call for registering a message queue watchlist has removed the 'blade' value and eliminated the structure that was being passed in. This is also reflected in this patch. Signed-off-by: Robin Holt <holt@sgi.com> Cc: Jack Steiner <steiner@sgi.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86/kernel/bios_uv.c')
-rw-r--r--arch/x86/kernel/bios_uv.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/x86/kernel/bios_uv.c b/arch/x86/kernel/bios_uv.c
index 63a88e1f987d..b0206a211b09 100644
--- a/arch/x86/kernel/bios_uv.c
+++ b/arch/x86/kernel/bios_uv.c
@@ -101,21 +101,17 @@ s64 uv_bios_get_sn_info(int fc, int *uvtype, long *partid, long *coher,
}
int
-uv_bios_mq_watchlist_alloc(int blade, unsigned long addr, unsigned int mq_size,
+uv_bios_mq_watchlist_alloc(unsigned long addr, unsigned int mq_size,
unsigned long *intr_mmr_offset)
{
- union uv_watchlist_u size_blade;
u64 watchlist;
s64 ret;
- size_blade.size = mq_size;
- size_blade.blade = blade;
-
/*
* bios returns watchlist number or negative error number.
*/
ret = (int)uv_bios_call_irqsave(UV_BIOS_WATCHLIST_ALLOC, addr,
- size_blade.val, (u64)intr_mmr_offset,
+ mq_size, (u64)intr_mmr_offset,
(u64)&watchlist, 0);
if (ret < BIOS_STATUS_SUCCESS)
return ret;