mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86/HVM: adjust hvm_get_mem_pinned_cacheattr() GFN parameter
Make it gfn_t and rename it accordingly. Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Tim Deegan <tim@xen.org>
This commit is contained in:
1 parent
efd5c610a2
commit
d29cf2e8f5
3 files changed
+11
-10
No files matched your search
@@ -545,7 +545,7 @@ void hvm_destroy_cacheattr_region_list(
|
||||
|
||||
int hvm_get_mem_pinned_cacheattr(
|
||||
struct domain *d,
|
||||
uint64_t guest_fn,
|
||||
gfn_t gfn,
|
||||
unsigned int order)
|
||||
{
|
||||
struct hvm_mem_pinned_cacheattr_range *range;
|
||||
@@ -559,14 +559,14 @@ int hvm_get_mem_pinned_cacheattr(
|
||||
&d->arch.hvm_domain.pinned_cacheattr_ranges,
|
||||
list )
|
||||
{
|
||||
if ( ((guest_fn & mask) >= range->start) &&
|
||||
((guest_fn | ~mask) <= range->end) )
|
||||
if ( ((gfn_x(gfn) & mask) >= range->start) &&
|
||||
((gfn_x(gfn) | ~mask) <= range->end) )
|
||||
{
|
||||
rc = range->type;
|
||||
break;
|
||||
}
|
||||
if ( ((guest_fn & mask) <= range->end) &&
|
||||
(range->start <= (guest_fn | ~mask)) )
|
||||
if ( ((gfn_x(gfn) & mask) <= range->end) &&
|
||||
((gfn_x(gfn) | ~mask) >= range->start) )
|
||||
{
|
||||
rc = -EADDRNOTAVAIL;
|
||||
break;
|
||||
@@ -808,7 +808,7 @@ int epte_get_entry_emt(struct domain *d, unsigned long gfn, mfn_t mfn,
|
||||
return MTRR_TYPE_WRBACK;
|
||||
}
|
||||
|
||||
gmtrr_mtype = hvm_get_mem_pinned_cacheattr(d, gfn, order);
|
||||
gmtrr_mtype = hvm_get_mem_pinned_cacheattr(d, _gfn(gfn), order);
|
||||
if ( gmtrr_mtype >= 0 )
|
||||
{
|
||||
*ipat = 1;
|
||||
|
||||
@@ -619,8 +619,7 @@ _sh_propagate(struct vcpu *v,
|
||||
* gMTRR and gPAT.
|
||||
*/
|
||||
if ( !mmio_mfn &&
|
||||
(type = hvm_get_mem_pinned_cacheattr(d, gfn_x(target_gfn),
|
||||
0)) >= 0 )
|
||||
(type = hvm_get_mem_pinned_cacheattr(d, target_gfn, 0)) >= 0 )
|
||||
sflags |= pat_type_2_pte_flags(type);
|
||||
else if ( d->arch.hvm_domain.is_in_uc_mode )
|
||||
sflags |= pat_type_2_pte_flags(PAT_TYPE_UNCACHABLE);
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
#ifndef __HVM_CACHEATTR_H__
|
||||
#define __HVM_CACHEATTR_H__
|
||||
|
||||
#include <xen/mm.h>
|
||||
|
||||
void hvm_init_cacheattr_region_list(
|
||||
struct domain *d);
|
||||
void hvm_destroy_cacheattr_region_list(
|
||||
struct domain *d);
|
||||
|
||||
/*
|
||||
* To see guest_fn is in the pinned range or not,
|
||||
* Check whether gfn is in the pinned range:
|
||||
* if yes, return the (non-negative) type
|
||||
* if no or ambiguous, return a negative error code
|
||||
*/
|
||||
int hvm_get_mem_pinned_cacheattr(
|
||||
struct domain *d,
|
||||
uint64_t guest_fn,
|
||||
gfn_t gfn,
|
||||
unsigned int order);
|
||||
|
||||
|
||||
|
||||