diff options
author | Toshi Kani <[email protected]> | 2016-02-17 13:11:29 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2016-02-18 16:23:24 -0800 |
commit | 9273a8bbf58a15051e53a777389a502420ddc60e (patch) | |
tree | dbca348bd6669d01ff60d896aba9de9f2b26f7c0 | |
parent | f8b74815a452ff2904b5d7fcce1a5ae2a4d7ca5e (diff) |
devm_memremap_release(): fix memremap'd addr handling
The pmem driver calls devm_memremap() to map a persistent memory range.
When the pmem driver is unloaded, this memremap'd range is not released
so the kernel will leak a vma.
Fix devm_memremap_release() to handle a given memremap'd address
properly.
Signed-off-by: Toshi Kani <[email protected]>
Acked-by: Dan Williams <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Ross Zwisler <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | kernel/memremap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/memremap.c b/kernel/memremap.c index 2c468dea60bc..7a1b5c3ef14e 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -114,7 +114,7 @@ EXPORT_SYMBOL(memunmap); static void devm_memremap_release(struct device *dev, void *res) { - memunmap(res); + memunmap(*(void **)res); } static int devm_memremap_match(struct device *dev, void *res, void *match_data) |