In preparation for getting rid of util channel synchronization based on
counting util channels, introduce state in  struct vmbus_channel  to
track util services.

Signed-off-by: K. Y. Srinivasan <[email protected]>
Signed-off-by: Haiyang Zhang <[email protected]>
Signed-off-by: Abhishek Kane <[email protected]>
Signed-off-by: Hank Janssen <[email protected]>
---
 drivers/staging/hv/channel_mgmt.c |    2 ++
 drivers/staging/hv/hyperv.h       |    5 +++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/staging/hv/channel_mgmt.c 
b/drivers/staging/hv/channel_mgmt.c
index e8c706c..1021713 100644
--- a/drivers/staging/hv/channel_mgmt.c
+++ b/drivers/staging/hv/channel_mgmt.c
@@ -419,6 +419,7 @@ static void vmbus_process_offer(struct work_struct *work)
                 * can cleanup properly
                 */
                newchannel->state = CHANNEL_OPEN_STATE;
+               newchannel->util_index = -1; /* Invalid index */
 
                /* Open IC channels */
                for (cnt = 0; cnt < MAX_MSG_TYPES; cnt++) {
@@ -430,6 +431,7 @@ static void vmbus_process_offer(struct work_struct *work)
                                                 hv_cb_utils[cnt].callback,
                                                 newchannel) == 0) {
                                hv_cb_utils[cnt].channel = newchannel;
+                               newchannel->util_index = cnt;
 
                                pr_info("%s\n", hv_cb_utils[cnt].log_msg);
 
diff --git a/drivers/staging/hv/hyperv.h b/drivers/staging/hv/hyperv.h
index 56af1ec..8b826a1 100644
--- a/drivers/staging/hv/hyperv.h
+++ b/drivers/staging/hv/hyperv.h
@@ -532,6 +532,11 @@ struct vmbus_channel {
        struct work_struct work;
 
        enum vmbus_channel_state state;
+       /*
+        * For util channels, stash the
+        * the service index for easy access.
+        */
+       s8 util_index;
 
        struct vmbus_channel_offer_channel offermsg;
        /*
-- 
1.7.4.1

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to