--- /dev/null
+From: Dean Nelson <dcn@sgi.com>
+Subject: [PATCH] Add support for getting the address of a partition's reserved page.
+References: bnc#442461
+
+Add support for getting the address of a partition's reserved page.
+
+Signed-off-by: Dean Nelson <dcn@sgi.com>
+Acked-by: Bernhard Walle <bwalle@suse.de>
+
+---
+
+ drivers/misc/sgi-xp/xpc_uv.c | 31 ++++++++++++++++++++++++++++---
+ 1 file changed, 28 insertions(+), 3 deletions(-)
+
+Index: linux/drivers/misc/sgi-xp/xpc_uv.c
+===================================================================
+--- linux.orig/drivers/misc/sgi-xp/xpc_uv.c 2008-10-21 12:50:18.000000000 -0500
++++ linux/drivers/misc/sgi-xp/xpc_uv.c 2008-10-21 14:00:13.000000000 -0500
+@@ -642,7 +642,7 @@ xpc_send_local_activate_IRQ_uv(struct xp
+ struct xpc_partition_uv *part_uv = &part->sn.uv;
+
+ /*
+- * !!! Make our side think that the remote parition sent an activate
++ * !!! Make our side think that the remote partition sent an activate
+ * !!! message our way by doing what the activate IRQ handler would
+ * !!! do had one really been sent.
+ */
+@@ -660,8 +660,33 @@ static enum xp_retval
+ xpc_get_partition_rsvd_page_pa_uv(void *buf, u64 *cookie, unsigned long *rp_pa,
+ size_t *len)
+ {
+- /* !!! call the UV version of sn_partition_reserved_page_pa() */
+- return xpUnsupported;
++ s64 status;
++ enum xp_retval ret;
++
++#if defined CONFIG_X86_64
++ status = uv_bios_reserved_page_pa((u64)buf, cookie, (u64 *)rp_pa,
++ (u64 *)len);
++ if (status == BIOS_STATUS_SUCCESS)
++ ret = xpSuccess;
++ else if (status == BIOS_STATUS_MORE_PASSES)
++ ret = xpNeedMoreInfo;
++ else
++ ret = xpBiosError;
++
++#elif defined CONFIG_IA64_GENERIC || defined CONFIG_IA64_SGI_UV
++ status = sn_partition_reserved_page_pa((u64)buf, cookie, rp_pa, len);
++ if (status == SALRET_OK)
++ ret = xpSuccess;
++ else if (status == SALRET_MORE_PASSES)
++ ret = xpNeedMoreInfo;
++ else
++ ret = xpSalError;
++
++#else
++ #error not a supported configuration
++#endif
++
++ return ret;
+ }
+
+ static int