From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-bk0-f43.google.com (mail-bk0-f43.google.com [209.85.214.43]) by kanga.kvack.org (Postfix) with ESMTP id 1572B6B0035 for ; Wed, 27 Nov 2013 08:41:42 -0500 (EST) Received: by mail-bk0-f43.google.com with SMTP id mz12so3254749bkb.30 for ; Wed, 27 Nov 2013 05:41:42 -0800 (PST) Received: from Galois.linutronix.de (Galois.linutronix.de. [2001:470:1f0b:db:abcd:42:0:1]) by mx.google.com with ESMTPS id kj6si12252334bkb.82.2013.11.27.05.41.42 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 27 Nov 2013 05:41:42 -0800 (PST) Date: Wed, 27 Nov 2013 14:41:35 +0100 (CET) From: Thomas Gleixner Subject: Re: netfilter: active obj WARN when cleaning up In-Reply-To: <20131127133231.GO16735@n2100.arm.linux.org.uk> Message-ID: References: <522B25B5.6000808@oracle.com> <5294F27D.4000108@oracle.com> <20131126230709.GA10948@localhost> <20131127113939.GL16735@n2100.arm.linux.org.uk> <20131127133231.GO16735@n2100.arm.linux.org.uk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-linux-mm@kvack.org List-ID: To: Russell King - ARM Linux Cc: Pablo Neira Ayuso , Sasha Levin , Patrick McHardy , kadlec@blackhole.kfki.hu, "David S. Miller" , netfilter-devel@vger.kernel.org, coreteam@netfilter.org, netdev@vger.kernel.org, LKML , linux-mm@kvack.org, Andrew Morton , Christoph Lameter , Greg KH On Wed, 27 Nov 2013, Russell King - ARM Linux wrote: > On Wed, Nov 27, 2013 at 02:29:41PM +0100, Thomas Gleixner wrote: > > Though the kobject is the only thing which has a delayed work embedded > > inside struct kmem_cache. And the debug object splat points at the > > kmem_cache_free() of the struct kmem_cache itself. That's why I > > assumed the wreckage around that place. And indeed: > > > > kmem_cache_destroy(s) > > __kmem_cache_shutdown(s) { > > sysfs_slab_remove(s) > > .... > > kobject_put(&s->kobj) > > kref_put(&kobj->kref, kobject_release); > > kobject_release(kref) > > #ifdef CONFIG_DEBUG_KOBJECT_RELEASE > > schedule_delayed_work(&kobj->release) > > #else > > kobject_cleanup(kobj) > > #endif } kmem_cache_free(s); > > > > So in the CONFIG_DEBUG_KOBJECT_RELEASE=y case, schedule_delayed_work() > > _IS_ called which arms the timer. debugobjects catches the attempt to > > free struct kmem_cache which contains the armed timer. > > You fail to show where the free is in the above path. So, yes. it's the issue you are trying to catch, but that code in question made already sure, that there are no references held, because it detached itself from sysfs before calling kobject_put(). Thanks, tglx -- 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: email@kvack.org