Staging: hv: vmbus: Use the newly introduced state in closing the channel
authorK. Y. Srinivasan <kys@microsoft.com>
Mon, 6 Jun 2011 22:49:59 +0000 (15:49 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 7 Jun 2011 20:46:00 +0000 (13:46 -0700)
Now, use the newly introduced state in closing the channel and eliminate a
potential failure condition (that currently was not being handled correctly).

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: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/channel.c

index 043fe25ed4f34ef42a756e9a584129ea9d95a127..5a2a947debd8c5b6d9bc9fded97ebe0d4d82b212 100644 (file)
@@ -549,22 +549,15 @@ EXPORT_SYMBOL_GPL(vmbus_teardown_gpadl);
 void vmbus_close(struct vmbus_channel *channel)
 {
        struct vmbus_channel_close_channel *msg;
-       struct vmbus_channel_msginfo *info;
        int ret;
 
        /* Stop callback and cancel the timer asap */
        channel->onchannel_callback = NULL;
 
        /* Send a closing message */
-       info = kmalloc(sizeof(*info) +
-                      sizeof(struct vmbus_channel_close_channel), GFP_KERNEL);
-        /* FIXME: can't do anything other than return here because the
-        *        function is void */
-       if (!info)
-               return;
 
+       msg = &channel->close_msg.msg;
 
-       msg = (struct vmbus_channel_close_channel *)info->msg;
        msg->header.msgtype = CHANNELMSG_CLOSECHANNEL;
        msg->child_relid = channel->offermsg.child_relid;
 
@@ -583,7 +576,6 @@ void vmbus_close(struct vmbus_channel *channel)
        free_pages((unsigned long)channel->ringbuffer_pages,
                get_order(channel->ringbuffer_pagecount * PAGE_SIZE));
 
-       kfree(info);
 
 }
 EXPORT_SYMBOL_GPL(vmbus_close);