On Thu, May 6, 2010 at 8:30 AM, Changli Gao <xiaosuo@xxxxxxxxx> wrote: > kvmalloc() will try to allocate physically contiguous memory first, and try > vmalloc to allocate virtually contiguous memory when the former allocation > fails. > > kvfree() is used to free the memory allocated by kvmalloc(). It can't be used > in atomic context. If the callers are in atomic contex, they can use > kvfree_inatomic() instead. > > There is much duplicate code to do such things in kernel, so I generate the > above APIs. > > Thank Eric Dumazet for the "kv" prefix. :) > > #include <linux/kernel.h> > #include <linux/module.h> > #include <linux/mm.h> > #include <linux/init.h> > #include <linux/slab.h> > #include <linux/vmalloc.h> > #include <linux/interrupt.h> > > void *kvmalloc(size_t size) > { > void *ptr; > > if (size < PAGE_SIZE) > return kmalloc(PAGE_SIZE, GFP_KERNEL); typo mistake, should be kmalloc(size, GFP_KERNEL), thank Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx>. -- Regards, Changli Gao(xiaosuo@xxxxxxxxx) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html