mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 06:41:43 +00:00
3ff955024d
This makes PR KVM allocate its kvm_vcpu structs from the kvm_vcpu_cache rather than having them embedded in the kvmppc_vcpu_book3s struct, which is allocated with vzalloc. The reason is to reduce the differences between PR and HV KVM in order to make is easier to have them coexist in one kernel binary. With this, the kvm_vcpu struct has a pointer to the kvmppc_vcpu_book3s struct. The pointer to the kvmppc_book3s_shadow_vcpu struct has moved from the kvmppc_vcpu_book3s struct to the kvm_vcpu struct, and is only present for 32-bit, since it is only used for 32-bit. Signed-off-by: Paul Mackerras <paulus@samba.org> [agraf: squash in compile fix from Aneesh] Signed-off-by: Alexander Graf <agraf@suse.de>
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License, version 2, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* Copyright SUSE Linux Products GmbH 2010
|
|
*
|
|
* Authors: Alexander Graf <agraf@suse.de>
|
|
*/
|
|
|
|
#ifndef __ASM_KVM_BOOK3S_32_H__
|
|
#define __ASM_KVM_BOOK3S_32_H__
|
|
|
|
static inline struct kvmppc_book3s_shadow_vcpu *svcpu_get(struct kvm_vcpu *vcpu)
|
|
{
|
|
return vcpu->arch.shadow_vcpu;
|
|
}
|
|
|
|
static inline void svcpu_put(struct kvmppc_book3s_shadow_vcpu *svcpu)
|
|
{
|
|
}
|
|
|
|
#define PTE_SIZE 12
|
|
#define VSID_ALL 0
|
|
#define SR_INVALID 0x00000001 /* VSID 1 should always be unused */
|
|
#define SR_KP 0x20000000
|
|
#define PTE_V 0x80000000
|
|
#define PTE_SEC 0x00000040
|
|
#define PTE_M 0x00000010
|
|
#define PTE_R 0x00000100
|
|
#define PTE_C 0x00000080
|
|
|
|
#define SID_SHIFT 28
|
|
#define ESID_MASK 0xf0000000
|
|
#define VSID_MASK 0x00fffffff0000000ULL
|
|
#define VPN_SHIFT 12
|
|
|
|
#endif /* __ASM_KVM_BOOK3S_32_H__ */
|