2007-06-04 12:17:29

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH -mm] Fix /proc/slab_allocators re seq_list_next() conversion

Wrong pointer was used as kmem_cache pointer.

[Here /proc/slab_allocators appears as empty file, but it's just me, probably]

Signed-off-by: Alexey Dobriyan <[email protected]>
---

mm/slab.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/mm/slab.c
+++ b/mm/slab.c
@@ -4401,7 +4401,7 @@ static void show_symbol(struct seq_file *m, unsigned long address)

static int leaks_show(struct seq_file *m, void *p)
{
- struct kmem_cache *cachep = p;
+ struct kmem_cache *cachep = list_entry(p, struct kmem_cache, next);
struct slab *slabp;
struct kmem_list3 *l3;
const char *name;


2007-06-04 12:38:17

by Pavel Emelyanov

[permalink] [raw]
Subject: Re: [PATCH -mm] Fix /proc/slab_allocators re seq_list_next() conversion

Alexey Dobriyan wrote:
> Wrong pointer was used as kmem_cache pointer.
>
> [Here /proc/slab_allocators appears as empty file, but it's just me, probably]
>
> Signed-off-by: Alexey Dobriyan <[email protected]>

Acked-by: Pavel Emelianov <[email protected]>

> ---
>
> mm/slab.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -4401,7 +4401,7 @@ static void show_symbol(struct seq_file *m, unsigned long address)
>
> static int leaks_show(struct seq_file *m, void *p)
> {
> - struct kmem_cache *cachep = p;
> + struct kmem_cache *cachep = list_entry(p, struct kmem_cache, next);
> struct slab *slabp;
> struct kmem_list3 *l3;
> const char *name;
>
>