diff options
author | Christoffer Dall <christoffer.dall@linaro.org> | 2013-10-02 14:22:28 -0700 |
---|---|---|
committer | Gleb Natapov <gleb@redhat.com> | 2013-10-14 10:11:44 +0300 |
commit | 6d9d41e57440e32a3400f37aa05ef7a1a09ced64 (patch) | |
tree | 150c27fc74edb392cce5a116b2042c976554853b /arch/x86/include/asm/kvm_host.h | |
parent | 7854cbca815562a49d50bbc6f31599312853d1f4 (diff) | |
download | blackbird-op-linux-6d9d41e57440e32a3400f37aa05ef7a1a09ced64.tar.gz blackbird-op-linux-6d9d41e57440e32a3400f37aa05ef7a1a09ced64.zip |
KVM: Move gfn_to_index to x86 specific code
The gfn_to_index function relies on huge page defines which either may
not make sense on systems that don't support huge pages or are defined
in an unconvenient way for other architectures. Since this is
x86-specific, move the function to arch/x86/include/asm/kvm_host.h.
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 8dd143a65d60..5cbf3166257c 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -79,6 +79,13 @@ #define KVM_HPAGE_MASK(x) (~(KVM_HPAGE_SIZE(x) - 1)) #define KVM_PAGES_PER_HPAGE(x) (KVM_HPAGE_SIZE(x) / PAGE_SIZE) +static inline gfn_t gfn_to_index(gfn_t gfn, gfn_t base_gfn, int level) +{ + /* KVM_HPAGE_GFN_SHIFT(PT_PAGE_TABLE_LEVEL) must be 0. */ + return (gfn >> KVM_HPAGE_GFN_SHIFT(level)) - + (base_gfn >> KVM_HPAGE_GFN_SHIFT(level)); +} + #define SELECTOR_TI_MASK (1 << 2) #define SELECTOR_RPL_MASK 0x03 |