KVM: modify memslots layout in struct kvm
Have a pointer to an allocated region inside struct kvm. [alex: fix ppc book 3s] Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Este cometimento está contido em:
@@ -1377,12 +1377,14 @@ static void free_kvm(struct kvm *kvm)
|
||||
|
||||
static void kvm_release_vm_pages(struct kvm *kvm)
|
||||
{
|
||||
struct kvm_memslots *slots;
|
||||
struct kvm_memory_slot *memslot;
|
||||
int i, j;
|
||||
unsigned long base_gfn;
|
||||
|
||||
for (i = 0; i < kvm->nmemslots; i++) {
|
||||
memslot = &kvm->memslots[i];
|
||||
slots = kvm->memslots;
|
||||
for (i = 0; i < slots->nmemslots; i++) {
|
||||
memslot = &slots->memslots[i];
|
||||
base_gfn = memslot->base_gfn;
|
||||
|
||||
for (j = 0; j < memslot->npages; j++) {
|
||||
@@ -1802,7 +1804,7 @@ static int kvm_ia64_sync_dirty_log(struct kvm *kvm,
|
||||
if (log->slot >= KVM_MEMORY_SLOTS)
|
||||
goto out;
|
||||
|
||||
memslot = &kvm->memslots[log->slot];
|
||||
memslot = &kvm->memslots->memslots[log->slot];
|
||||
r = -ENOENT;
|
||||
if (!memslot->dirty_bitmap)
|
||||
goto out;
|
||||
@@ -1840,7 +1842,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
|
||||
/* If nothing is dirty, don't bother messing with page tables. */
|
||||
if (is_dirty) {
|
||||
kvm_flush_remote_tlbs(kvm);
|
||||
memslot = &kvm->memslots[log->slot];
|
||||
memslot = &kvm->memslots->memslots[log->slot];
|
||||
n = ALIGN(memslot->npages, BITS_PER_LONG) / 8;
|
||||
memset(memslot->dirty_bitmap, 0, n);
|
||||
}
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador