Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757906AbYAJEOT (ORCPT ); Wed, 9 Jan 2008 23:14:19 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754857AbYAJEOB (ORCPT ); Wed, 9 Jan 2008 23:14:01 -0500 Received: from ns2.suse.de ([195.135.220.15]:42421 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754701AbYAJEOA (ORCPT ); Wed, 9 Jan 2008 23:14:00 -0500 From: Neil Brown To: Al Viro Date: Thu, 10 Jan 2008 15:13:48 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18309.39804.31974.851666@notabene.brown> Cc: Linus Torvalds , Kevin Winchester , "J. Bruce Fields" , Arjan van de Ven , Linux Kernel Mailing List , Andrew Morton , NetDev , gregkh@suse.de Subject: Re: Top 10 kernel oopses for the week ending January 5th, 2008 In-Reply-To: message from Al Viro on Tuesday January 8 References: <477FF149.4070609@linux.intel.com> <20080105213935.GN27894@ZenIV.linux.org.uk> <20080107174431.GC27741@fieldses.org> <4782CF9C.6000508@gmail.com> <20080108055917.GZ27894@ZenIV.linux.org.uk> X-Mailer: VM 7.19 under Emacs 21.4.1 X-face: [Gw_3E*Gng}4rRrKRYotwlE?.2|**#s9D X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1897 Lines: 54 On Tuesday January 8, viro@ZenIV.linux.org.uk wrote: > > FWIW, I'm going to go through Arjan's collection and post blow-by-blow > analysis of some of those suckers. Tonight, probably... > > Let's take e.g. http://www.kerneloops.org/raw.php?rawid=2618 Thanks for that analysis. ... > > Humm... So we have kobj->parent containing crap. What about the caller? > It's from drivers/md/md.c: > static void delayed_delete(struct work_struct *ws) This is a good argument for sticking "md_" at the from of all my function names, even if they are static. I'm fairly sure I looked at that trace: > Call Trace: > [] kobject_put+0x19/0x20 > [] kobject_del+0x2b/0x40 > [] delayed_delete+0x0/0xb0 > [] delayed_delete+0x69/0xb0 > [] run_workqueue+0x175/0x210 > [] worker_thread+0x71/0xb0 > [] autoremove_wake_function+0x0/0x40 > [] worker_thread+0x0/0xb0 > [] kthread+0x4d/0x80 > [] child_rip+0xa/0x12 > [] restore_args+0x0/0x30 > [] kthread+0x0/0x80 > [] child_rip+0x0/0x12 but as it doesn't mention 'md' or 'nfs' I moved on. My bad. > > What guarantees that it doesn't happen before we get to callback? AFAICS, > nothing whatsoever... Yes, that's bad isn't it :-) I think I should be using sysfs_schedule_callback here. That makes the required 'get' and 'put' calls.... but it can fail with -ENOMEM. I wonder what I do if -ENOMEM??? Maybe I'll just continue to roll my one :-( Thanks, NeilBrown -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/