summaryrefslogtreecommitdiff
path: root/arch/powerpc/kvm/powerpc.c
diff options
context:
space:
mode:
authorStuart Yoder <stuart.yoder@freescale.com>2013-05-02 18:08:46 (GMT)
committerStuart Yoder <stuart.yoder@freescale.com>2013-05-02 22:59:30 (GMT)
commit21d79055a3bfbe29b260ea7a986701d3d6db32be (patch)
tree7a6b2905e22857c92a4450534acabf4f7e853c28 /arch/powerpc/kvm/powerpc.c
parentcb74e74b3f5bb0aeaa1a36ee20d311c671da02c8 (diff)
downloadlinux-fsl-qoriq-21d79055a3bfbe29b260ea7a986701d3d6db32be.tar.xz
KVM: PPC: revert the MPIC and irqfd patches
There are important bug fixes in the upstream patches that got applied. This revert commit removes the old patches to prepare for the new set. ------------------------------------------------------------------ Revert "KVM: PPC: MPIC: Restrict to e500 platforms" This reverts commit 540983d28a0dbe60b8bd08d96448b6544ad60293. Revert "KVM: PPC: MPIC: Add support for KVM_IRQ_LINE" This reverts commit ce5692ad437dfa0e7eb35918c40cdbd119b50909. Revert "KVM: PPC: Support irq routing and irqfd for in-kernel MPIC" This reverts commit 4ad8621c44d1420090241eaa8d5594e72ae6e05f. Revert "KVM: Move irqfd resample cap handling to generic code" This reverts commit e5557be2f787cff8f4daab4b39d38b5822f41390. Revert "KVM: Move irq routing setup to irqchip.c" This reverts commit 4486cf9a7a4d823c43b54e1b6280f41bcc59022d. Revert "KVM: Extract generic irqchip logic into irqchip.c" This reverts commit 0028971f3b4251cc231989dd9570f426d8472a2b. Revert "KVM: Move irq routing to generic code" This reverts commit e144029a9451b391afcbe123d1895523654e2bc5. Revert "KVM: Remove kvm_get_intr_delivery_bitmask" This reverts commit a7e10a68a247bbcde502947cf2fd4a7722c30512. Revert "KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing" This reverts commit 38deef57a0eef339636c8fb8b8207a5a24e241ad. Revert "KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING" This reverts commit 3b196a30f460bf0f1bd6737266ed479a597a5b58. Revert "KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS" This reverts commit 40602a78a8a12d17ca895ea0a2721441c155801f. Revert "kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC" This reverts commit 36e75cd4b65376dbee78ad92b084f9428868fe29. Revert "kvm/ppc/mpic: in-kernel MPIC emulation" This reverts commit 13ded2807a22aceff940ca1e282897e36fb0ba47. Revert "kvm/ppc/mpic: adapt to kernel style and environment" This reverts commit ac811c14ba3229ecbd39f3dc0b7f4c43ded36308. Revert "kvm/ppc/mpic: remove some obviously unneeded code" This reverts commit a60b865ac8d5cf3bff1e4a7dd43b6d8aaed87391. Revert "kvm/ppc/mpic: import hw/openpic.c from QEMU" This reverts commit 256cdf3f6df0561883ce801fd29595ecd031209a. Revert "kvm: add device control API" This reverts commit 8c848b9ed8b15aaccfb54511b22b205afc14f2d6. ------------------------------------------------------------------ Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Diffstat (limited to 'arch/powerpc/kvm/powerpc.c')
-rw-r--r--arch/powerpc/kvm/powerpc.c55
1 files changed, 6 insertions, 49 deletions
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 990e24a..4bf74d4 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -25,7 +25,6 @@
#include <linux/hrtimer.h>
#include <linux/fs.h>
#include <linux/slab.h>
-#include <linux/file.h>
#include <asm/cputable.h>
#include <asm/uaccess.h>
#include <asm/kvm_ppc.h>
@@ -33,7 +32,6 @@
#include <asm/cputhreads.h>
#include <asm/irqflags.h>
#include "timing.h"
-#include "irq.h"
#include "../mm/mmu_decl.h"
#define CREATE_TRACE_POINTS
@@ -319,7 +317,6 @@ int kvm_dev_ioctl_check_extension(long ext)
case KVM_CAP_ENABLE_CAP:
case KVM_CAP_ONE_REG:
case KVM_CAP_IOEVENTFD:
- case KVM_CAP_DEVICE_CTRL:
r = 1;
break;
#ifndef CONFIG_KVM_BOOK3S_64_HV
@@ -329,9 +326,6 @@ int kvm_dev_ioctl_check_extension(long ext)
#if defined(CONFIG_KVM_E500V2) || defined(CONFIG_KVM_E500MC)
case KVM_CAP_SW_TLB:
#endif
-#ifdef CONFIG_KVM_MPIC
- case KVM_CAP_IRQ_MPIC:
-#endif
r = 1;
break;
case KVM_CAP_COALESCED_MMIO:
@@ -466,15 +460,6 @@ void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
tasklet_kill(&vcpu->arch.tasklet);
kvmppc_remove_vcpu_debugfs(vcpu);
-
- switch (vcpu->arch.irq_type) {
-#ifdef CONFIG_KVM_MPIC
- case KVMPPC_IRQ_MPIC:
- kvmppc_mpic_disconnect_vcpu(vcpu->arch.mpic, vcpu);
- break;
-#endif
- }
-
kvmppc_core_vcpu_free(vcpu);
}
@@ -778,10 +763,7 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
break;
case KVM_CAP_PPC_EPR:
r = 0;
- if (cap->args[0])
- vcpu->arch.epr_flags |= KVMPPC_EPR_USER;
- else
- vcpu->arch.epr_flags &= ~KVMPPC_EPR_USER;
+ vcpu->arch.epr_enabled = cap->args[0];
break;
#ifdef CONFIG_BOOKE
case KVM_CAP_PPC_BOOKE_WATCHDOG:
@@ -802,25 +784,6 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
break;
}
#endif
-#ifdef CONFIG_KVM_MPIC
- case KVM_CAP_IRQ_MPIC: {
- struct file *filp;
- struct kvm_device *dev;
-
- r = -EBADF;
- filp = fget(cap->args[0]);
- if (!filp)
- break;
-
- r = -EPERM;
- dev = kvm_device_from_filp(filp);
- if (dev)
- r = kvmppc_mpic_connect_vcpu(dev, vcpu, cap->args[1]);
-
- fput(filp);
- break;
- }
-#endif
default:
r = -EINVAL;
break;
@@ -943,20 +906,9 @@ static int kvm_vm_ioctl_get_pvinfo(struct kvm_ppc_pvinfo *pvinfo)
return 0;
}
-int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_event)
-{
- if (!irqchip_in_kernel(kvm))
- return -ENXIO;
-
- irq_event->status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
- irq_event->irq, irq_event->level);
- return 0;
-}
-
long kvm_arch_vm_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
- struct kvm *kvm __maybe_unused = filp->private_data;
void __user *argp = (void __user *)arg;
long r;
@@ -975,6 +927,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
#ifdef CONFIG_PPC_BOOK3S_64
case KVM_CREATE_SPAPR_TCE: {
struct kvm_create_spapr_tce create_tce;
+ struct kvm *kvm = filp->private_data;
r = -EFAULT;
if (copy_from_user(&create_tce, argp, sizeof(create_tce)))
@@ -986,6 +939,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
#ifdef CONFIG_KVM_BOOK3S_64_HV
case KVM_ALLOCATE_RMA: {
+ struct kvm *kvm = filp->private_data;
struct kvm_allocate_rma rma;
r = kvm_vm_ioctl_allocate_rma(kvm, &rma);
@@ -995,6 +949,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
}
case KVM_PPC_ALLOCATE_HTAB: {
+ struct kvm *kvm = filp->private_data;
u32 htab_order;
r = -EFAULT;
@@ -1011,6 +966,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
}
case KVM_PPC_GET_HTAB_FD: {
+ struct kvm *kvm = filp->private_data;
struct kvm_get_htab_fd ghf;
r = -EFAULT;
@@ -1023,6 +979,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
#ifdef CONFIG_PPC_BOOK3S_64
case KVM_PPC_GET_SMMU_INFO: {
+ struct kvm *kvm = filp->private_data;
struct kvm_ppc_smmu_info info;
memset(&info, 0, sizeof(info));