KVM: s390: split kvm_s390_real_to_abs
A new function _kvm_s390_real_to_abs will apply prefixing to a real address with a given prefix value. The old kvm_s390_real_to_abs becomes now a wrapper around the new function. This is needed to avoid code duplication in vSIE. Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20210322140559.500716-2-imbrenda@linux.ibm.com Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
bdf7509bbe
commit
c5d1f6b531
|
@ -16,6 +16,23 @@
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include "kvm-s390.h"
|
#include "kvm-s390.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kvm_s390_real_to_abs - convert guest real address to guest absolute address
|
||||||
|
* @prefix - guest prefix
|
||||||
|
* @gra - guest real address
|
||||||
|
*
|
||||||
|
* Returns the guest absolute address that corresponds to the passed guest real
|
||||||
|
* address @gra of by applying the given prefix.
|
||||||
|
*/
|
||||||
|
static inline unsigned long _kvm_s390_real_to_abs(u32 prefix, unsigned long gra)
|
||||||
|
{
|
||||||
|
if (gra < 2 * PAGE_SIZE)
|
||||||
|
gra += prefix;
|
||||||
|
else if (gra >= prefix && gra < prefix + 2 * PAGE_SIZE)
|
||||||
|
gra -= prefix;
|
||||||
|
return gra;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* kvm_s390_real_to_abs - convert guest real address to guest absolute address
|
* kvm_s390_real_to_abs - convert guest real address to guest absolute address
|
||||||
* @vcpu - guest virtual cpu
|
* @vcpu - guest virtual cpu
|
||||||
|
@ -27,13 +44,7 @@
|
||||||
static inline unsigned long kvm_s390_real_to_abs(struct kvm_vcpu *vcpu,
|
static inline unsigned long kvm_s390_real_to_abs(struct kvm_vcpu *vcpu,
|
||||||
unsigned long gra)
|
unsigned long gra)
|
||||||
{
|
{
|
||||||
unsigned long prefix = kvm_s390_get_prefix(vcpu);
|
return _kvm_s390_real_to_abs(kvm_s390_get_prefix(vcpu), gra);
|
||||||
|
|
||||||
if (gra < 2 * PAGE_SIZE)
|
|
||||||
gra += prefix;
|
|
||||||
else if (gra >= prefix && gra < prefix + 2 * PAGE_SIZE)
|
|
||||||
gra -= prefix;
|
|
||||||
return gra;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue