aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToshi Kani <[email protected]>2016-02-20 14:32:24 -0800
committerDan Williams <[email protected]>2016-02-23 17:17:20 -0800
commit93f834df9c2d4e362dfdc4b05daa0a4e18814836 (patch)
tree3f17712ac8c9e41baa072484c73032c2596ba228
parent4577b0665515e0abc7bc72562d6328d179598815 (diff)
devm_memremap: Fix error value when memremap failed
devm_memremap() returns an ERR_PTR() value in case of error. However, it returns NULL when memremap() failed. This causes the caller, such as the pmem driver, to proceed and oops later. Change devm_memremap() to return ERR_PTR(-ENXIO) when memremap() failed. Signed-off-by: Toshi Kani <[email protected]> Cc: Andrew Morton <[email protected]> Cc: <[email protected]> Reviewed-by: Ross Zwisler <[email protected]> Signed-off-by: Dan Williams <[email protected]>
-rw-r--r--kernel/memremap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/memremap.c b/kernel/memremap.c
index 2c468dea60bc..b04ea2f5fbfe 100644
--- a/kernel/memremap.c
+++ b/kernel/memremap.c
@@ -136,8 +136,10 @@ void *devm_memremap(struct device *dev, resource_size_t offset,
if (addr) {
*ptr = addr;
devres_add(dev, ptr);
- } else
+ } else {
devres_free(ptr);
+ return ERR_PTR(-ENXIO);
+ }
return addr;
}