diff
+#define SAFE_FREE_PAGES(pp, order) do { \
+	if (pp) { \
+		__free_pages(pp, order); \
+		pp = NULL; \
+	} \
+} while (0)
+
 void vmbus_free_ring(struct vmbus_channel *channel)
 {
 	hv_ringbuffer_cleanup(&channel->outbound);
 	hv_ringbuffer_cleanup(&channel->inbound);
 
-	if (channel->ringbuffer_page) {
-		__free_pages(channel->ringbuffer_page,
-			     get_order(channel->ringbuffer_pagecount));
-	}
+	SAFE_FREE_PAGES(channel->ringbuffer_page,
+			get_order(channel->ringbuffer_pagecount));
 }
