diff mbox

KVM: PPC: Make EPCR a valid field for booke64 and bookehv

Message ID 1354370305-12344-1-git-send-email-agraf@suse.de
State New, archived
Headers show

Commit Message

Alexander Graf Dec. 1, 2012, 1:58 p.m. UTC
In BookE, EPCR is defined and valid when either the HV or the 64bit
category are implemented. Reflect this in the field definition.

Today the only KVM target on 64bit is HV enabled, so there is no
change in actual source code, but this keeps the code closer to the
spec and doesn't build up artificial road blocks for a PR KVM
on 64bit.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

Comments

Scott Wood Dec. 3, 2012, 4:47 p.m. UTC | #1
On 12/01/2012 07:58:25 AM, Alexander Graf wrote:
> In BookE, EPCR is defined and valid when either the HV or the 64bit
> category are implemented. Reflect this in the field definition.
> 
> Today the only KVM target on 64bit is HV enabled, so there is no
> change in actual source code, but this keeps the code closer to the
> spec and doesn't build up artificial road blocks for a PR KVM
> on 64bit.
[snip]
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/kvm_host.h  
> b/arch/powerpc/include/asm/kvm_host.h
> index 62fbd38..3480526 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
>  #ifdef CONFIG_KVM_BOOKE_HV
>  	u32 host_mas4;
>  	u32 host_mas6;
> -	u32 shadow_epcr;
> -	u32 epcr;
>  	u32 shadow_msrp;
>  	u32 eplc;
>  	u32 epsc;
>  	u32 oldpir;
>  #endif
> 
> +#if defined(CONFIG_BOOKE)
> +#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
> +	u32 shadow_epcr;
> +	u32 epcr;
> +#endif
> +#endif

On a PR-mode implementation, why would we be have a shadow_epcr?  It  
would always be set based on the host kernel, just like when running  
any other userspace process.

-Scott
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexander Graf Dec. 3, 2012, 5:38 p.m. UTC | #2
On 03.12.2012, at 17:47, Scott Wood wrote:

> On 12/01/2012 07:58:25 AM, Alexander Graf wrote:
>> In BookE, EPCR is defined and valid when either the HV or the 64bit
>> category are implemented. Reflect this in the field definition.
>> Today the only KVM target on 64bit is HV enabled, so there is no
>> change in actual source code, but this keeps the code closer to the
>> spec and doesn't build up artificial road blocks for a PR KVM
>> on 64bit.
> [snip]
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> arch/powerpc/include/asm/kvm_host.h |    9 +++++++--
>> 1 files changed, 7 insertions(+), 2 deletions(-)
>> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
>> index 62fbd38..3480526 100644
>> --- a/arch/powerpc/include/asm/kvm_host.h
>> +++ b/arch/powerpc/include/asm/kvm_host.h
>> @@ -405,14 +405,19 @@ struct kvm_vcpu_arch {
>> #ifdef CONFIG_KVM_BOOKE_HV
>> 	u32 host_mas4;
>> 	u32 host_mas6;
>> -	u32 shadow_epcr;
>> -	u32 epcr;
>> 	u32 shadow_msrp;
>> 	u32 eplc;
>> 	u32 epsc;
>> 	u32 oldpir;
>> #endif
>> +#if defined(CONFIG_BOOKE)
>> +#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
>> +	u32 shadow_epcr;
>> +	u32 epcr;
>> +#endif
>> +#endif
> 
> On a PR-mode implementation, why would we be have a shadow_epcr?  It would always be set based on the host kernel, just like when running any other userspace process.

Right - we could simply set MSR_CM. I'll move shadow_epcr back into the HV only bit above.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 62fbd38..3480526 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -405,14 +405,19 @@  struct kvm_vcpu_arch {
 #ifdef CONFIG_KVM_BOOKE_HV
 	u32 host_mas4;
 	u32 host_mas6;
-	u32 shadow_epcr;
-	u32 epcr;
 	u32 shadow_msrp;
 	u32 eplc;
 	u32 epsc;
 	u32 oldpir;
 #endif
 
+#if defined(CONFIG_BOOKE)
+#if defined(CONFIG_KVM_BOOKE_HV) || defined(CONFIG_64BIT)
+	u32 shadow_epcr;
+	u32 epcr;
+#endif
+#endif
+
 #ifdef CONFIG_PPC_BOOK3S
 	/* For Gekko paired singles */
 	u32 qpr[32];