aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/nvdimm/core.c')
-rw-r--r--drivers/nvdimm/core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/nvdimm/core.c b/drivers/nvdimm/core.c
index 715583f69d28..4d7bbd2df5c0 100644
--- a/drivers/nvdimm/core.c
+++ b/drivers/nvdimm/core.c
@@ -99,8 +99,11 @@ static struct nvdimm_map *alloc_nvdimm_map(struct device *dev,
99 nvdimm_map->size = size; 99 nvdimm_map->size = size;
100 kref_init(&nvdimm_map->kref); 100 kref_init(&nvdimm_map->kref);
101 101
102 if (!request_mem_region(offset, size, dev_name(&nvdimm_bus->dev))) 102 if (!request_mem_region(offset, size, dev_name(&nvdimm_bus->dev))) {
103 dev_err(&nvdimm_bus->dev, "failed to request %pa + %zd for %s\n",
104 &offset, size, dev_name(dev));
103 goto err_request_region; 105 goto err_request_region;
106 }
104 107
105 if (flags) 108 if (flags)
106 nvdimm_map->mem = memremap(offset, size, flags); 109 nvdimm_map->mem = memremap(offset, size, flags);
@@ -171,6 +174,9 @@ void *devm_nvdimm_memremap(struct device *dev, resource_size_t offset,
171 kref_get(&nvdimm_map->kref); 174 kref_get(&nvdimm_map->kref);
172 nvdimm_bus_unlock(dev); 175 nvdimm_bus_unlock(dev);
173 176
177 if (!nvdimm_map)
178 return NULL;
179
174 if (devm_add_action_or_reset(dev, nvdimm_map_put, nvdimm_map)) 180 if (devm_add_action_or_reset(dev, nvdimm_map_put, nvdimm_map))
175 return NULL; 181 return NULL;
176 182