diff
6 	if (channel->ringbuffer_page) {
+		struct page *temp = channel->ringbuffer_page;
+		channel->ringbuffer_page = NULL;
+		if (temp) {
-7 			__free_pages(channel->ringbuffer_page,
+7 			__free_pages(temp,
8 				     get_order(channel->ringbuffer_pagecount
9 					       << PAGE_SHIFT));
+		}
-10 		channel->ringbuffer_page = NULL;
10 	}
