On Mon, 28 Jun 2010, Pekka Enberg wrote: > > + return kzalloc(size, GFP_KERNEL & gfp_allowed_mask); > > else { > > void *ptr = vmalloc(size); > > if (ptr) > > This looks wrong to me. All slab allocators should do gfp_allowed_mask > magic under the hood. Maybe it's triggering kmalloc_large() path that > needs the masking too? They do gfp_allowed_mask magic. But the checks at function entry of the slabs do not mask the masks so we get false positives without this. All my protest against the checks doing it this IMHO broken way were ignored.