On Tue, 2016-02-16 at 16:18 -0800, Andrew Morton wrote: > On Tue, 16 Feb 2016 09:30:27 -0700 Toshi Kani <[email protected]> wrote: > > > 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. > > > > Fix devm_memremap_release() to handle a given memremap'd address > > properly. > > > > ... > > > > --- 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); > > } > > > > Huh. So what happens? memunmap() decides it isn't a vmalloc address > and we leak a vma?
Yes, that's right. > I'll add a cc:stable to this. Agreed. Thanks! -Toshi

