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;
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;
>
>