Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 329799
b: refs/heads/master
c: 903816f
h: refs/heads/master
i:
  329797: 49ca164
  329795: 83cb479
  329791: 97751af
v: v3
  • Loading branch information
Xiao Guangrong authored and Marcelo Tosatti committed Jul 20, 2012
1 parent 3e024db commit 6eebafb
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 86fde74cf5b829627b37ca86322acfdd99b524b8
refs/heads/master: 903816fa4d016e20ec71a1a97700cfcdda115580
6 changes: 2 additions & 4 deletions trunk/arch/x86/kvm/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -2513,10 +2513,8 @@ static pfn_t pte_prefetch_gfn_to_pfn(struct kvm_vcpu *vcpu, gfn_t gfn,
unsigned long hva;

slot = gfn_to_memslot_dirty_bitmap(vcpu, gfn, no_dirty_log);
if (!slot) {
get_page(fault_page);
return page_to_pfn(fault_page);
}
if (!slot)
return get_fault_pfn();

hva = gfn_to_hva_memslot(slot, gfn);

Expand Down
5 changes: 1 addition & 4 deletions trunk/include/linux/kvm_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -383,15 +383,11 @@ id_to_memslot(struct kvm_memslots *slots, int id)
static inline int is_error_hpa(hpa_t hpa) { return hpa >> HPA_MSB; }

extern struct page *bad_page;
extern struct page *fault_page;

extern pfn_t bad_pfn;
extern pfn_t fault_pfn;

int is_error_page(struct page *page);
int is_error_pfn(pfn_t pfn);
int is_hwpoison_pfn(pfn_t pfn);
int is_fault_pfn(pfn_t pfn);
int is_noslot_pfn(pfn_t pfn);
int is_invalid_pfn(pfn_t pfn);
int kvm_is_error_hva(unsigned long addr);
Expand Down Expand Up @@ -441,6 +437,7 @@ void kvm_release_pfn_clean(pfn_t pfn);
void kvm_set_pfn_dirty(pfn_t pfn);
void kvm_set_pfn_accessed(pfn_t pfn);
void kvm_get_pfn(pfn_t pfn);
pfn_t get_fault_pfn(void);

int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset,
int len);
Expand Down
13 changes: 4 additions & 9 deletions trunk/virt/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ static bool largepages_enabled = true;
static struct page *hwpoison_page;
static pfn_t hwpoison_pfn;

struct page *fault_page;
pfn_t fault_pfn;
static struct page *fault_page;
static pfn_t fault_pfn;

inline int kvm_is_mmio_pfn(pfn_t pfn)
{
Expand Down Expand Up @@ -949,12 +949,6 @@ int is_hwpoison_pfn(pfn_t pfn)
}
EXPORT_SYMBOL_GPL(is_hwpoison_pfn);

int is_fault_pfn(pfn_t pfn)
{
return pfn == fault_pfn;
}
EXPORT_SYMBOL_GPL(is_fault_pfn);

int is_noslot_pfn(pfn_t pfn)
{
return pfn == bad_pfn;
Expand Down Expand Up @@ -1038,11 +1032,12 @@ unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn)
}
EXPORT_SYMBOL_GPL(gfn_to_hva);

static pfn_t get_fault_pfn(void)
pfn_t get_fault_pfn(void)
{
get_page(fault_page);
return fault_pfn;
}
EXPORT_SYMBOL_GPL(get_fault_pfn);

int get_user_page_nowait(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, int write, struct page **page)
Expand Down

0 comments on commit 6eebafb

Please sign in to comment.