Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a19b789 authored by Andy King's avatar Andy King Committed by Greg Kroah-Hartman
Browse files

VMCI: Fix broken context ID retrieval



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: default avatarDmitry Torokhov <dtor@vmware.com>
Signed-off-by: default avatarAndy King <acking@vmware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 74465645
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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;
}