[azure 4.13][PATCH 07/19] Revert "UBUNTU: SAUCE: vmbus: remove "goto error_clean_msglist" in vmbus_open()"
Marcelo Henrique Cerri
marcelo.cerri at canonical.com
Tue Dec 12 15:41:56 UTC 2017
From: Dexuan Cui <decui at microsoft.com>
BugLink: http://bugs.launchpad.net/bugs/1736283
This reverts commit d16b19a0e6687b34c1e1e7dad2fe36250d2b5556.
Signed-off-by: Dexuan Cui <decui at microsoft.com>
Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri at canonical.com>
---
drivers/hv/channel.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index a76180bcb9f7..adc6210b8825 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -200,18 +200,17 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
ret = vmbus_post_msg(open_msg,
sizeof(struct vmbus_channel_open_channel), true);
- if (ret == 0)
- wait_for_completion(&open_info->waitevent);
+ if (ret != 0) {
+ err = ret;
+ goto error_clean_msglist;
+ }
+
+ wait_for_completion(&open_info->waitevent);
spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
list_del(&open_info->msglistentry);
spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
- if (ret != 0) {
- err = ret;
- goto error_free_gpadl;
- }
-
if (newchannel->rescind) {
err = -ENODEV;
goto error_free_gpadl;
@@ -226,6 +225,11 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
kfree(open_info);
return 0;
+error_clean_msglist:
+ spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
+ list_del(&open_info->msglistentry);
+ spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
+
error_free_gpadl:
vmbus_teardown_gpadl(newchannel, newchannel->ringbuffer_gpadlhandle);
kfree(open_info);
--
2.7.4
More information about the kernel-team
mailing list