aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/sn/kernel/xpc_partition.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/ia64/sn/kernel/xpc_partition.c b/arch/ia64/sn/kernel/xpc_partition.c
index b31d9988a37a..2c3c4a8af553 100644
--- a/arch/ia64/sn/kernel/xpc_partition.c
+++ b/arch/ia64/sn/kernel/xpc_partition.c
@@ -204,6 +204,19 @@ xpc_rsvd_page_init(void)
204 return NULL; 204 return NULL;
205 } 205 }
206 } 206 }
207 } else if (!IS_AMO_ADDRESS((u64) amos_page)) {
208 /*
209 * EFI's XPBOOT can also set amos_page in the reserved page,
210 * but it happens to leave it as an uncached physical address
211 * and we need it to be an uncached virtual, so we'll have to
212 * convert it.
213 */
214 if (!IS_AMO_PHYS_ADDRESS((u64) amos_page)) {
215 dev_err(xpc_part, "previously used amos_page address "
216 "is bad = 0x%p\n", (void *) amos_page);
217 return NULL;
218 }
219 amos_page = (AMO_t *) TO_AMO((u64) amos_page);
207 } 220 }
208 221
209 memset(xpc_vars, 0, sizeof(struct xpc_vars)); 222 memset(xpc_vars, 0, sizeof(struct xpc_vars));
@@ -944,7 +957,7 @@ xpc_discovery(void)
944 957
945/* 958/*
946 * Given a partid, get the nasids owned by that partition from the 959 * Given a partid, get the nasids owned by that partition from the
947 * remote partitions reserved page. 960 * remote partition's reserved page.
948 */ 961 */
949enum xpc_retval 962enum xpc_retval
950xpc_initiate_partid_to_nasids(partid_t partid, void *nasid_mask) 963xpc_initiate_partid_to_nasids(partid_t partid, void *nasid_mask)