summaryrefslogtreecommitdiffstats
path: root/drivers/hv/hyperv_vmbus.h
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2017-05-01 01:21:18 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-18 16:55:28 +0200
commit54a66265d6754b37fb4baf1d970ec88a6225a988 (patch)
tree308f05e5a3e1c693fc8c5952ec2ecc942baab42e /drivers/hv/hyperv_vmbus.h
parentDrivers: hv: util: Make hv_poll_channel() a little more efficient (diff)
downloadlinux-54a66265d6754b37fb4baf1d970ec88a6225a988.tar.xz
linux-54a66265d6754b37fb4baf1d970ec88a6225a988.zip
Drivers: hv: vmbus: Fix rescind handling
Fix the rescind handling. This patch addresses the following rescind scenario that is currently not handled correctly: If a rescind were to be received while the offer is still being peocessed, we will be blocked indefinitely since the rescind message is handled on the same work element as the offer message. Fix this issue. I would like to thank Dexuan Cui <decui@microsoft.com> and Long Li <longli@microsoft.com> for working with me on this patch. 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.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
index fa514be7679c..1b6a5e0dfa75 100644
--- a/drivers/hv/hyperv_vmbus.h
+++ b/drivers/hv/hyperv_vmbus.h
@@ -303,6 +303,13 @@ enum vmbus_connect_state {
#define MAX_SIZE_CHANNEL_MESSAGE HV_MESSAGE_PAYLOAD_BYTE_COUNT
struct vmbus_connection {
+ /*
+ * CPU on which the initial host contact was made.
+ */
+ int connect_cpu;
+
+ atomic_t offer_in_progress;
+
enum vmbus_connect_state conn_state;
atomic_t next_gpadl_handle;