On Wed, 2013-06-19 at 16:28 +1000, Michael Ellerman wrote:
> On Wed, 2013-06-19 at 11:10 +0530, Sravan V Dodla wrote:
> > On Tue, 2013-06-18 at 11:39 -0400, Dave Jones wrote:
> > > On Tue, Jun 18, 2013 at 12:37:26PM +0530, Sravan V Dodla wrote:
> >
> > > Does this help ?
> > Thanks a lot Dave. That did help :)
> > Still compilation does not complete successfully. I'm seeing the
> > following issue on both ppc64 and s390x archs:
>
> I have the following patch that I've been meaning to cleanup and send,
> it works for me on ppc64.
>
Yes Michael, it worked for me on ppc64. Thank you.
I have also made the following changes to make it work for s390x, not
sure of the impact though!
--- kvm.c.orig 2013-06-19 14:04:37.814590066 +0530
+++ kvm.c 2013-06-19 14:04:43.306415094 +0530
@@ -87,8 +87,6 @@ static const struct ioctl kvm_ioctls[] =
IOCTL(KVM_SET_VAPIC_ADDR),
#if defined(__s390__)
IOCTL(KVM_S390_INTERRUPT),
- IOCTL(KVM_S390_STORE_STATUS_NOADDR),
- IOCTL(KVM_S390_STORE_STATUS_PREFIXED),
IOCTL(KVM_S390_STORE_STATUS),
IOCTL(KVM_S390_SET_INITIAL_PSW),
IOCTL(KVM_S390_INITIAL_RESET),
> cheers
>
>
> diff --git a/include/compat.h b/include/compat.h
> index 20455f3..bba5560 100644
> --- a/include/compat.h
> +++ b/include/compat.h
> @@ -669,6 +669,42 @@ struct kvm_one_reg {
> #define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad)
> #endif
>
> +#ifndef KVM_PPC_GET_SMMU_INFO
> +#define KVM_PPC_PAGE_SIZES_MAX_SZ 8
> +
> +struct kvm_ppc_one_page_size {
> + __u32 page_shift; /* Page shift (or 0) */
> + __u32 pte_enc; /* Encoding in the HPTE (>>12) */
> +};
> +
> +struct kvm_ppc_one_seg_page_size {
> + __u32 page_shift; /* Base page shift of segment (or 0) */
> + __u32 slb_enc; /* SLB encoding for BookS */
> + struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ];
> +};
> +
> +struct kvm_ppc_smmu_info {
> + __u64 flags;
> + __u32 slb_size;
> + __u32 pad;
> + struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
> +};
> +#define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct
> kvm_ppc_smmu_info)
> +#endif
> +
> +#ifndef KVM_PPC_ALLOCATE_HTAB
> +#define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32)
> +#endif
> +
> +#ifndef KVM_PPC_GET_HTAB_FD
> +struct kvm_get_htab_fd {
> + __u64 flags;
> + __u64 start_index;
> + __u64 reserved[2];
> +};
> +#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd)
> +#endif
> +
> #ifndef EM_ARM
> #define EM_ARM 40
> #endif
> diff --git a/ioctls/kvm.c b/ioctls/kvm.c
> index 4620ca8..ffddee4 100644
> --- a/ioctls/kvm.c
> +++ b/ioctls/kvm.c
> @@ -12,7 +12,6 @@ static const struct ioctl kvm_ioctls[] = {
> IOCTL(KVM_SET_MEMORY_REGION),
> IOCTL(KVM_CREATE_VCPU),
> IOCTL(KVM_GET_DIRTY_LOG),
> - IOCTL(KVM_SET_MEMORY_ALIAS),
> IOCTL(KVM_SET_NR_MMU_PAGES),
> IOCTL(KVM_GET_NR_MMU_PAGES),
> IOCTL(KVM_SET_USER_MEMORY_REGION),
> @@ -26,13 +25,10 @@ static const struct ioctl kvm_ioctls[] = {
> IOCTL(KVM_GET_IRQCHIP),
> IOCTL(KVM_SET_IRQCHIP),
> IOCTL(KVM_CREATE_PIT),
> - IOCTL(KVM_GET_PIT),
> - IOCTL(KVM_SET_PIT),
> IOCTL(KVM_IRQ_LINE_STATUS),
> IOCTL(KVM_REGISTER_COALESCED_MMIO),
> IOCTL(KVM_UNREGISTER_COALESCED_MMIO),
> IOCTL(KVM_ASSIGN_PCI_DEVICE),
> - IOCTL(KVM_SET_GSI_ROUTING),
> IOCTL(KVM_ASSIGN_IRQ),
> IOCTL(KVM_ASSIGN_DEV_IRQ),
> IOCTL(KVM_REINJECT_CONTROL),
> @@ -44,16 +40,38 @@ static const struct ioctl kvm_ioctls[] = {
> IOCTL(KVM_CREATE_PIT2),
> IOCTL(KVM_SET_BOOT_CPU_ID),
> IOCTL(KVM_IOEVENTFD),
> - IOCTL(KVM_XEN_HVM_CONFIG),
> IOCTL(KVM_SET_CLOCK),
> IOCTL(KVM_GET_CLOCK),
> - IOCTL(KVM_GET_PIT2),
> - IOCTL(KVM_SET_PIT2),
> IOCTL(KVM_PPC_GET_PVINFO),
> IOCTL(KVM_SET_TSC_KHZ),
> IOCTL(KVM_GET_TSC_KHZ),
> IOCTL(KVM_ASSIGN_SET_INTX_MASK),
> IOCTL(KVM_SIGNAL_MSI),
> +#ifdef X86
> + IOCTL(KVM_SET_MEMORY_ALIAS),
> + IOCTL(KVM_GET_PIT),
> + IOCTL(KVM_SET_PIT),
> + IOCTL(KVM_GET_PIT2),
> + IOCTL(KVM_SET_PIT2),
> + IOCTL(KVM_SET_GSI_ROUTING),
> + IOCTL(KVM_XEN_HVM_CONFIG),
> + IOCTL(KVM_GET_MSRS),
> + IOCTL(KVM_SET_MSRS),
> + IOCTL(KVM_SET_CPUID),
> + IOCTL(KVM_GET_LAPIC),
> + IOCTL(KVM_SET_LAPIC),
> + IOCTL(KVM_SET_CPUID2),
> + IOCTL(KVM_GET_CPUID2),
> + IOCTL(KVM_X86_SET_MCE),
> + IOCTL(KVM_GET_VCPU_EVENTS),
> + IOCTL(KVM_SET_VCPU_EVENTS),
> + IOCTL(KVM_GET_DEBUGREGS),
> + IOCTL(KVM_SET_DEBUGREGS),
> + IOCTL(KVM_GET_XSAVE),
> + IOCTL(KVM_SET_XSAVE),
> + IOCTL(KVM_GET_XCRS),
> + IOCTL(KVM_SET_XCRS),
> +#endif
> #if defined(__powerpc__)
> IOCTL(KVM_PPC_GET_SMMU_INFO),
> IOCTL(KVM_PPC_ALLOCATE_HTAB),
> @@ -73,16 +91,9 @@ static const struct ioctl kvm_ioctls[] = {
> IOCTL(KVM_TRANSLATE),
> IOCTL(KVM_INTERRUPT),
> IOCTL(KVM_DEBUG_GUEST),
> - IOCTL(KVM_GET_MSRS),
> - IOCTL(KVM_SET_MSRS),
> - IOCTL(KVM_SET_CPUID),
> IOCTL(KVM_SET_SIGNAL_MASK),
> IOCTL(KVM_GET_FPU),
> IOCTL(KVM_SET_FPU),
> - IOCTL(KVM_GET_LAPIC),
> - IOCTL(KVM_SET_LAPIC),
> - IOCTL(KVM_SET_CPUID2),
> - IOCTL(KVM_GET_CPUID2),
> IOCTL(KVM_TPR_ACCESS_REPORTING),
> IOCTL(KVM_SET_VAPIC_ADDR),
> #if defined(__s390__)
> @@ -99,18 +110,9 @@ static const struct ioctl kvm_ioctls[] = {
> IOCTL(KVM_SET_GUEST_DEBUG),
> IOCTL(KVM_X86_SETUP_MCE),
> IOCTL(KVM_X86_GET_MCE_CAP_SUPPORTED),
> - IOCTL(KVM_X86_SET_MCE),
> IOCTL(KVM_IA64_VCPU_GET_STACK),
> IOCTL(KVM_IA64_VCPU_SET_STACK),
> - IOCTL(KVM_GET_VCPU_EVENTS),
> - IOCTL(KVM_SET_VCPU_EVENTS),
> - IOCTL(KVM_GET_DEBUGREGS),
> - IOCTL(KVM_SET_DEBUGREGS),
> IOCTL(KVM_ENABLE_CAP),
> - IOCTL(KVM_GET_XSAVE),
> - IOCTL(KVM_SET_XSAVE),
> - IOCTL(KVM_GET_XCRS),
> - IOCTL(KVM_SET_XCRS),
> IOCTL(KVM_DIRTY_TLB),
> IOCTL(KVM_GET_ONE_REG),
> IOCTL(KVM_SET_ONE_REG),
--
To unsubscribe from this list: send the line "unsubscribe trinity" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html