提交 859281ff 编写于 作者: L Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
  slub: fix per cpu kmem_cache_cpu array memory leak
  kmalloc: return NULL instead of link failure
...@@ -43,10 +43,7 @@ static inline void *kmalloc(size_t size, gfp_t flags) ...@@ -43,10 +43,7 @@ static inline void *kmalloc(size_t size, gfp_t flags)
i++; i++;
#include <linux/kmalloc_sizes.h> #include <linux/kmalloc_sizes.h>
#undef CACHE #undef CACHE
{ return NULL;
extern void __you_cannot_kmalloc_that_much(void);
__you_cannot_kmalloc_that_much();
}
found: found:
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
if (flags & GFP_DMA) if (flags & GFP_DMA)
...@@ -77,10 +74,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node) ...@@ -77,10 +74,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
i++; i++;
#include <linux/kmalloc_sizes.h> #include <linux/kmalloc_sizes.h>
#undef CACHE #undef CACHE
{ return NULL;
extern void __you_cannot_kmalloc_that_much(void);
__you_cannot_kmalloc_that_much();
}
found: found:
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
if (flags & GFP_DMA) if (flags & GFP_DMA)
......
...@@ -1996,7 +1996,7 @@ static struct kmem_cache_cpu *alloc_kmem_cache_cpu(struct kmem_cache *s, ...@@ -1996,7 +1996,7 @@ static struct kmem_cache_cpu *alloc_kmem_cache_cpu(struct kmem_cache *s,
static void free_kmem_cache_cpu(struct kmem_cache_cpu *c, int cpu) static void free_kmem_cache_cpu(struct kmem_cache_cpu *c, int cpu)
{ {
if (c < per_cpu(kmem_cache_cpu, cpu) || if (c < per_cpu(kmem_cache_cpu, cpu) ||
c > per_cpu(kmem_cache_cpu, cpu) + NR_KMEM_CACHE_CPU) { c >= per_cpu(kmem_cache_cpu, cpu) + NR_KMEM_CACHE_CPU) {
kfree(c); kfree(c);
return; return;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册