Thread (17 messages) 17 messages, 2 authors, 2013-01-21

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

From: Christoffer Dall <hidden>
Date: 2013-01-21 00:06:13
Also in: kvm
Subsystem: arm port, the rest · Maintainers: Russell King, Linus Torvalds

On Sun, Jan 20, 2013 at 6:22 PM, Christoffer Dall
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
On Thu, Jan 17, 2013 at 12:37 PM, Peter Maydell
[off-list ref] wrote:
quoted
On 16 January 2013 18:00, Christoffer Dall
[off-list ref] wrote:
quoted
KVM: ARM: Introduce KVM_SET_DEVICE_ADDRESS ioctl
Patch subject needs updating with new name of this ioctl
(KVM_ARM_SET_DEVICE_ADDR)...
quoted
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.
quoted
--- 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?
quoted
+/* Available with KVM_CAP_SET_DEVICE_ADDR */
KVM_CAP_ARM_SET_DEVICE_ADDR.
right, thanks:

commit 92c7530ddee0d1e1a0b5c3fbd01aa05457812030
Author: Christoffer Dall [off-list ref]
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 [off-list ref]
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)

 /*
--


and this:
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
index a67392a..134df21 100644
--- a/arch/arm/kvm/arm.c
+++ b/arch/arm/kvm/arm.c
@@ -924,8 +924,10 @@ static int kvm_vm_ioctl_set_device_addr(struct kvm *kvm,
 {
 	unsigned long dev_id, type;

-	dev_id = (dev_addr->id & KVM_DEVICE_ID_MASK) >> KVM_DEVICE_ID_SHIFT;
-	type = (dev_addr->id & KVM_DEVICE_TYPE_MASK) >> KVM_DEVICE_TYPE_SHIFT;
+	dev_id = (dev_addr->id & KVM_ARM_DEVICE_ID_MASK) >>
+		KVM_ARM_DEVICE_ID_SHIFT;
+	type = (dev_addr->id & KVM_ARM_DEVICE_TYPE_MASK) >>
+		KVM_ARM_DEVICE_TYPE_SHIFT;

 	switch (dev_id) {
 	case KVM_ARM_DEVICE_VGIC_V2:
--

-Christoffer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help