summaryrefslogtreecommitdiff
path: root/drivers/misc/vmw_vmci
diff options
context:
space:
mode:
authorAndy King <acking@vmware.com>2013-03-07 19:29:08 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-15 23:58:12 +0400
commit347e0899b1c75d907f01ac883ca38d37fe9bfa42 (patch)
tree74b1b63235134845774d4f9b73952944fb271120 /drivers/misc/vmw_vmci
parent61ec7e77d724f3150338ecaa2d16d4379b7498b1 (diff)
downloadlinux-347e0899b1c75d907f01ac883ca38d37fe9bfa42.tar.xz
VMCI: Fix process-to-process DRGAMs.
When sending between processes, we always schedule a work item. Our work info struct has the message embedded in the middle, which means that we end up overwriting subsequent fields when we copy the (variable-length) message into it. Move it to the end of the struct. Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Andy King <acking@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/vmw_vmci')
-rw-r--r--drivers/misc/vmw_vmci/vmci_datagram.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/misc/vmw_vmci/vmci_datagram.c b/drivers/misc/vmw_vmci/vmci_datagram.c
index ed5c433cd493..f3cdd904fe4d 100644
--- a/drivers/misc/vmw_vmci/vmci_datagram.c
+++ b/drivers/misc/vmw_vmci/vmci_datagram.c
@@ -42,9 +42,11 @@ struct datagram_entry {
struct delayed_datagram_info {
struct datagram_entry *entry;
- struct vmci_datagram msg;
struct work_struct work;
bool in_dg_host_queue;
+ /* msg and msg_payload must be together. */
+ struct vmci_datagram msg;
+ u8 msg_payload[];
};
/* Number of in-flight host->host datagrams */