On 09/22/2014 12:50 PM, Paolo Bonzini wrote: > Il 20/09/2014 01:03, David Matlack ha scritto: >> vcpu ioctls can hang the calling thread if issued while a vcpu is >> running. If we know ioctl is going to be rejected as invalid anyway, >> we can fail before trying to take the vcpu mutex. >> >> This patch does not change functionality, it just makes invalid ioctls >> fail faster. >> >> Signed-off-by: David Matlack <dmatlack@xxxxxxxxxx> >> --- >> virt/kvm/kvm_main.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >> index 96ec622..f9234e5 100644 >> --- a/virt/kvm/kvm_main.c >> +++ b/virt/kvm/kvm_main.c >> @@ -52,6 +52,7 @@ >> >> #include <asm/processor.h> >> #include <asm/io.h> >> +#include <asm/ioctl.h> >> #include <asm/uaccess.h> >> #include <asm/pgtable.h> >> >> @@ -1975,6 +1976,9 @@ static long kvm_vcpu_ioctl(struct file *filp, >> if (vcpu->kvm->mm != current->mm) >> return -EIO; >> >> + if (unlikely(_IOC_TYPE(ioctl) != KVMIO)) >> + return -EINVAL; >> + >> #if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) >> /* >> * Special cases: vcpu ioctls that are asynchronous to vcpu execution, >> > > Thanks, applying this patch. Isnt that the wrong trade off? We now have an extra condition check for every valid ioctl, to make an error case go faster. I know, the extra check is just a 1 or 2 cycles if branch prediction is right, but still. Christian -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html