summaryrefslogtreecommitdiff
path: root/arch/powerpc/include/asm
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2010-01-10 02:27:47 (GMT)
committerMarcelo Tosatti <mtosatti@redhat.com>2010-03-01 15:35:50 (GMT)
commit4b5c9b7f9bdd76a3c860731db08bfc6758e96e29 (patch)
treeb2e5424d7c965e3cf343f685978814bd817b9066 /arch/powerpc/include/asm
parent5f2b105a1d6a137c8cfb2792b79128db965880a8 (diff)
downloadlinux-fsl-qoriq-4b5c9b7f9bdd76a3c860731db08bfc6758e96e29.tar.xz
KVM: PPC: Make large pages work
An SLB entry contains two pieces of information related to size: 1) PTE size 2) SLB size The L bit defines the PTE be "large" (usually means 16MB), SLB_VSID_B_1T defines that the SLB should span 1 GB instead of the default 256MB. Apparently I messed things up and just put those two in one box, shaked it heavily and came up with the current code which handles large pages incorrectly, because it also treats large page SLB entries as "1TB" segment entries. This patch splits those two features apart, making Linux guests boot even when they have > 256MB. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/include/asm')
-rw-r--r--arch/powerpc/include/asm/kvm_book3s.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index 79ab8fa..c7db69f 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h
@@ -34,7 +34,8 @@ struct kvmppc_slb {
bool Ks;
bool Kp;
bool nx;
- bool large;
+ bool large; /* PTEs are 16MB */
+ bool tb; /* 1TB segment */
bool class;
};