]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/hyperv.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph...
[karo-tx-linux.git] / include / linux / hyperv.h
index 1744148a39f9b3d2673027ea3f8613db620ac6ce..30d3a1f794507e06f5a91ab12d589172f34d3444 100644 (file)
@@ -160,16 +160,18 @@ hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info *rbi,
  * 1 . 1  (Windows 7)
  * 2 . 4  (Windows 8)
  * 3 . 0  (Windows 8 R2)
+ * 4 . 0  (Windows 10)
  */
 
 #define VERSION_WS2008  ((0 << 16) | (13))
 #define VERSION_WIN7    ((1 << 16) | (1))
 #define VERSION_WIN8    ((2 << 16) | (4))
 #define VERSION_WIN8_1    ((3 << 16) | (0))
+#define VERSION_WIN10  ((4 << 16) | (0))
 
 #define VERSION_INVAL -1
 
-#define VERSION_CURRENT VERSION_WIN8_1
+#define VERSION_CURRENT VERSION_WIN10
 
 /* Make maximum size of pipe payload of 16K */
 #define MAX_PIPE_DATA_PAYLOAD          (sizeof(u8) * 16384)
@@ -389,10 +391,7 @@ enum vmbus_channel_message_type {
        CHANNELMSG_INITIATE_CONTACT             = 14,
        CHANNELMSG_VERSION_RESPONSE             = 15,
        CHANNELMSG_UNLOAD                       = 16,
-#ifdef VMBUS_FEATURE_PARENT_OR_PEER_MEMORY_MAPPED_INTO_A_CHILD
-       CHANNELMSG_VIEWRANGE_ADD                = 17,
-       CHANNELMSG_VIEWRANGE_REMOVE             = 18,
-#endif
+       CHANNELMSG_UNLOAD_RESPONSE              = 17,
        CHANNELMSG_COUNT
 };
 
@@ -549,21 +548,6 @@ struct vmbus_channel_gpadl_torndown {
        u32 gpadl;
 } __packed;
 
-#ifdef VMBUS_FEATURE_PARENT_OR_PEER_MEMORY_MAPPED_INTO_A_CHILD
-struct vmbus_channel_view_range_add {
-       struct vmbus_channel_message_header header;
-       PHYSICAL_ADDRESS viewrange_base;
-       u64 viewrange_length;
-       u32 child_relid;
-} __packed;
-
-struct vmbus_channel_view_range_remove {
-       struct vmbus_channel_message_header header;
-       PHYSICAL_ADDRESS viewrange_base;
-       u32 child_relid;
-} __packed;
-#endif
-
 struct vmbus_channel_relid_released {
        struct vmbus_channel_message_header header;
        u32 child_relid;
@@ -712,6 +696,11 @@ struct vmbus_channel {
        u32 target_vp;
        /* The corresponding CPUID in the guest */
        u32 target_cpu;
+       /*
+        * State to manage the CPU affiliation of channels.
+        */
+       struct cpumask alloced_cpus_in_node;
+       int numa_node;
        /*
         * Support for sub-channels. For high performance devices,
         * it will be useful to have multiple sub-channels to support
@@ -744,6 +733,15 @@ struct vmbus_channel {
         * All Sub-channels of a primary channel are linked here.
         */
        struct list_head sc_list;
+       /*
+        * Current number of sub-channels.
+        */
+       int num_sc;
+       /*
+        * Number of a sub-channel (position within sc_list) which is supposed
+        * to be used as the next outgoing channel.
+        */
+       int next_oc;
        /*
         * The primary channel this sub-channel belongs to.
         * This will be NULL for the primary channel.
@@ -758,9 +756,6 @@ struct vmbus_channel {
         * link up channels based on their CPU affinity.
         */
        struct list_head percpu_list;
-
-       int num_sc;
-       int next_oc;
 };
 
 static inline void set_channel_read_state(struct vmbus_channel *c, bool state)