diff options
Diffstat (limited to 'mm/slub.c')
| -rw-r--r-- | mm/slub.c | 5 |
1 files changed, 3 insertions, 2 deletions
| @@ -411,7 +411,7 @@ static void set_track(struct kmem_cache *s, void *object, | |||
| 411 | if (addr) { | 411 | if (addr) { |
| 412 | p->addr = addr; | 412 | p->addr = addr; |
| 413 | p->cpu = smp_processor_id(); | 413 | p->cpu = smp_processor_id(); |
| 414 | p->pid = current ? current->pid : -1; | 414 | p->pid = current->pid; |
| 415 | p->when = jiffies; | 415 | p->when = jiffies; |
| 416 | } else | 416 | } else |
| 417 | memset(p, 0, sizeof(struct track)); | 417 | memset(p, 0, sizeof(struct track)); |
| @@ -1496,7 +1496,7 @@ static void flush_cpu_slab(void *d) | |||
| 1496 | static void flush_all(struct kmem_cache *s) | 1496 | static void flush_all(struct kmem_cache *s) |
| 1497 | { | 1497 | { |
| 1498 | #ifdef CONFIG_SMP | 1498 | #ifdef CONFIG_SMP |
| 1499 | on_each_cpu(flush_cpu_slab, s, 1, 1); | 1499 | on_each_cpu(flush_cpu_slab, s, 1); |
| 1500 | #else | 1500 | #else |
| 1501 | unsigned long flags; | 1501 | unsigned long flags; |
| 1502 | 1502 | ||
| @@ -2766,6 +2766,7 @@ void kfree(const void *x) | |||
| 2766 | 2766 | ||
| 2767 | page = virt_to_head_page(x); | 2767 | page = virt_to_head_page(x); |
| 2768 | if (unlikely(!PageSlab(page))) { | 2768 | if (unlikely(!PageSlab(page))) { |
| 2769 | BUG_ON(!PageCompound(page)); | ||
| 2769 | put_page(page); | 2770 | put_page(page); |
| 2770 | return; | 2771 | return; |
| 2771 | } | 2772 | } |
