Messages in this thread | | | Subject | Re: [PATCH powerpc 2/2] kfree the cache name of pgtable cache if SLUB is used | From | Benjamin Herrenschmidt <> | Date | Fri, 29 Jun 2012 10:45:20 +1000 |
| |
On Mon, 2012-06-25 at 17:54 +0800, Li Zhong wrote:
> diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c > index 620b7ac..c9d2a7f 100644 > --- a/arch/powerpc/mm/init_64.c > +++ b/arch/powerpc/mm/init_64.c > @@ -130,6 +130,9 @@ void pgtable_cache_add(unsigned shift, void > (*ctor)(void *)) > align = max_t(unsigned long, align, minalign); > name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift); > new = kmem_cache_create(name, table_size, align, 0, ctor); > +#ifdef CONFIG_SLUB > + kfree(name); /* SLUB duplicates the cache name */ > +#endif > PGT_CACHE(shift) = new; > > pr_debug("Allocated pgtable cache for order %d\n", shift);
This is very gross ... and fragile. Also the subtle difference in semantics between SLUB and SLAB is a VERY BAD IDEA.
I reckon you should make the other allocators all copy the name instead.
Ben.
| |