Return value of this function will be that of ioctl().

#include <stdio.h>
#include <linux/kvm.h>

int main () {
        int fd;
        fd = open ("/dev/kvm", 0);
        fd = ioctl (fd, KVM_CREATE_VM, 0);
        ioctl (fd, KVM_SET_TSS_ADDR, 0xfffff000);       
        perror ("");
        return 0;
}

Output is "Operation not permitted". That's not what 
we want. 

Return -EINVAL in this case.

Signed-off-by: Guo Chao <y...@linux.vnet.ibm.com>
---
 arch/x86/kvm/x86.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index b3151ec..d9d5b5d 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2944,7 +2944,7 @@ static int kvm_vm_ioctl_set_tss_addr(struct kvm *kvm, 
unsigned long addr)
        int ret;
 
        if (addr > (unsigned int)(-3 * PAGE_SIZE))
-               return -1;
+               return -EINVAL;
        ret = kvm_x86_ops->set_tss_addr(kvm, addr);
        return ret;
 }
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to