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>