sgi-xp: support getting the address of a partition's reserved page

Add support for getting the address of a partition's reserved page.

Signed-off-by: Dean Nelson <dcn@sgi.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
Dean Nelson 2008-11-05 17:29:48 -06:00 committed by H. Peter Anvin
parent 31de5ece35
commit 7d9d1f25c3

View file

@ -642,7 +642,7 @@ xpc_send_local_activate_IRQ_uv(struct xpc_partition *part, int act_state_req)
struct xpc_partition_uv *part_uv = &part->sn.uv; 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 * !!! message our way by doing what the activate IRQ handler would
* !!! do had one really been sent. * !!! 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, xpc_get_partition_rsvd_page_pa_uv(void *buf, u64 *cookie, unsigned long *rp_pa,
size_t *len) size_t *len)
{ {
/* !!! call the UV version of sn_partition_reserved_page_pa() */ s64 status;
return xpUnsupported; 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 static int