aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2011-05-16 06:44:35 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-05-17 13:36:50 -0700
commit31bceb845e0f5393db1d9bf033d365cff7132c93 (patch)
treeeb9047d8a03734fd03da4a87f1019501056e5e12 /drivers/staging/hv
parentstaging: comedi: addi-data: Get rid of redundant ps_BoardInfo (diff)
downloadlinux-dev-31bceb845e0f5393db1d9bf033d365cff7132c93.tar.xz
linux-dev-31bceb845e0f5393db1d9bf033d365cff7132c93.zip
Staging: hv: vmbus_drv: Introduce state in struct vmbus_channel to track util services
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@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com> Signed-off-by: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/hv')
-rw-r--r--drivers/staging/hv/channel_mgmt.c2
-rw-r--r--drivers/staging/hv/hyperv.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/staging/hv/channel_mgmt.c b/drivers/staging/hv/channel_mgmt.c
index e8c706c6c830..1021713ea4c0 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 56af1ecbf0e5..8b826a115443 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;
/*