VMCI: Fix broken context ID retrieval
authorAndy King <acking@vmware.com>
Tue, 22 Jan 2013 17:15:04 +0000 (09:15 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jan 2013 17:29:26 +0000 (09:29 -0800)
I'm an idiot.  The context ID can be a really large unsigned number, which
means it'll appear negative as an int.  So actually the right fix here is just
to set it regardless of the returned value (but only for this particular
hypercall; normally we would check it).

Acked-by: Dmitry Torokhov <dtor@vmware.com>
Signed-off-by: Andy King <acking@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/vmw_vmci/vmci_guest.c

index de1a90be160af8e8a71e49c59091243092e84bf7..60c01999f489daa0154a6e02570ad5e7cbafdc80 100644 (file)
@@ -81,16 +81,13 @@ bool vmci_guest_code_active(void)
 u32 vmci_get_vm_context_id(void)
 {
        if (vm_context_id == VMCI_INVALID_ID) {
-               int result;
                struct vmci_datagram get_cid_msg;
                get_cid_msg.dst =
                    vmci_make_handle(VMCI_HYPERVISOR_CONTEXT_ID,
                                     VMCI_GET_CONTEXT_ID);
                get_cid_msg.src = VMCI_ANON_SRC_HANDLE;
                get_cid_msg.payload_size = 0;
-               result = vmci_send_datagram(&get_cid_msg);
-               if (result >= 0)
-                       vm_context_id = result;
+               vm_context_id = vmci_send_datagram(&get_cid_msg);
        }
        return vm_context_id;
 }