Thread (29 messages) 29 messages, 7 authors, 2013-12-19

Re: netfilter: active obj WARN when cleaning up

From: Christoph Lameter <hidden>
Date: 2013-12-02 17:30:11
Also in: linux-mm, lkml, netfilter-devel

On Mon, 2 Dec 2013, Greg KH wrote:
On Mon, Dec 02, 2013 at 04:33:20PM +0000, Christoph Lameter wrote:
quoted
On Wed, 27 Nov 2013, Greg KH wrote:
quoted
Just make the kobject "dynamic" instead of embedded in struct kmem_cache
and all will be fine.  I can't believe this code has been broken for
this long.
The slub code is was designed to use an embedded structure since we
only get the kobj  pointer passed to us from sysfs. If kobj is not
embedded then how can we get from the sysfs object to the kmem_cache
structure from the sysfs callbacks? Sysfs was designed to have embedded
objects as far as I can recall.
Yes, it's designed to have embedded objects, so then use it that way and
clean up the structure when the kobject goes away.  Don't use a
different reference count for your structure than the one in the kobject
and think that all will be fine.
We need our own reference count. So we just have to defer the
release of the kmem_cache struct until the ->release callback is
triggered. The put of the embedded kobject must be the last action on the
kmem_cache  structure which will then trigger release and that will
trigger the kmem_cache_free().



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help