On Thu, Feb 01, 2018 at 11:22:55PM +0300, Andrey Ryabinin wrote: > >> + vm = find_vm_area((void *)shadow_start); > >> + if (vm) > >> + vfree((void *)shadow_start); > >> + } > > > > This looks like a complicated way to spell 'is_vmalloc_addr' ... > > > > It's not. shadow_start is never vmalloc address. I'm confused. How can you call vfree() on something that isn't a vmalloc address?