diff
+ static void vmbus_safe_free_ring(struct vmbus_channel *channel)
+ {
+     if (channel->ringbuffer_page) {
+         __free_pages(channel->ringbuffer_page,
+                      get_order(channel->ringbuffer_pagecount * PAGE_SIZE));
+         channel->ringbuffer_page = NULL;
+         channel->ringbuffer_pagecount = 0;
+     }
+ }

1281 void vmbus_free_ring(struct vmbus_channel *channel)
1283         hv_ringbuffer_cleanup(&channel->outbound);
1284         hv_ringbuffer_cleanup(&channel->inbound);
-1286         if (channel->ringbuffer_page) {
-1287                 __free_pages(channel->ringbuffer_page,
-1288         }
+1286         vmbus_safe_free_ring(channel);
