summaryrefslogtreecommitdiffstats
path: root/drivers/hv/hyperv_vmbus.h
diff options
context:
space:
mode:
authorK. Y. Srinivasan2017-01-19 19:51:50 +0100
committerGreg Kroah-Hartman2017-01-20 14:48:03 +0100
commite810e48c0c9a1a1ebb90cfe966bce6dc80ce08e7 (patch)
tree8fbbcdd8b1297e8968c78bb5f697f058923a4401 /drivers/hv/hyperv_vmbus.h
parentDrivers: hv: vmbus: Move the check for hypercall page setup (diff)
downloadkernel-qcow2-linux-e810e48c0c9a1a1ebb90cfe966bce6dc80ce08e7.tar.gz
kernel-qcow2-linux-e810e48c0c9a1a1ebb90cfe966bce6dc80ce08e7.tar.xz
kernel-qcow2-linux-e810e48c0c9a1a1ebb90cfe966bce6dc80ce08e7.zip
Drivers: hv: vmbus: Move the code to signal end of message
As part of the effort to separate out architecture specific code, move the code for signaling end of message. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/hv/hyperv_vmbus.h')
-rw-r--r--drivers/hv/hyperv_vmbus.h35
1 files changed, 0 insertions, 35 deletions
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
index 59eb28c45ff5..e9f5d2c2fb6b 100644
--- a/drivers/hv/hyperv_vmbus.h
+++ b/drivers/hv/hyperv_vmbus.h
@@ -521,41 +521,6 @@ struct vmbus_channel_message_table_entry {
extern struct vmbus_channel_message_table_entry
channel_message_table[CHANNELMSG_COUNT];
-/* Free the message slot and signal end-of-message if required */
-static inline void vmbus_signal_eom(struct hv_message *msg, u32 old_msg_type)
-{
- /*
- * On crash we're reading some other CPU's message page and we need
- * to be careful: this other CPU may already had cleared the header
- * and the host may already had delivered some other message there.
- * In case we blindly write msg->header.message_type we're going
- * to lose it. We can still lose a message of the same type but
- * we count on the fact that there can only be one
- * CHANNELMSG_UNLOAD_RESPONSE and we don't care about other messages
- * on crash.
- */
- if (cmpxchg(&msg->header.message_type, old_msg_type,
- HVMSG_NONE) != old_msg_type)
- return;
-
- /*
- * Make sure the write to MessageType (ie set to
- * HVMSG_NONE) happens before we read the
- * MessagePending and EOMing. Otherwise, the EOMing
- * will not deliver any more messages since there is
- * no empty slot
- */
- mb();
-
- if (msg->header.message_flags.msg_pending) {
- /*
- * This will cause message queue rescan to
- * possibly deliver another msg from the
- * hypervisor
- */
- wrmsrl(HV_X64_MSR_EOM, 0);
- }
-}
/* General vmbus interface */