/* untrack_pfn_vma is called while unmapping a pfnmap for a region. untrack can be called for a specific region indicated by pfn and size or can be for the entire vma (in which case size can be zero).  */
void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn, unsigned long size)
/* untrack_pfn_vma is called while unmapping a pfnmap for a region. untrack can be called for a specific region indicated by pfn and size or can be for the entire vma (in which case size can be zero).  */
void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn, unsigned long size)
{
	resource_size_t paddr;
	unsigned long vma_size = vma->vm_end - vma->vm_start;
	if (is_linear_pfn_mapping(vma)) {
		paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
		free_pfn_range(paddr, vma_size);
		return;
	}
}