2014-07-01 16:40:03

by Alex Bennée

[permalink] [raw]
Subject: [PATCH] arm64: KVM: export demux regids as KVM_REG_ARM64

I suspect this is a -ECUTPASTE fault from the initial implementation. If
we don't declare the register ID to be KVM_REG_ARM64 the KVM_GET_ONE_REG
implementation kvm_arm_get_reg() returns -EINVAL and hilarity ensues.

The kvm/api.txt document describes all arm64 registers as starting with
0x60xx... (i.e KVM_REG_ARM64).

Signed-off-by: Alex Bennée <[email protected]>
Acked-by: Christoffer Dall <[email protected]>
---
arch/arm64/kvm/sys_regs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 0324458..5ee99e4 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -962,7 +962,7 @@ static unsigned int num_demux_regs(void)

static int write_demux_regids(u64 __user *uindices)
{
- u64 val = KVM_REG_ARM | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
+ u64 val = KVM_REG_ARM64 | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
unsigned int i;

val |= KVM_REG_ARM_DEMUX_ID_CCSIDR;
--
2.0.0


2014-07-01 15:57:10

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH] arm64: KVM: export demux regids as KVM_REG_ARM64

On 01/07/14 16:53, Alex Bennée wrote:
> I suspect this is a -ECUTPASTE fault from the initial implementation. If
> we don't declare the register ID to be KVM_REG_ARM64 the KVM_GET_ONE_REG
> implementation kvm_arm_get_reg() returns -EINVAL and hilarity ensues.
>
> The kvm/api.txt document describes all arm64 registers as starting with
> 0x60xx... (i.e KVM_REG_ARM64).
>
> Signed-off-by: Alex Bennée <[email protected]>
> Acked-by: Christoffer Dall <[email protected]>
> ---
> arch/arm64/kvm/sys_regs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> index 0324458..5ee99e4 100644
> --- a/arch/arm64/kvm/sys_regs.c
> +++ b/arch/arm64/kvm/sys_regs.c
> @@ -962,7 +962,7 @@ static unsigned int num_demux_regs(void)
>
> static int write_demux_regids(u64 __user *uindices)
> {
> - u64 val = KVM_REG_ARM | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
> + u64 val = KVM_REG_ARM64 | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
> unsigned int i;
>
> val |= KVM_REG_ARM_DEMUX_ID_CCSIDR;
>

-EBROWNPAPERBAG.

Acked-by: Marc Zyngier <[email protected]>

Thanks,

M.
--
Jazz is not dead. It just smells funny...

2014-07-04 10:12:55

by Christoffer Dall

[permalink] [raw]
Subject: Re: [PATCH] arm64: KVM: export demux regids as KVM_REG_ARM64

On Tue, Jul 01, 2014 at 04:56:50PM +0100, Marc Zyngier wrote:
> On 01/07/14 16:53, Alex Benn?e wrote:
> > I suspect this is a -ECUTPASTE fault from the initial implementation. If
> > we don't declare the register ID to be KVM_REG_ARM64 the KVM_GET_ONE_REG
> > implementation kvm_arm_get_reg() returns -EINVAL and hilarity ensues.
> >
> > The kvm/api.txt document describes all arm64 registers as starting with
> > 0x60xx... (i.e KVM_REG_ARM64).
> >
> > Signed-off-by: Alex Benn?e <[email protected]>
> > Acked-by: Christoffer Dall <[email protected]>
> > ---
> > arch/arm64/kvm/sys_regs.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> > index 0324458..5ee99e4 100644
> > --- a/arch/arm64/kvm/sys_regs.c
> > +++ b/arch/arm64/kvm/sys_regs.c
> > @@ -962,7 +962,7 @@ static unsigned int num_demux_regs(void)
> >
> > static int write_demux_regids(u64 __user *uindices)
> > {
> > - u64 val = KVM_REG_ARM | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
> > + u64 val = KVM_REG_ARM64 | KVM_REG_SIZE_U32 | KVM_REG_ARM_DEMUX;
> > unsigned int i;
> >
> > val |= KVM_REG_ARM_DEMUX_ID_CCSIDR;
> >
>
> -EBROWNPAPERBAG.
>
> Acked-by: Marc Zyngier <[email protected]>
>
Applied to kvmarm/master,

thanks.