]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/uv-xpc_get_part_rsvd_page.diff
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / uv-xpc_get_part_rsvd_page.diff
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/uv-xpc_get_part_rsvd_page.diff b/src/patches/suse-2.6.27.31/patches.fixes/uv-xpc_get_part_rsvd_page.diff
new file mode 100644 (file)
index 0000000..ca9d9f2
--- /dev/null
@@ -0,0 +1,63 @@
+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