git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
KVM: PPC: Use now shadowed vcpu fields
[safe/jmp/linux-2.6]
/
arch
/
powerpc
/
include
/
asm
/
kvm_host.h
diff --git
a/arch/powerpc/include/asm/kvm_host.h
b/arch/powerpc/include/asm/kvm_host.h
index
2cff5fe
..
5a83995
100644
(file)
--- a/
arch/powerpc/include/asm/kvm_host.h
+++ b/
arch/powerpc/include/asm/kvm_host.h
@@
-21,7
+21,8
@@
#define __POWERPC_KVM_HOST_H__
#include <linux/mutex.h>
#define __POWERPC_KVM_HOST_H__
#include <linux/mutex.h>
-#include <linux/timer.h>
+#include <linux/hrtimer.h>
+#include <linux/interrupt.h>
#include <linux/types.h>
#include <linux/kvm_types.h>
#include <asm/kvm_asm.h>
#include <linux/types.h>
#include <linux/kvm_types.h>
#include <asm/kvm_asm.h>
@@
-65,7
+66,7
@@
struct kvm_vcpu_stat {
u32 dec_exits;
u32 ext_intr_exits;
u32 halt_wakeup;
u32 dec_exits;
u32 ext_intr_exits;
u32 halt_wakeup;
-#ifdef CONFIG_PPC
64
+#ifdef CONFIG_PPC
_BOOK3S
u32 pf_storage;
u32 pf_instruc;
u32 sp_storage;
u32 pf_storage;
u32 pf_instruc;
u32 sp_storage;
@@
-126,9
+127,9
@@
struct kvmppc_pte {
u64 eaddr;
u64 vpage;
u64 raddr;
u64 eaddr;
u64 vpage;
u64 raddr;
- bool may_read;
- bool may_write;
- bool may_execute;
+ bool may_read
: 1
;
+ bool may_write
: 1
;
+ bool may_execute
: 1
;
};
struct kvmppc_mmu {
};
struct kvmppc_mmu {
@@
-159,30
+160,51
@@
struct hpte_cache {
struct kvm_vcpu_arch {
ulong host_stack;
u32 host_pid;
struct kvm_vcpu_arch {
ulong host_stack;
u32 host_pid;
-#ifdef CONFIG_PPC
64
+#ifdef CONFIG_PPC
_BOOK3S
ulong host_msr;
ulong host_r2;
void *host_retip;
ulong trampoline_lowmem;
ulong trampoline_enter;
ulong highmem_handler;
ulong host_msr;
ulong host_r2;
void *host_retip;
ulong trampoline_lowmem;
ulong trampoline_enter;
ulong highmem_handler;
+ ulong rmcall;
ulong host_paca_phys;
struct kvmppc_mmu mmu;
#endif
ulong host_paca_phys;
struct kvmppc_mmu mmu;
#endif
- u64 fpr[32];
ulong gpr[32];
ulong gpr[32];
+ u64 fpr[32];
+ u64 fpscr;
+
+#ifdef CONFIG_ALTIVEC
+ vector128 vr[32];
+ vector128 vscr;
+#endif
+
+#ifdef CONFIG_VSX
+ u64 vsr[32];
+#endif
+
+#ifdef CONFIG_PPC_BOOK3S
+ /* For Gekko paired singles */
+ u32 qpr[32];
+#endif
+
+#ifdef CONFIG_BOOKE
ulong pc;
ulong pc;
- u32 cr;
ulong ctr;
ulong lr;
ulong ctr;
ulong lr;
+
ulong xer;
ulong xer;
+ u32 cr;
+#endif
ulong msr;
ulong msr;
-#ifdef CONFIG_PPC
64
+#ifdef CONFIG_PPC
_BOOK3S
ulong shadow_msr;
ulong hflags;
ulong shadow_msr;
ulong hflags;
+ ulong guest_owned_ext;
#endif
u32 mmucr;
ulong sprg0;
#endif
u32 mmucr;
ulong sprg0;
@@
-235,26
+257,31
@@
struct kvm_vcpu_arch {
struct dentry *debugfs_exit_timing;
#endif
struct dentry *debugfs_exit_timing;
#endif
+#ifdef CONFIG_BOOKE
u32 last_inst;
u32 last_inst;
-#ifdef CONFIG_PPC64
- ulong fault_dsisr;
-#endif
ulong fault_dear;
ulong fault_esr;
ulong fault_dear;
ulong fault_esr;
+ ulong queued_dear;
+ ulong queued_esr;
+#endif
gpa_t paddr_accessed;
u8 io_gpr; /* GPR used as IO source/target */
u8 mmio_is_bigendian;
gpa_t paddr_accessed;
u8 io_gpr; /* GPR used as IO source/target */
u8 mmio_is_bigendian;
+ u8 mmio_sign_extend;
u8 dcr_needed;
u8 dcr_is_write;
u8 dcr_needed;
u8 dcr_is_write;
+ u8 osi_needed;
+ u8 osi_enabled;
u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */
u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */
- struct timer_list dec_timer;
+ struct hrtimer dec_timer;
+ struct tasklet_struct tasklet;
u64 dec_jiffies;
unsigned long pending_exceptions;
u64 dec_jiffies;
unsigned long pending_exceptions;
-#ifdef CONFIG_PPC
64
+#ifdef CONFIG_PPC
_BOOK3S
struct hpte_cache hpte_cache[HPTEG_CACHE_NUM];
int hpte_cache_offset;
#endif
struct hpte_cache hpte_cache[HPTEG_CACHE_NUM];
int hpte_cache_offset;
#endif