diff options
Diffstat (limited to 'drivers/kvm/kvm_main.c')
-rw-r--r-- | drivers/kvm/kvm_main.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 4e1bd9488470..729573b844e5 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c | |||
@@ -543,13 +543,19 @@ struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn) | |||
543 | 543 | ||
544 | EXPORT_SYMBOL_GPL(gfn_to_page); | 544 | EXPORT_SYMBOL_GPL(gfn_to_page); |
545 | 545 | ||
546 | void kvm_release_page(struct page *page) | 546 | void kvm_release_page_clean(struct page *page) |
547 | { | ||
548 | put_page(page); | ||
549 | } | ||
550 | EXPORT_SYMBOL_GPL(kvm_release_page_clean); | ||
551 | |||
552 | void kvm_release_page_dirty(struct page *page) | ||
547 | { | 553 | { |
548 | if (!PageReserved(page)) | 554 | if (!PageReserved(page)) |
549 | SetPageDirty(page); | 555 | SetPageDirty(page); |
550 | put_page(page); | 556 | put_page(page); |
551 | } | 557 | } |
552 | EXPORT_SYMBOL_GPL(kvm_release_page); | 558 | EXPORT_SYMBOL_GPL(kvm_release_page_dirty); |
553 | 559 | ||
554 | static int next_segment(unsigned long len, int offset) | 560 | static int next_segment(unsigned long len, int offset) |
555 | { | 561 | { |
@@ -1055,7 +1061,7 @@ static struct page *kvm_vm_nopage(struct vm_area_struct *vma, | |||
1055 | /* current->mm->mmap_sem is already held so call lockless version */ | 1061 | /* current->mm->mmap_sem is already held so call lockless version */ |
1056 | page = __gfn_to_page(kvm, pgoff); | 1062 | page = __gfn_to_page(kvm, pgoff); |
1057 | if (is_error_page(page)) { | 1063 | if (is_error_page(page)) { |
1058 | kvm_release_page(page); | 1064 | kvm_release_page_clean(page); |
1059 | return NOPAGE_SIGBUS; | 1065 | return NOPAGE_SIGBUS; |
1060 | } | 1066 | } |
1061 | if (type != NULL) | 1067 | if (type != NULL) |