diff options
Diffstat (limited to 'drivers/dax/device.c')
| -rw-r--r-- | drivers/dax/device.c | 19 | 
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/dax/device.c b/drivers/dax/device.c index e428468ab661..8465d12fecba 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -27,9 +27,8 @@ static void dev_dax_percpu_release(struct percpu_ref *ref)  	complete(&dev_dax->cmp);  } -static void dev_dax_percpu_exit(void *data) +static void dev_dax_percpu_exit(struct percpu_ref *ref)  { -	struct percpu_ref *ref = data;  	struct dev_dax *dev_dax = ref_to_dev_dax(ref);  	dev_dbg(&dev_dax->dev, "%s\n", __func__); @@ -184,8 +183,7 @@ static vm_fault_t __dev_dax_pmd_fault(struct dev_dax *dev_dax,  	*pfn = phys_to_pfn_t(phys, dax_region->pfn_flags); -	return vmf_insert_pfn_pmd(vmf->vma, vmf->address, vmf->pmd, *pfn, -			vmf->flags & FAULT_FLAG_WRITE); +	return vmf_insert_pfn_pmd(vmf, *pfn, vmf->flags & FAULT_FLAG_WRITE);  }  #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD @@ -235,8 +233,7 @@ static vm_fault_t __dev_dax_pud_fault(struct dev_dax *dev_dax,  	*pfn = phys_to_pfn_t(phys, dax_region->pfn_flags); -	return vmf_insert_pfn_pud(vmf->vma, vmf->address, vmf->pud, *pfn, -			vmf->flags & FAULT_FLAG_WRITE); +	return vmf_insert_pfn_pud(vmf, *pfn, vmf->flags & FAULT_FLAG_WRITE);  }  #else  static vm_fault_t __dev_dax_pud_fault(struct dev_dax *dev_dax, @@ -468,18 +465,12 @@ int dev_dax_probe(struct device *dev)  	if (rc)  		return rc; -	rc = devm_add_action_or_reset(dev, dev_dax_percpu_exit, &dev_dax->ref); -	if (rc) -		return rc; -  	dev_dax->pgmap.ref = &dev_dax->ref;  	dev_dax->pgmap.kill = dev_dax_percpu_kill; +	dev_dax->pgmap.cleanup = dev_dax_percpu_exit;  	addr = devm_memremap_pages(dev, &dev_dax->pgmap); -	if (IS_ERR(addr)) { -		devm_remove_action(dev, dev_dax_percpu_exit, &dev_dax->ref); -		percpu_ref_exit(&dev_dax->ref); +	if (IS_ERR(addr))  		return PTR_ERR(addr); -	}  	inode = dax_inode(dax_dev);  	cdev = inode->i_cdev;  |