c
139 cleanup:
140 	pr_err("Unable to connect to host\n");
141 
142 	vmbus_connection.conn_state = DISCONNECTED;
143 
144 	if (vmbus_connection.channels)
145 		kfree(vmbus_connection.channels);
146 
147 	if (vmbus_connection.monitor_pages[0])
148 		hv_free_hyperv_page((unsigned long)vmbus_connection.monitor_pages[0]);
149 
150 	if (vmbus_connection.monitor_pages[1])
151 		hv_free_hyperv_page((unsigned long)vmbus_connection.monitor_pages[1]);
152 
153 	if (vmbus_connection.int_page)
154 		hv_free_hyperv_zeroed_page((unsigned long)vmbus_connection.int_page);
155 
156 	// Add similar checks and frees for other resources initialized above
157 
158 	kfree(msginfo);
159 
160 	return ret;
161 }
