sparc64: Use free_bootmem_late() in mdesc_lmb_free().
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									121dd5f277
								
							
						
					
					
						commit
						adfe67ddff
					
				| @ -10,6 +10,7 @@ | ||||
| #include <linux/slab.h> | ||||
| #include <linux/mm.h> | ||||
| #include <linux/miscdevice.h> | ||||
| #include <linux/bootmem.h> | ||||
| 
 | ||||
| #include <asm/cpudata.h> | ||||
| #include <asm/hypervisor.h> | ||||
| @ -108,25 +109,15 @@ static struct mdesc_handle * __init mdesc_lmb_alloc(unsigned int mdesc_size) | ||||
| 
 | ||||
| static void mdesc_lmb_free(struct mdesc_handle *hp) | ||||
| { | ||||
| 	unsigned int alloc_size, handle_size = hp->handle_size; | ||||
| 	unsigned long start, end; | ||||
| 	unsigned int alloc_size; | ||||
| 	unsigned long start; | ||||
| 
 | ||||
| 	BUG_ON(atomic_read(&hp->refcnt) != 0); | ||||
| 	BUG_ON(!list_empty(&hp->list)); | ||||
| 
 | ||||
| 	alloc_size = PAGE_ALIGN(handle_size); | ||||
| 
 | ||||
| 	start = (unsigned long) hp; | ||||
| 	end = start + alloc_size; | ||||
| 
 | ||||
| 	while (start < end) { | ||||
| 		struct page *p; | ||||
| 
 | ||||
| 		p = virt_to_page(start); | ||||
| 		ClearPageReserved(p); | ||||
| 		__free_page(p); | ||||
| 		start += PAGE_SIZE; | ||||
| 	} | ||||
| 	alloc_size = PAGE_ALIGN(hp->handle_size); | ||||
| 	start = __pa(hp); | ||||
| 	free_bootmem_late(start, alloc_size); | ||||
| } | ||||
| 
 | ||||
| static struct mdesc_mem_ops lmb_mdesc_ops = { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user