diff options
author | Olof Johansson <olof@lixom.net> | 2005-09-03 18:55:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:06:01 -0400 |
commit | 233ccd0d0452682edb51725410e0f8c0384e8b34 (patch) | |
tree | 061f94c9d9b15087328095b4b4ab1b26aa6cadd2 /arch | |
parent | b749bfcd1be72f8cb8310e1cac12825bda029432 (diff) |
[PATCH] ppc64: Add VMX save flag to VPA
We need to indicate to the hypervisor that it needs to save our VMX
registers when switching partitions on a shared-processor system, just as
it needs to for FP and PMC registers.
This could be made to be on-demand when VMX is used, but we don't do that
for FP nor PMC right now either so let's not overcomplicate things.
Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Paul Mackerras <paulus@samba.org>
Cc: Anton Blanchard <anton@samba.org>
Cc: <engebret@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc64/kernel/pSeries_lpar.c | 4 | ||||
-rw-r--r-- | arch/ppc64/kernel/pacaData.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/pSeries_lpar.c b/arch/ppc64/kernel/pSeries_lpar.c index 0a3ddc9227c5..a1d5fdfea4a8 100644 --- a/arch/ppc64/kernel/pSeries_lpar.c +++ b/arch/ppc64/kernel/pSeries_lpar.c | |||
@@ -266,6 +266,10 @@ void vpa_init(int cpu) | |||
266 | 266 | ||
267 | /* Register the Virtual Processor Area (VPA) */ | 267 | /* Register the Virtual Processor Area (VPA) */ |
268 | flags = 1UL << (63 - 18); | 268 | flags = 1UL << (63 - 18); |
269 | |||
270 | if (cpu_has_feature(CPU_FTR_ALTIVEC)) | ||
271 | paca[cpu].lppaca.vmxregs_in_use = 1; | ||
272 | |||
269 | ret = register_vpa(flags, hwcpu, __pa(vpa)); | 273 | ret = register_vpa(flags, hwcpu, __pa(vpa)); |
270 | 274 | ||
271 | if (ret) | 275 | if (ret) |
diff --git a/arch/ppc64/kernel/pacaData.c b/arch/ppc64/kernel/pacaData.c index 6182a2cd90a5..33a2d8db3f21 100644 --- a/arch/ppc64/kernel/pacaData.c +++ b/arch/ppc64/kernel/pacaData.c | |||
@@ -59,6 +59,7 @@ extern unsigned long __toc_start; | |||
59 | .fpregs_in_use = 1, \ | 59 | .fpregs_in_use = 1, \ |
60 | .end_of_quantum = 0xfffffffffffffffful, \ | 60 | .end_of_quantum = 0xfffffffffffffffful, \ |
61 | .slb_count = 64, \ | 61 | .slb_count = 64, \ |
62 | .vmxregs_in_use = 0, \ | ||
62 | }, \ | 63 | }, \ |
63 | 64 | ||
64 | #ifdef CONFIG_PPC_ISERIES | 65 | #ifdef CONFIG_PPC_ISERIES |