diff
 if (channel->ringbuffer_page) {
-	__free_pages(channel->ringbuffer_page,
+	struct page *temp = channel->ringbuffer_page;
+	channel->ringbuffer_page = NULL;
+	__free_pages(temp,
 		     get_order(channel->ringbuffer_pagecount));
 }
