From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
To: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Cc: Avi Kivity <avi@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
LKML <linux-kernel@vger.kernel.org>, KVM <kvm@vger.kernel.org>
Subject: [PATCH 7/9] KVM: define kvm_bad_page statically
Date: Sun, 29 Jul 2012 16:16:28 +0800 [thread overview]
Message-ID: <5014F15C.60400@linux.vnet.ibm.com> (raw)
In-Reply-To: <5014F053.8020305@linux.vnet.ibm.com>
It is used to eliminate the overload of function call and cleanup
the code
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
---
include/linux/kvm_host.h | 9 +++++++--
virt/kvm/async_pf.c | 2 +-
virt/kvm/kvm_main.c | 13 +------------
3 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 387ecc5..08a9da9 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -68,6 +68,13 @@ static inline int is_invalid_pfn(pfn_t pfn)
return !is_noslot_pfn(pfn) && is_error_pfn(pfn);
}
+#define kvm_bad_page (ERR_PTR(-ENOENT))
+
+static inline int is_error_page(struct page *page)
+{
+ return IS_ERR(page);
+}
+
/*
* vcpu->requests bit members
*/
@@ -410,7 +417,6 @@ id_to_memslot(struct kvm_memslots *slots, int id)
return slot;
}
-int is_error_page(struct page *page);
int kvm_is_error_hva(unsigned long addr);
int kvm_set_memory_region(struct kvm *kvm,
struct kvm_userspace_memory_region *mem,
@@ -437,7 +443,6 @@ void kvm_arch_flush_shadow(struct kvm *kvm);
int gfn_to_page_many_atomic(struct kvm *kvm, gfn_t gfn, struct page **pages,
int nr_pages);
-struct page *get_bad_page(void);
struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn);
unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn);
void kvm_release_page_clean(struct page *page);
diff --git a/virt/kvm/async_pf.c b/virt/kvm/async_pf.c
index 7972278..aa38af6 100644
--- a/virt/kvm/async_pf.c
+++ b/virt/kvm/async_pf.c
@@ -203,7 +203,7 @@ int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu)
if (!work)
return -ENOMEM;
- work->page = get_bad_page();
+ work->page = kvm_bad_page;
INIT_LIST_HEAD(&work->queue); /* for list_del to work */
spin_lock(&vcpu->async_pf.lock);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 51aaba4..f09f48a 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -931,17 +931,6 @@ void kvm_disable_largepages(void)
}
EXPORT_SYMBOL_GPL(kvm_disable_largepages);
-int is_error_page(struct page *page)
-{
- return IS_ERR(page);
-}
-EXPORT_SYMBOL_GPL(is_error_page);
-
-struct page *get_bad_page(void)
-{
- return ERR_PTR(-ENOENT);
-}
-
static inline unsigned long bad_hva(void)
{
return PAGE_OFFSET;
@@ -1188,7 +1177,7 @@ static struct page *kvm_pfn_to_page(pfn_t pfn)
WARN_ON(kvm_is_mmio_pfn(pfn));
if (is_error_pfn(pfn) || kvm_is_mmio_pfn(pfn))
- return get_bad_page();
+ return kvm_bad_page;
return pfn_to_page(pfn);
}
--
1.7.7.6
next prev parent reply other threads:[~2012-07-29 8:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-29 8:12 [PATCH 1/9] KVM: iommu: fix releasing unmapped page Xiao Guangrong
2012-07-29 8:12 ` [PATCH 2/9] KVM: define kvm_fault_pfn statically Xiao Guangrong
2012-08-02 12:51 ` Marcelo Tosatti
2012-07-29 8:13 ` [PATCH 3/9] KVM: define kvm_hwpoison_pfn statically Xiao Guangrong
2012-08-02 12:52 ` Marcelo Tosatti
2012-07-29 8:14 ` [PATCH 4/9] KVM: define kvm_bad_pfn statically Xiao Guangrong
2012-08-02 13:15 ` Marcelo Tosatti
2012-08-03 0:01 ` Paul Mackerras
2012-08-03 8:13 ` Xiao Guangrong
2012-07-29 8:15 ` [PATCH 5/9] KVM: inline is_*_pfn functions Xiao Guangrong
2012-07-29 8:15 ` [PATCH 6/9] KVM: remove the unused declare Xiao Guangrong
2012-07-29 8:16 ` Xiao Guangrong [this message]
2012-08-02 12:54 ` [PATCH 7/9] KVM: define kvm_bad_page statically Marcelo Tosatti
2012-07-29 8:18 ` [PATCH 8/9] KVM: do not release the error pfn Xiao Guangrong
2012-07-29 11:33 ` Xiao Guangrong
2012-08-02 13:14 ` Marcelo Tosatti
2012-08-03 7:46 ` Xiao Guangrong
2012-07-29 8:20 ` [PATCH 9/9] KVM: do not release the error page Xiao Guangrong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5014F15C.60400@linux.vnet.ibm.com \
--to=xiaoguangrong@linux.vnet.ibm.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.