aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hyperv.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-05 19:20:22 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-05 19:20:22 -0400
commitabf7dba7c4f77d781f6df50fefb19a64c5dc331f (patch)
tree38648731b502d5aec508f3b33f6616190e598eb6 /include/linux/hyperv.h
parent07c4dd3435aa387d3b58f4e941dc516513f14507 (diff)
parentb23220fe054e92f616b82450fae8cd3ab176cc60 (diff)
Merge tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH: "Here is the "big" char and misc driver patches for 4.18-rc1. It's not a lot of stuff here, but there are some highlights: - coreboot driver updates - soundwire driver updates - android binder updates - fpga big sync, mostly documentation - lots of minor driver updates All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits) vmw_balloon: fixing double free when batching mode is off MAINTAINERS: Add driver-api/fpga path fpga: clarify that unregister functions also free documentation: fpga: move fpga-region.txt to driver-api documentation: fpga: add bridge document to driver-api documentation: fpga: move fpga-mgr.txt to driver-api Documentation: fpga: move fpga overview to driver-api fpga: region: kernel-doc fixes fpga: bridge: kernel-doc fixes fpga: mgr: kernel-doc fixes fpga: use SPDX fpga: region: change api, add fpga_region_create/free fpga: bridge: change api, don't use drvdata fpga: manager: change api, don't use drvdata fpga: region: don't use drvdata in common fpga code Drivers: hv: vmbus: Removed an unnecessary cast from void * ver_linux: Drop redundant calls to system() to test if file is readable ver_linux: Move stderr redirection from function parameter to function body misc: IBM Virtual Management Channel Driver (VMC) rpmsg: Correct support for MODULE_DEVICE_TABLE() ...
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r--include/linux/hyperv.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 192ed8fbc403..11b5612dc066 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -163,6 +163,7 @@ static inline u32 hv_get_bytes_to_write(const struct hv_ring_buffer_info *rbi)
163 * 2 . 4 (Windows 8) 163 * 2 . 4 (Windows 8)
164 * 3 . 0 (Windows 8 R2) 164 * 3 . 0 (Windows 8 R2)
165 * 4 . 0 (Windows 10) 165 * 4 . 0 (Windows 10)
166 * 5 . 0 (Newer Windows 10)
166 */ 167 */
167 168
168#define VERSION_WS2008 ((0 << 16) | (13)) 169#define VERSION_WS2008 ((0 << 16) | (13))
@@ -170,10 +171,11 @@ static inline u32 hv_get_bytes_to_write(const struct hv_ring_buffer_info *rbi)
170#define VERSION_WIN8 ((2 << 16) | (4)) 171#define VERSION_WIN8 ((2 << 16) | (4))
171#define VERSION_WIN8_1 ((3 << 16) | (0)) 172#define VERSION_WIN8_1 ((3 << 16) | (0))
172#define VERSION_WIN10 ((4 << 16) | (0)) 173#define VERSION_WIN10 ((4 << 16) | (0))
174#define VERSION_WIN10_V5 ((5 << 16) | (0))
173 175
174#define VERSION_INVAL -1 176#define VERSION_INVAL -1
175 177
176#define VERSION_CURRENT VERSION_WIN10 178#define VERSION_CURRENT VERSION_WIN10_V5
177 179
178/* Make maximum size of pipe payload of 16K */ 180/* Make maximum size of pipe payload of 16K */
179#define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) 181#define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384)
@@ -570,7 +572,14 @@ struct vmbus_channel_initiate_contact {
570 struct vmbus_channel_message_header header; 572 struct vmbus_channel_message_header header;
571 u32 vmbus_version_requested; 573 u32 vmbus_version_requested;
572 u32 target_vcpu; /* The VCPU the host should respond to */ 574 u32 target_vcpu; /* The VCPU the host should respond to */
573 u64 interrupt_page; 575 union {
576 u64 interrupt_page;
577 struct {
578 u8 msg_sint;
579 u8 padding1[3];
580 u32 padding2;
581 };
582 };
574 u64 monitor_page1; 583 u64 monitor_page1;
575 u64 monitor_page2; 584 u64 monitor_page2;
576} __packed; 585} __packed;
@@ -585,6 +594,19 @@ struct vmbus_channel_tl_connect_request {
585struct vmbus_channel_version_response { 594struct vmbus_channel_version_response {
586 struct vmbus_channel_message_header header; 595 struct vmbus_channel_message_header header;
587 u8 version_supported; 596 u8 version_supported;
597
598 u8 connection_state;
599 u16 padding;
600
601 /*
602 * On new hosts that support VMBus protocol 5.0, we must use
603 * VMBUS_MESSAGE_CONNECTION_ID_4 for the Initiate Contact Message,
604 * and for subsequent messages, we must use the Message Connection ID
605 * field in the host-returned Version Response Message.
606 *
607 * On old hosts, we should always use VMBUS_MESSAGE_CONNECTION_ID (1).
608 */
609 u32 msg_conn_id;
588} __packed; 610} __packed;
589 611
590enum vmbus_channel_state { 612enum vmbus_channel_state {