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); |
