diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index 531a593..f5283a0 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -165,8 +165,10 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
 	ret = vmbus_post_msg(open_msg,
 			       sizeof(struct vmbus_channel_open_channel));
 
-	if (ret != 0)
+	if (ret != 0) {
+		err = ret;
 		goto error1;
+	}
 
 	t = wait_for_completion_timeout(&open_info->waitevent, 5*HZ);
 	if (t == 0) {
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
index ae22e3c..197ea0e 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
@@ -429,11 +429,14 @@ int vmbus_post_msg(void *buffer, size_t buflen)
 	 */
 	while (retries < 3) {
 		ret =  hv_post_message(conn_id, 1, buffer, buflen);
-		if (ret != HV_STATUS_INSUFFICIENT_BUFFERS)
+		if (ret != HV_STATUS_INSUFFICIENT_BUFFERS) {
+			WARN(ret, KERN_ERR "ret = %d\n", ret);
 			return ret;
+		}
 		retries++;
 		msleep(100);
 	}
+	WARN(ret, KERN_ERR "ret = %d, retries=%d\n", ret, retries);
 	return ret;
 }
 
