[PATCH 1/3] Staging: hv: vmbus_drv: Introduce state in struct vmbus_channel to track util services

K. Y. Srinivasan kys at microsoft.com
Mon May 16 13:44:35 UTC 2011


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 <kys at microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz at microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane at microsoft.com>
Signed-off-by: Hank Janssen <hjanssen at microsoft.com>
---
 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




More information about the devel mailing list