Re: [kvmarm] [PATCH v6 02/13] KVM: ARM: Introduce KVM_SET_DEVICE_ADDRESS ioctl

Christoffer Dall
2013-01-20T23:22:32Z

On Thu, Jan 17, 2013 at 12:37 PM, Peter Maydell
<peter.maydell@linaro.org> wrote:
> On 16 January 2013 18:00, Christoffer Dall
> <c.dall@virtualopensystems.com> wrote:
>> KVM: ARM: Introduce KVM_SET_DEVICE_ADDRESS ioctl
>
> Patch subject needs updating with new name of this ioctl
> (KVM_ARM_SET_DEVICE_ADDR)...
>
>> On ARM (and possibly other architectures) some bits are specific to the
>> model being emulated for the guest and user space needs a way to tell
>> the kernel about those bits. An example is mmio device base addresses,
>> where KVM must know the base address for a given device to properly
>> emulate mmio accesses within a certain address range or directly map a
>> device with virtualiation extensions into the guest address space.
>
> "virtualization", while I'm here.
>
>> --- a/arch/arm/include/uapi/asm/kvm.h
>> +++ b/arch/arm/include/uapi/asm/kvm.h
>> @@ -65,6 +65,19 @@ struct kvm_regs {
>> #define KVM_ARM_TARGET_CORTEX_A15 0
>> #define KVM_ARM_NUM_TARGETS 1
>>
>> +/* KVM_SET_DEVICE_ADDRESS ioctl id encoding */
>> +#define KVM_DEVICE_TYPE_SHIFT 0
>> +#define KVM_DEVICE_TYPE_MASK (0xffff << KVM_DEVICE_TYPE_SHIFT)
>> +#define KVM_DEVICE_ID_SHIFT 16
>> +#define KVM_DEVICE_ID_MASK (0xffff << KVM_DEVICE_ID_SHIFT)
>
> ...and this comment and I guess these constant names presumably
> should have "ARM" in them?
>
>> +/* Available with KVM_CAP_SET_DEVICE_ADDR */
>
> KVM_CAP_ARM_SET_DEVICE_ADDR.
>
right, thanks:

commit 92c7530ddee0d1e1a0b5c3fbd01aa05457812030
Author: Christoffer Dall <c.dall@virtualopensystems.com>
Date: Sun Jan 20 18:20:52 2013 -0500

KVM: ARM: Update comments and defines for KVM_ARM_SET_DEVICE_ADDR

Update comments and defines to reflect the name change of
KVM_SET_DEVICE_ADDRESS to KVM_ARM_SET_DEVICE_ADDR.

Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>

diff --git a/arch/arm/include/uapi/asm/kvm.h b/arch/arm/include/uapi/asm/kvm.h
index 236f528..023bfeb 100644
--- a/arch/arm/include/uapi/asm/kvm.h
+++ b/arch/arm/include/uapi/asm/kvm.h
@@ -65,11 +65,11 @@ struct kvm_regs {
#define KVM_ARM_TARGET_CORTEX_A15 0
#define KVM_ARM_NUM_TARGETS 1

-/* KVM_SET_DEVICE_ADDRESS ioctl id encoding */
-#define KVM_DEVICE_TYPE_SHIFT 0
-#define KVM_DEVICE_TYPE_MASK (0xffff << KVM_DEVICE_TYPE_SHIFT)
-#define KVM_DEVICE_ID_SHIFT 16
-#define KVM_DEVICE_ID_MASK (0xffff << KVM_DEVICE_ID_SHIFT)
+/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
+#define KVM_ARM_DEVICE_TYPE_SHIFT 0
+#define KVM_ARM_DEVICE_TYPE_MASK (0xffff << KVM_ARM_DEVICE_TYPE_SHIFT)
+#define KVM_ARM_DEVICE_ID_SHIFT 16
+#define KVM_ARM_DEVICE_ID_MASK (0xffff << KVM_ARM_DEVICE_ID_SHIFT)

/* Supported device IDs */
#define KVM_ARM_DEVICE_VGIC_V2 0
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 9ff7f70..33887e7 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -875,7 +875,7 @@ struct kvm_s390_ucas_mapping {
#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
/* Available with KVM_CAP_PPC_HTAB_FD */
#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd)
-/* Available with KVM_CAP_SET_DEVICE_ADDR */
+/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */
#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct
kvm_arm_device_addr)

/*
--

-Christoffer