Re: [PATCH] slab: add a check for the first kmem_cache not to be destroyed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 Jan 2017, kwon wrote:

> >> diff --git a/mm/slab_common.c b/mm/slab_common.c
> >> index 1dfc209..2d30ace 100644
> >> --- a/mm/slab_common.c
> >> +++ b/mm/slab_common.c
> >> @@ -744,7 +744,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
> >> 	bool need_rcu_barrier = false;
> >> 	int err;
> >> 
> >> -	if (unlikely(!s))
> >> +	if (unlikely(!s) || s->refcount == -1)
> >> 		return;
> > 
> > Hello, Kyunghwan.
> > 
> > Few lines below, s->refcount is checked.
> > 
> > if (s->refcount)
> >        goto unlock;
> > 
> > Am I missing something?
> > 
> > Thanks.
> 
> Hello, Joonsoo.
> 
> In case it is called the number of int size times. refcount would finally reach
> to 0 since decreased every time the function called.
> 

The only thing using create_boot_cache() should be the slab implementation 
itself, so I don't think we need to protect ourselves from doing something 
like kmem_cache_destroy(kmem_cache) or 
kmem_cache_destroy(kmem_cache_node) even a single time.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]