diff options
author | 2017-04-30 16:21:18 -0700 | |
---|---|---|
committer | 2017-05-18 16:55:28 +0200 | |
commit | 54a66265d6754b37fb4baf1d970ec88a6225a988 (patch) | |
tree | 308f05e5a3e1c693fc8c5952ec2ecc942baab42e /drivers/hv/hyperv_vmbus.h | |
parent | Drivers: hv: util: Make hv_poll_channel() a little more efficient (diff) | |
download | linux-54a66265d6754b37fb4baf1d970ec88a6225a988.tar.gz linux-54a66265d6754b37fb4baf1d970ec88a6225a988.tar.bz2 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.h | 7 |
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; |