powerpc: Record vma->phys_addr in ioremap()
The vmalloc code can track the physical address of a vma, when the vma is used for ioremap, if set it is displayed in /proc/vmallocinfo. Because get_vm_area_caller() doesn't know it's being called for ioremap() it's up to the arch code to set the phys_addr. A bunch of other arch's do this, I'm not sure why powerpc doesn't? Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
		
							parent
							
								
									bb2c458b8b
								
							
						
					
					
						commit
						7a9d12568e
					
				| @ -230,6 +230,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, | ||||
| 		area = get_vm_area_caller(size, VM_IOREMAP, caller); | ||||
| 		if (area == 0) | ||||
| 			return NULL; | ||||
| 		area->phys_addr = p; | ||||
| 		v = (unsigned long) area->addr; | ||||
| 	} else { | ||||
| 		v = (ioremap_bot -= size); | ||||
|  | ||||
| @ -223,6 +223,8 @@ void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size, | ||||
| 					    caller); | ||||
| 		if (area == NULL) | ||||
| 			return NULL; | ||||
| 
 | ||||
| 		area->phys_addr = paligned; | ||||
| 		ret = __ioremap_at(paligned, area->addr, size, flags); | ||||
| 		if (!ret) | ||||
| 			vunmap(area->addr); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user