/* This next set of functions are used to keep track of when a partition is potentially engaged in accessing memory belonging to another partition.  */
static void xpc_indicate_partition_engaged_sn2(struct xpc_partition *part)
/* This next set of functions are used to keep track of when a partition is potentially engaged in accessing memory belonging to another partition.  */
static void xpc_indicate_partition_engaged_sn2(struct xpc_partition *part)
{
	unsigned long irq_flags;
	struct amo *amo = (struct amo *)__va(part->sn.sn2.remote_amos_page_pa +
					     (XPC_ENGAGED_PARTITIONS_AMO_SN2 *
					     sizeof(struct amo)));
	local_irq_save(irq_flags);
	FETCHOP_STORE_OP(TO_AMO((u64)&amo->variable), FETCHOP_OR,
			 BIT(sn_partition_id));
	(void)xp_nofault_PIOR((u64 *)GLOBAL_MMR_ADDR(NASID_GET(&amo->
							       variable),
						     xp_nofault_PIOR_target));
	local_irq_restore(irq_flags);
}