devm_memremap: convert to return ERR_PTR
authorDan Williams <dan.j.williams@intel.com>
Tue, 15 Sep 2015 06:42:20 +0000 (02:42 -0400)
committerDan Williams <dan.j.williams@intel.com>
Fri, 9 Oct 2015 21:00:33 +0000 (17:00 -0400)
Make devm_memremap consistent with the error return scheme of
devm_memremap_pages to remove special casing in the pmem driver.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pmem.c
kernel/memremap.c

index 0680aff..9805d31 100644 (file)
@@ -150,19 +150,15 @@ static struct pmem_device *pmem_alloc(struct device *dev,
                return ERR_PTR(-EBUSY);
        }
 
-       if (pmem_should_map_pages(dev)) {
-               void *addr = devm_memremap_pages(dev, res);
-
-               if (IS_ERR(addr))
-                       return addr;
-               pmem->virt_addr = (void __pmem *) addr;
-       } else {
+       if (pmem_should_map_pages(dev))
+               pmem->virt_addr = (void __pmem *) devm_memremap_pages(dev, res);
+       else
                pmem->virt_addr = (void __pmem *) devm_memremap(dev,
                                pmem->phys_addr, pmem->size,
                                ARCH_MEMREMAP_PMEM);
-               if (!pmem->virt_addr)
-                       return ERR_PTR(-ENXIO);
-       }
+
+       if (IS_ERR(pmem->virt_addr))
+               return (void __force *) pmem->virt_addr;
 
        return pmem;
 }
index 0756273..0d818ce 100644 (file)
@@ -116,7 +116,7 @@ void *devm_memremap(struct device *dev, resource_size_t offset,
 
        ptr = devres_alloc(devm_memremap_release, sizeof(*ptr), GFP_KERNEL);
        if (!ptr)
-               return NULL;
+               return ERR_PTR(-ENOMEM);
 
        addr = memremap(offset, size, flags);
        if (addr) {