Drivers: hv: vmbus: Fix rescind handling issues

This patch handles the following issues that were observed when we are
handling racing channel offer message and rescind message for the same
offer:

1. Since the host does not respond to messages on a rescinded channel,
in the current code, we could be indefinitely blocked on the vmbus_open() call.

2. When a rescinded channel is being closed, if there is a pending interrupt on the
channel, we could end up freeing the channel that the interrupt handler would run on.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
Tested-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
K. Y. Srinivasan
2017-08-11 10:03:59 -07:00
committed by Greg Kroah-Hartman
parent 3f2baa8a7d
commit 6f3d791f30
4 changed files with 45 additions and 3 deletions

View File

@@ -879,6 +879,8 @@ struct vmbus_channel {
*/
enum hv_numa_policy affinity_policy;
bool probe_done;
};
static inline bool is_hvsock_channel(const struct vmbus_channel *c)