On Mon, Mar 06, 2017 at 11:30:24AM +0100, Michal Hocko wrote: > +void *kvmalloc_node(size_t size, gfp_t flags, int node) > +{ > + gfp_t kmalloc_flags = flags; > + void *ret; > + > + /* > + * vmalloc uses GFP_KERNEL for some internal allocations (e.g page > tables) > + * so the given set of flags has to be compatible. > + */ > + WARN_ON_ONCE((flags & GFP_KERNEL) != GFP_KERNEL);
Hm, there are quite a few locations in the kernel that do something like: __vmalloc(len, GFP_NOFS, PAGE_KERNEL); According to your patch, vmalloc can't really do GFP_NOFS, right? -- Thanks, Sasha