mm/slab.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff -puN mm/slab.c~slab-leak-detector-tweaks mm/slab.c --- 25/mm/slab.c~slab-leak-detector-tweaks 2003-10-18 16:56:01.000000000 -0700 +++ 25-akpm/mm/slab.c 2003-10-18 16:56:01.000000000 -0700 @@ -2707,6 +2707,7 @@ struct seq_operations slabinfo_op = { static void do_dump_slabp(kmem_cache_t *cachep) { +#if DEBUG struct list_head *q; check_irq_on(); @@ -2715,10 +2716,16 @@ static void do_dump_slabp(kmem_cache_t * struct slab *slabp; int i; slabp = list_entry(q, struct slab, list); - for (i=0;inum;i++) - printk(KERN_DEBUG "obj %p/%d: %p\n", slabp, i, (void*)(slab_bufctl(slabp)[i])); + for (i = 0; i < cachep->num; i++) { + unsigned long sym = slab_bufctl(slabp)[i]; + + printk("obj %p/%d: %p", slabp, i, (void *)sym); + print_symbol(" <%s>", sym); + printk("\n"); + } } spin_unlock_irq(&cachep->spinlock); +#endif } #define MAX_SLABINFO_WRITE 128 @@ -2762,9 +2769,10 @@ ssize_t slabinfo_write(struct file *file batchcount > limit || shared < 0) { do_dump_slabp(cachep); - res = -EINVAL; + res = 0; } else { - res = do_tune_cpucache(cachep, limit, batchcount, shared); + res = do_tune_cpucache(cachep, limit, + batchcount, shared); } break; } _