summaryrefslogtreecommitdiffstats
path: root/drivers/staging/hv/channel.c
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2011-06-06 15:49:59 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-06-07 13:46:00 -0700
commite9a27a9f9ef18826030f6d50efde0dc68b7d1be2 (patch)
treeb346cb8850ebbcce25ae116d49e76a91b8477e3c /drivers/staging/hv/channel.c
parentf9f1db832b6d04303f443a7f941367355844678a (diff)
downloadlinux-stable-e9a27a9f9ef18826030f6d50efde0dc68b7d1be2.tar.gz
linux-stable-e9a27a9f9ef18826030f6d50efde0dc68b7d1be2.tar.bz2
linux-stable-e9a27a9f9ef18826030f6d50efde0dc68b7d1be2.zip
Staging: hv: vmbus: Use the newly introduced state in closing the channel
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>
Diffstat (limited to 'drivers/staging/hv/channel.c')
-rw-r--r--drivers/staging/hv/channel.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/staging/hv/channel.c b/drivers/staging/hv/channel.c
index 043fe25ed4f3..5a2a947debd8 100644
--- a/drivers/staging/hv/channel.c
+++ b/drivers/staging/hv/channel.c
@@ -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);