Pull Hyper-V updates from Sasha Levin: - first round of vmbus hibernation support (Dexuan Cui) - remove dependencies on PAGE_SIZE (Maya Nakamura) - move the hyper-v tools/ code into the tools build system (Andy Shevchenko) - hyper-v balloon cleanups (Dexuan Cui) * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: Drivers: hv: vmbus: Resume after fixing up old primary channels Drivers: hv: vmbus: Suspend after cleaning up hv_sock and sub channels Drivers: hv: vmbus: Clean up hv_sock channels by force upon suspend Drivers: hv: vmbus: Suspend/resume the vmbus itself for hibernation Drivers: hv: vmbus: Ignore the offers when resuming from hibernation Drivers: hv: vmbus: Implement suspend/resume for VSC drivers for hibernation Drivers: hv: vmbus: Add a helper function is_sub_channel() Drivers: hv: vmbus: Suspend/resume the synic for hibernation Drivers: hv: vmbus: Break out synic enable and disable operations HID: hv: Remove dependencies on PAGE_SIZE for ring buffer Tools: hv: move to tools buildsystem hv_balloon: Reorganize the probe function hv_balloon: Use a static page for the balloon_up send buffer
Showing the changes to include/linux (1 of 10 files). Show all
Unified · Split
| @@ -245,7 +245,10 @@ struct vmbus_channel_offer { · 244 unmodified lines | |||
| 245 | } pipe; | 245 | } pipe; |
| 246 | } u; | 246 | } u; |
| 247 | /* | 247 | /* |
| 248 | * The sub_channel_index is defined in win8. | 248 | * The sub_channel_index is defined in Win8: a value of zero means a |
| 249 | * primary channel and a value of non-zero means a sub-channel. | ||
| 250 | * | ||
| 251 | * Before Win8, the field is reserved, meaning it's always zero. | ||
| 249 | */ | 252 | */ |
| 250 | u16 sub_channel_index; | 253 | u16 sub_channel_index; |
| 251 | u16 reserved3; | 254 | u16 reserved3; |
| @@ -423,6 +426,9 @@ enum vmbus_channel_message_type { · 171 unmodified lines | |||
| 423 | CHANNELMSG_COUNT | 426 | CHANNELMSG_COUNT |
| 424 | }; | 427 | }; |
| 425 | 428 | ||
| 429 | /* Hyper-V supports about 2048 channels, and the RELIDs start with 1. */ | ||
| 430 | #define INVALID_RELID U32_MAX | ||
| 431 | |||
| 426 | struct vmbus_channel_message_header { | 432 | struct vmbus_channel_message_header { |
| 427 | enum vmbus_channel_message_type msgtype; | 433 | enum vmbus_channel_message_type msgtype; |
| 428 | u32 padding; | 434 | u32 padding; |
| @@ -934,6 +940,11 @@ static inline bool is_hvsock_channel(const struct vmbus_channel *c) · 505 unmodified lines | |||
| 934 | VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER); | 940 | VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER); |
| 935 | } | 941 | } |
| 936 | 942 | ||
| 943 | static inline bool is_sub_channel(const struct vmbus_channel *c) | ||
| 944 | { | ||
| 945 | return c->offermsg.offer.sub_channel_index != 0; | ||
| 946 | } | ||
| 947 | |||
| 937 | static inline void set_channel_affinity_state(struct vmbus_channel *c, | 948 | static inline void set_channel_affinity_state(struct vmbus_channel *c, |
| 938 | enum hv_numa_policy policy) | 949 | enum hv_numa_policy policy) |
| 939 | { | 950 | { |
| @@ -1149,6 +1160,9 @@ struct hv_driver { · 209 unmodified lines | |||
| 1149 | int (*remove)(struct hv_device *); | 1160 | int (*remove)(struct hv_device *); |
| 1150 | void (*shutdown)(struct hv_device *); | 1161 | void (*shutdown)(struct hv_device *); |
| 1151 | 1162 | ||
| 1163 | int (*suspend)(struct hv_device *); | ||
| 1164 | int (*resume)(struct hv_device *); | ||
| 1165 | |||
| 1152 | }; | 1166 | }; |
| 1153 | 1167 | ||
| 1154 | /* Base device object */ | 1168 | /* Base device object */ |