]>
Commit | Line | Data |
---|---|---|
8fc24f01 | 1 | mm/slab.c | 17 +++++++++++++---- |
2 | 1 files changed, 13 insertions(+), 4 deletions(-) | |
3 | ||
4 | diff -puN mm/slab.c~slab-leak-detector-tweaks mm/slab.c | |
5 | --- 25/mm/slab.c~slab-leak-detector-tweaks 2003-10-15 23:11:19.000000000 -0700 | |
6 | +++ 25-akpm/mm/slab.c 2003-10-15 23:17:12.000000000 -0700 | |
7 | @@ -2708,6 +2708,7 @@ struct seq_operations slabinfo_op = { | |
8 | ||
9 | static void do_dump_slabp(kmem_cache_t *cachep) | |
10 | { | |
11 | +#if DEBUG | |
12 | struct list_head *q; | |
13 | ||
14 | check_irq_on(); | |
15 | @@ -2716,10 +2717,17 @@ static void do_dump_slabp(kmem_cache_t * | |
16 | struct slab *slabp; | |
17 | int i; | |
18 | slabp = list_entry(q, struct slab, list); | |
19 | - for (i=0;i<cachep->num;i++) | |
20 | - printk(KERN_DEBUG "obj %p/%d: %p\n", slabp, i, (void*)(slab_bufctl(slabp)[i])); | |
21 | + for (i = 0; i < cachep->num; i++) { | |
22 | + unsigned long sym = slab_bufctl(slabp)[i]; | |
23 | + | |
24 | + printk(KERN_DEBUG "obj %p/%d: %p", | |
25 | + slabp, i, (void *)sym); | |
26 | + print_symbol(" <%s>", sym); | |
27 | + printk("\n"); | |
28 | + } | |
29 | } | |
30 | spin_unlock_irq(&cachep->spinlock); | |
31 | +#endif | |
32 | } | |
33 | ||
34 | #define MAX_SLABINFO_WRITE 128 | |
35 | @@ -2763,9 +2771,10 @@ ssize_t slabinfo_write(struct file *file | |
36 | batchcount > limit || | |
37 | shared < 0) { | |
38 | do_dump_slabp(cachep); | |
39 | - res = -EINVAL; | |
40 | + res = 0; | |
41 | } else { | |
42 | - res = do_tune_cpucache(cachep, limit, batchcount, shared); | |
43 | + res = do_tune_cpucache(cachep, limit, | |
44 | + batchcount, shared); | |
45 | } | |
46 | break; | |
47 | } |