/* Release the memory allocated by a previous call to alloc_pages_exact.  */
void free_pages_exact(void *virt, size_t size)
/* Release the memory allocated by a previous call to alloc_pages_exact.  */
void free_pages_exact(void *virt, size_t size)
{
	unsigned long addr = (unsigned long)virt;
	unsigned long end = addr + PAGE_ALIGN(size);
	while (addr < end) {
		free_page(addr);
		addr += PAGE_SIZE;
	}
}