[Bug 228907] VMCI driver: During datagram dispatch if there's no source context then use the current context.
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jun 11 23:31:06 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228907
Bug ID: 228907
Summary: VMCI driver: During datagram dispatch if there's no
source context then use the current context.
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: vdasahar at gmail.com
When dispatching a VMCI datagram, if no source context is provided we must use
the current context. Also, it's better to use VMCI_MEMORY_ATOMIC i.e, M_NOWAIT
for memory allocation in datagram_create_hnd. Could you please help get this
patch in?
--- a/freebsd_driver/src/vmci_datagram.c
+++ b/freebsd_driver/src/vmci_datagram.c
@@ -160,7 +160,7 @@ datagram_create_hnd(vmci_id resource_id, uint32_t flags,
handle = VMCI_MAKE_HANDLE(context_id, resource_id);
}
- entry = vmci_alloc_kernel_mem(sizeof(*entry), VMCI_MEMORY_NORMAL);
+ entry = vmci_alloc_kernel_mem(sizeof(*entry), VMCI_MEMORY_ATOMIC);
if (entry == NULL) {
VMCI_LOG_WARNING(LGPFX"Failed allocating memory for datagram "
"entry.\n");
@@ -457,7 +457,7 @@ vmci_datagram_dispatch_as_guest(struct vmci_datagram *dg)
resource = vmci_resource_get(dg->src, VMCI_RESOURCE_TYPE_DATAGRAM);
if (NULL == resource)
- return VMCI_ERROR_NO_HANDLE;
+ return (VMCI_ERROR_NO_HANDLE);
retval = vmci_send_datagram(dg);
vmci_resource_release(resource);
@@ -495,6 +495,10 @@ vmci_datagram_dispatch(vmci_id context_id, struct
vmci_datagram *dg)
return (VMCI_ERROR_INVALID_ARGS);
}
+ /* If no source context then use the current context. */
+ if (VMCI_INVALID_ID == dg->src.context)
+ dg->src.context = vmci_get_context_id();
+
return (vmci_datagram_dispatch_as_guest(dg));
}
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list