diff options
-rw-r--r-- | arch/x86/include/asm/uv/bios.h | 2 | ||||
-rw-r--r-- | arch/x86/kernel/bios_uv.c | 4 | ||||
-rw-r--r-- | drivers/misc/sgi-xp/xpc_uv.c | 8 |
3 files changed, 6 insertions, 8 deletions
diff --git a/arch/x86/include/asm/uv/bios.h b/arch/x86/include/asm/uv/bios.h index da1c4e8e78fc..7ed17ff502b9 100644 --- a/arch/x86/include/asm/uv/bios.h +++ b/arch/x86/include/asm/uv/bios.h | |||
@@ -100,7 +100,7 @@ extern s64 uv_bios_call_reentrant(enum uv_bios_cmd, u64, u64, u64, u64, u64); | |||
100 | 100 | ||
101 | extern s64 uv_bios_get_sn_info(int, int *, long *, long *, long *); | 101 | extern s64 uv_bios_get_sn_info(int, int *, long *, long *, long *); |
102 | extern s64 uv_bios_freq_base(u64, u64 *); | 102 | extern s64 uv_bios_freq_base(u64, u64 *); |
103 | extern int uv_bios_mq_watchlist_alloc(int, void *, unsigned int, | 103 | extern int uv_bios_mq_watchlist_alloc(int, unsigned long, unsigned int, |
104 | unsigned long *); | 104 | unsigned long *); |
105 | extern int uv_bios_mq_watchlist_free(int, int); | 105 | extern int uv_bios_mq_watchlist_free(int, int); |
106 | extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect); | 106 | extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect); |
diff --git a/arch/x86/kernel/bios_uv.c b/arch/x86/kernel/bios_uv.c index d22d0f1bbea0..2a0a2a3cac26 100644 --- a/arch/x86/kernel/bios_uv.c +++ b/arch/x86/kernel/bios_uv.c | |||
@@ -101,15 +101,13 @@ s64 uv_bios_get_sn_info(int fc, int *uvtype, long *partid, long *coher, | |||
101 | } | 101 | } |
102 | 102 | ||
103 | int | 103 | int |
104 | uv_bios_mq_watchlist_alloc(int blade, void *mq, unsigned int mq_size, | 104 | uv_bios_mq_watchlist_alloc(int blade, unsigned long addr, unsigned int mq_size, |
105 | unsigned long *intr_mmr_offset) | 105 | unsigned long *intr_mmr_offset) |
106 | { | 106 | { |
107 | union uv_watchlist_u size_blade; | 107 | union uv_watchlist_u size_blade; |
108 | unsigned long addr; | ||
109 | u64 watchlist; | 108 | u64 watchlist; |
110 | s64 ret; | 109 | s64 ret; |
111 | 110 | ||
112 | addr = (unsigned long)mq; | ||
113 | size_blade.size = mq_size; | 111 | size_blade.size = mq_size; |
114 | size_blade.blade = blade; | 112 | size_blade.blade = blade; |
115 | 113 | ||
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 684b2dd17583..91a55b1b1037 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c | |||
@@ -119,16 +119,16 @@ xpc_gru_mq_watchlist_alloc_uv(struct xpc_gru_mq_uv *mq) | |||
119 | int ret; | 119 | int ret; |
120 | 120 | ||
121 | #if defined CONFIG_X86_64 | 121 | #if defined CONFIG_X86_64 |
122 | ret = uv_bios_mq_watchlist_alloc(mq->mmr_blade, mq->address, mq->order, | 122 | ret = uv_bios_mq_watchlist_alloc(mq->mmr_blade, uv_gpa(mq->address), |
123 | &mq->mmr_offset); | 123 | mq->order, &mq->mmr_offset); |
124 | if (ret < 0) { | 124 | if (ret < 0) { |
125 | dev_err(xpc_part, "uv_bios_mq_watchlist_alloc() failed, " | 125 | dev_err(xpc_part, "uv_bios_mq_watchlist_alloc() failed, " |
126 | "ret=%d\n", ret); | 126 | "ret=%d\n", ret); |
127 | return ret; | 127 | return ret; |
128 | } | 128 | } |
129 | #elif defined CONFIG_IA64_GENERIC || defined CONFIG_IA64_SGI_UV | 129 | #elif defined CONFIG_IA64_GENERIC || defined CONFIG_IA64_SGI_UV |
130 | ret = sn_mq_watchlist_alloc(mq->mmr_blade, mq->address, mq->order, | 130 | ret = sn_mq_watchlist_alloc(mq->mmr_blade, uv_gpa(mq->address), |
131 | &mq->mmr_offset); | 131 | mq->order, &mq->mmr_offset); |
132 | if (ret < 0) { | 132 | if (ret < 0) { |
133 | dev_err(xpc_part, "sn_mq_watchlist_alloc() failed, ret=%d\n", | 133 | dev_err(xpc_part, "sn_mq_watchlist_alloc() failed, ret=%d\n", |
134 | ret); | 134 | ret); |