mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
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>
This commit is contained in:
parent
f9f1db832b
commit
e9a27a9f9e
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user