|
@@ -388,10 +388,55 @@ static __always_inline void *kmalloc_large(size_t size, gfp_t flags)
|
|
|
/**
|
|
|
* kmalloc - allocate memory
|
|
|
* @size: how many bytes of memory are required.
|
|
|
- * @flags: the type of memory to allocate (see kcalloc).
|
|
|
+ * @flags: the type of memory to allocate.
|
|
|
*
|
|
|
* kmalloc is the normal method of allocating memory
|
|
|
* for objects smaller than page size in the kernel.
|
|
|
+ *
|
|
|
+ * The @flags argument may be one of:
|
|
|
+ *
|
|
|
+ * %GFP_USER - Allocate memory on behalf of user. May sleep.
|
|
|
+ *
|
|
|
+ * %GFP_KERNEL - Allocate normal kernel ram. May sleep.
|
|
|
+ *
|
|
|
+ * %GFP_ATOMIC - Allocation will not sleep. May use emergency pools.
|
|
|
+ * For example, use this inside interrupt handlers.
|
|
|
+ *
|
|
|
+ * %GFP_HIGHUSER - Allocate pages from high memory.
|
|
|
+ *
|
|
|
+ * %GFP_NOIO - Do not do any I/O at all while trying to get memory.
|
|
|
+ *
|
|
|
+ * %GFP_NOFS - Do not make any fs calls while trying to get memory.
|
|
|
+ *
|
|
|
+ * %GFP_NOWAIT - Allocation will not sleep.
|
|
|
+ *
|
|
|
+ * %GFP_THISNODE - Allocate node-local memory only.
|
|
|
+ *
|
|
|
+ * %GFP_DMA - Allocation suitable for DMA.
|
|
|
+ * Should only be used for kmalloc() caches. Otherwise, use a
|
|
|
+ * slab created with SLAB_DMA.
|
|
|
+ *
|
|
|
+ * Also it is possible to set different flags by OR'ing
|
|
|
+ * in one or more of the following additional @flags:
|
|
|
+ *
|
|
|
+ * %__GFP_COLD - Request cache-cold pages instead of
|
|
|
+ * trying to return cache-warm pages.
|
|
|
+ *
|
|
|
+ * %__GFP_HIGH - This allocation has high priority and may use emergency pools.
|
|
|
+ *
|
|
|
+ * %__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail
|
|
|
+ * (think twice before using).
|
|
|
+ *
|
|
|
+ * %__GFP_NORETRY - If memory is not immediately available,
|
|
|
+ * then give up at once.
|
|
|
+ *
|
|
|
+ * %__GFP_NOWARN - If allocation fails, don't issue any warnings.
|
|
|
+ *
|
|
|
+ * %__GFP_REPEAT - If allocation fails initially, try once more before failing.
|
|
|
+ *
|
|
|
+ * There are other flags available as well, but these are not intended
|
|
|
+ * for general use, and so are not documented here. For a full list of
|
|
|
+ * potential flags, always refer to linux/gfp.h.
|
|
|
*/
|
|
|
static __always_inline void *kmalloc(size_t size, gfp_t flags)
|
|
|
{
|
|
@@ -501,61 +546,6 @@ struct seq_file;
|
|
|
int cache_show(struct kmem_cache *s, struct seq_file *m);
|
|
|
void print_slabinfo_header(struct seq_file *m);
|
|
|
|
|
|
-/**
|
|
|
- * kmalloc - allocate memory
|
|
|
- * @size: how many bytes of memory are required.
|
|
|
- * @flags: the type of memory to allocate.
|
|
|
- *
|
|
|
- * The @flags argument may be one of:
|
|
|
- *
|
|
|
- * %GFP_USER - Allocate memory on behalf of user. May sleep.
|
|
|
- *
|
|
|
- * %GFP_KERNEL - Allocate normal kernel ram. May sleep.
|
|
|
- *
|
|
|
- * %GFP_ATOMIC - Allocation will not sleep. May use emergency pools.
|
|
|
- * For example, use this inside interrupt handlers.
|
|
|
- *
|
|
|
- * %GFP_HIGHUSER - Allocate pages from high memory.
|
|
|
- *
|
|
|
- * %GFP_NOIO - Do not do any I/O at all while trying to get memory.
|
|
|
- *
|
|
|
- * %GFP_NOFS - Do not make any fs calls while trying to get memory.
|
|
|
- *
|
|
|
- * %GFP_NOWAIT - Allocation will not sleep.
|
|
|
- *
|
|
|
- * %GFP_THISNODE - Allocate node-local memory only.
|
|
|
- *
|
|
|
- * %GFP_DMA - Allocation suitable for DMA.
|
|
|
- * Should only be used for kmalloc() caches. Otherwise, use a
|
|
|
- * slab created with SLAB_DMA.
|
|
|
- *
|
|
|
- * Also it is possible to set different flags by OR'ing
|
|
|
- * in one or more of the following additional @flags:
|
|
|
- *
|
|
|
- * %__GFP_COLD - Request cache-cold pages instead of
|
|
|
- * trying to return cache-warm pages.
|
|
|
- *
|
|
|
- * %__GFP_HIGH - This allocation has high priority and may use emergency pools.
|
|
|
- *
|
|
|
- * %__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail
|
|
|
- * (think twice before using).
|
|
|
- *
|
|
|
- * %__GFP_NORETRY - If memory is not immediately available,
|
|
|
- * then give up at once.
|
|
|
- *
|
|
|
- * %__GFP_NOWARN - If allocation fails, don't issue any warnings.
|
|
|
- *
|
|
|
- * %__GFP_REPEAT - If allocation fails initially, try once more before failing.
|
|
|
- *
|
|
|
- * There are other flags available as well, but these are not intended
|
|
|
- * for general use, and so are not documented here. For a full list of
|
|
|
- * potential flags, always refer to linux/gfp.h.
|
|
|
- *
|
|
|
- * kmalloc is the normal method of allocating memory
|
|
|
- * in the kernel.
|
|
|
- */
|
|
|
-static __always_inline void *kmalloc(size_t size, gfp_t flags);
|
|
|
-
|
|
|
/**
|
|
|
* kmalloc_array - allocate memory for an array.
|
|
|
* @n: number of elements.
|