]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/suse-2.6.27.31/patches.fixes/uv-bios_call_reserve_page.diff
Add a patch to fix Intel E100 wake-on-lan problems.
[ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / uv-bios_call_reserve_page.diff
CommitLineData
6a930a95
BS
1From: Russ Anderson <rja@sgi.com>
2Subject: Add UV bios call to get the address of the reserved page.
3References: bnc#442455
4
5Add UV bios call to get the address of the reserved page.
6
7
8Signed-off-by: Russ Anderson <rja@sgi.com>
9Acked-by: Bernhard Walle <bwalle@suse.de>
10
11---
12 arch/x86/kernel/bios_uv.c | 11 +++++++++++
13 include/asm-x86/uv/bios.h | 5 ++++-
14 2 files changed, 15 insertions(+), 1 deletion(-)
15
16Index: linux/arch/x86/kernel/bios_uv.c
17===================================================================
18--- linux.orig/arch/x86/kernel/bios_uv.c 2008-11-05 11:13:15.289411601 -0600
19+++ linux/arch/x86/kernel/bios_uv.c 2008-11-05 11:14:11.428488248 -0600
20@@ -142,6 +142,17 @@ uv_bios_change_memprotect(u64 paddr, u64
21 }
22 EXPORT_SYMBOL_GPL(uv_bios_change_memprotect);
23
24+s64
25+uv_bios_reserved_page_pa(u64 buf, u64 *cookie, u64 *addr, u64 *len)
26+{
27+ s64 ret;
28+
29+ ret = uv_bios_call_irqsave(UV_BIOS_GET_PARTITION_ADDR, (u64)cookie,
30+ (u64)addr, buf, (u64)len, 0);
31+ return ret;
32+}
33+EXPORT_SYMBOL_GPL(uv_bios_reserved_page_pa);
34+
35 s64 uv_bios_freq_base(u64 clock_type, u64 *ticks_per_second)
36 {
37 return uv_bios_call(UV_BIOS_FREQ_BASE, clock_type,
38Index: linux/include/asm-x86/uv/bios.h
39===================================================================
40--- linux.orig/include/asm-x86/uv/bios.h 2008-11-05 11:13:15.301413114 -0600
41+++ linux/include/asm-x86/uv/bios.h 2008-11-05 11:14:11.436489257 -0600
42@@ -35,13 +35,15 @@ enum uv_bios_cmd {
43 UV_BIOS_FREQ_BASE,
44 UV_BIOS_WATCHLIST_ALLOC,
45 UV_BIOS_WATCHLIST_FREE,
46- UV_BIOS_MEMPROTECT
47+ UV_BIOS_MEMPROTECT,
48+ UV_BIOS_GET_PARTITION_ADDR
49 };
50
51 /*
52 * Status values returned from a BIOS call.
53 */
54 enum {
55+ BIOS_STATUS_MORE_PASSES = 1,
56 BIOS_STATUS_SUCCESS = 0,
57 BIOS_STATUS_UNIMPLEMENTED = -ENOSYS,
58 BIOS_STATUS_EINVAL = -EINVAL,
59@@ -102,6 +104,7 @@ extern int uv_bios_mq_watchlist_alloc(in
60 unsigned long *);
61 extern int uv_bios_mq_watchlist_free(int, int);
62 extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect);
63+extern s64 uv_bios_reserved_page_pa(u64, u64 *, u64 *, u64 *);
64
65 extern void uv_bios_init(void);
66