OSDN Git Service

Drivers: hv: vmbus: Add a helper function is_sub_channel()
authorDexuan Cui <decui@microsoft.com>
Thu, 5 Sep 2019 23:01:16 +0000 (23:01 +0000)
committerSasha Levin <sashal@kernel.org>
Fri, 6 Sep 2019 18:52:44 +0000 (14:52 -0400)
The existing method of telling if a channel is sub-channel in
vmbus_process_offer() is cumbersome. This new simple helper function
is preferred in future.

Signed-off-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/hyperv.h

index 6256cc3..2d39248 100644 (file)
@@ -245,7 +245,10 @@ struct vmbus_channel_offer {
                } pipe;
        } u;
        /*
-        * The sub_channel_index is defined in win8.
+        * The sub_channel_index is defined in Win8: a value of zero means a
+        * primary channel and a value of non-zero means a sub-channel.
+        *
+        * Before Win8, the field is reserved, meaning it's always zero.
         */
        u16 sub_channel_index;
        u16 reserved3;
@@ -934,6 +937,11 @@ static inline bool is_hvsock_channel(const struct vmbus_channel *c)
                  VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
 }
 
+static inline bool is_sub_channel(const struct vmbus_channel *c)
+{
+       return c->offermsg.offer.sub_channel_index != 0;
+}
+
 static inline void set_channel_affinity_state(struct vmbus_channel *c,
                                              enum hv_numa_policy policy)
 {