mmu.c (e1d9d7b91302593d1951fcb12feddda6fb58a3c0) mmu.c (fb04a1eddb1a65b6588a021bdc132270d5ae48bb)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * This module enables machines with Intel VT-x extensions to run virtual
6 * machines without emulation or binary translation.
7 *
8 * MMU support

--- 1275 unchanged lines hidden (view full) ---

1284{
1285 if (kvm_x86_ops.enable_log_dirty_pt_masked)
1286 kvm_x86_ops.enable_log_dirty_pt_masked(kvm, slot, gfn_offset,
1287 mask);
1288 else
1289 kvm_mmu_write_protect_pt_masked(kvm, slot, gfn_offset, mask);
1290}
1291
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * This module enables machines with Intel VT-x extensions to run virtual
6 * machines without emulation or binary translation.
7 *
8 * MMU support

--- 1275 unchanged lines hidden (view full) ---

1284{
1285 if (kvm_x86_ops.enable_log_dirty_pt_masked)
1286 kvm_x86_ops.enable_log_dirty_pt_masked(kvm, slot, gfn_offset,
1287 mask);
1288 else
1289 kvm_mmu_write_protect_pt_masked(kvm, slot, gfn_offset, mask);
1290}
1291
1292int kvm_cpu_dirty_log_size(void)
1293{
1294 if (kvm_x86_ops.cpu_dirty_log_size)
1295 return kvm_x86_ops.cpu_dirty_log_size();
1296
1297 return 0;
1298}
1299
1292bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm,
1293 struct kvm_memory_slot *slot, u64 gfn)
1294{
1295 struct kvm_rmap_head *rmap_head;
1296 int i;
1297 bool write_protected = false;
1298
1299 for (i = PG_LEVEL_4K; i <= KVM_MAX_HUGEPAGE_LEVEL; ++i) {

--- 4762 unchanged lines hidden ---
1300bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm,
1301 struct kvm_memory_slot *slot, u64 gfn)
1302{
1303 struct kvm_rmap_head *rmap_head;
1304 int i;
1305 bool write_protected = false;
1306
1307 for (i = PG_LEVEL_4K; i <= KVM_MAX_HUGEPAGE_LEVEL; ++i) {

--- 4762 unchanged lines hidden ---