All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH v2 5/6] KVM: x86: prevent setup of invalid routes
Date: Tue, 10 Jan 2017 13:26:48 +0800	[thread overview]
Message-ID: <20170110052648.GJ4135@pxdev.xzpeter.org> (raw)
In-Reply-To: <20161216151006.11776-6-rkrcmar@redhat.com>

On Fri, Dec 16, 2016 at 04:10:05PM +0100, Radim Krčmář wrote:
> The check in kvm_set_pic_irq() and kvm_set_ioapic_irq() was just a
> temporary measure until the code improved enough for us to do this.
> 
> This changes APIC in a case when KVM_SET_GSI_ROUTING is called to set up pic
> and ioapic routes before KVM_CREATE_IRQCHIP.  Those rules would get overwritten
> by KVM_CREATE_IRQCHIP at best, so it is pointless to allow it.  Userspaces
> hopefully noticed that things don't work if they do that and don't do that.
> 
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>

Since we are at here, do we need to protect KVM_SET_GSI_ROUTING in
general as well to make sure kernel APIC is there? Like:

---------8<---------

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 482612b..31141a7 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3057,6 +3057,10 @@ static long kvm_vm_ioctl(struct file *filp,
                struct kvm_irq_routing_entry *entries = NULL;

                r = -EFAULT;
+
+               if (!irqchip_in_kernel(kvm))
+                       goto out;
+
                if (copy_from_user(&routing, argp, sizeof(routing)))
                        goto out;
                r = -EINVAL;

--------->8---------

Thanks,

-- peterx

  parent reply	other threads:[~2017-01-10  5:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-16 15:10 [PATCH v2 0/6] KVM: x86: minor irqchip improvements (API change) Radim Krčmář
2016-12-16 15:10 ` [PATCH v2 1/6] KVM: x86: don't allow kernel irqchip with split irqchip Radim Krčmář
2017-01-03 12:15   ` David Hildenbrand
2016-12-16 15:10 ` [PATCH v2 2/6] KVM: x86: decouple irqchip_in_kernel() and pic_irqchip() Radim Krčmář
2016-12-16 15:25   ` Paolo Bonzini
2016-12-16 15:44     ` Radim Krčmář
2017-01-03 12:56   ` David Hildenbrand
2017-01-10  5:09     ` Peter Xu
2017-01-10  9:39       ` Paolo Bonzini
2016-12-16 15:10 ` [PATCH v2 3/6] KVM: x86: make pic setup code look like ioapic setup Radim Krčmář
2017-01-03 13:04   ` David Hildenbrand
2017-01-03 16:12     ` Paolo Bonzini
2017-01-04  9:10       ` David Hildenbrand
2016-12-16 15:10 ` [PATCH v2 4/6] KVM: x86: refactor pic setup in kvm_set_routing_entry Radim Krčmář
2017-01-03 13:05   ` David Hildenbrand
2016-12-16 15:10 ` [PATCH v2 5/6] KVM: x86: prevent setup of invalid routes Radim Krčmář
2017-01-03 13:06   ` David Hildenbrand
2017-01-10  5:26   ` Peter Xu [this message]
2017-01-10  9:43     ` Paolo Bonzini
2016-12-16 15:10 ` [PATCH v2 6/6] KVM: x86: simplify conditions with split/kernel irqchip Radim Krčmář
2017-01-03 13:20   ` David Hildenbrand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170110052648.GJ4135@pxdev.xzpeter.org \
    --to=peterx@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.