diff options
author | Dexuan Cui <decui@microsoft.com> | 2019-09-05 23:01:22 +0000 |
---|---|---|
committer | Sasha Levin <sashal@kernel.org> | 2019-09-06 14:52:44 -0400 |
commit | d8bd2d442bb2688b428ac7164e5dc6d95d4fa65b (patch) | |
tree | 5779d9e76257a90c457b183963a61117a05c033a /include/linux/hyperv.h | |
parent | b307b38962eb0f22d1aa6dcf53cb7d3c2ed5eec7 (diff) | |
download | blackbird-op-linux-d8bd2d442bb2688b428ac7164e5dc6d95d4fa65b.tar.gz blackbird-op-linux-d8bd2d442bb2688b428ac7164e5dc6d95d4fa65b.zip |
Drivers: hv: vmbus: Resume after fixing up old primary channels
When the host re-offers the primary channels upon resume, the host only
guarantees the Instance GUID doesn't change, so vmbus_bus_suspend()
should invalidate channel->offermsg.child_relid and figure out the
number of primary channels that need to be fixed up upon resume.
Upon resume, vmbus_onoffer() finds the old channel structs, and maps
the new offers to the old channels, and fixes up the old structs,
and finally the resume callbacks of the VSC drivers will re-open
the channels.
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r-- | include/linux/hyperv.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 8a60e7766037..a3aa9e9ef6f2 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h @@ -426,6 +426,9 @@ enum vmbus_channel_message_type { CHANNELMSG_COUNT }; +/* Hyper-V supports about 2048 channels, and the RELIDs start with 1. */ +#define INVALID_RELID U32_MAX + struct vmbus_channel_message_header { enum vmbus_channel_message_type msgtype; u32 padding; |