From owner-freebsd-current@FreeBSD.ORG Wed Mar 10 22:36:34 2010 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D09C106564A for ; Wed, 10 Mar 2010 22:36:34 +0000 (UTC) (envelope-from tom.couch.storage@gmail.com) Received: from mail-ww0-f54.google.com (mail-ww0-f54.google.com [74.125.82.54]) by mx1.freebsd.org (Postfix) with ESMTP id CF96B8FC12 for ; Wed, 10 Mar 2010 22:36:33 +0000 (UTC) Received: by wwb24 with SMTP id 24so1670811wwb.13 for ; Wed, 10 Mar 2010 14:36:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=s6cJKEESNvRn1kdXcdGoziiICKC6ZMggYwjs7YED2EA=; b=V23d8R7lD3HU2o7s0TbE9g+tNctx0HWlypj4LFMezli0JKSJzpl+BEHPTVfi4FuAi3 15WUJa93sNDhvIXnLyROTGGl8R0NiYAO/Wbn+k7J/ulUdeDx+7DmlU/819cl1Jc9sovW c8ZvEns7eDwE3zkR4yoLBOh7UFM0UjQhpxJfg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=McgHoZOBpIBtVDTVshC27WeRuim680sokolyK7CKaSARKHLQiZAUjjMbXeZGpm7Oou 7iuHQ//Ll2cr+CIJ+TSjZdlL4zIt0YF9tVJxPy1EqUAuscEKbBAa2A6JUDW3uFEORVZj YmTilpZgyRb/KE4jaWrY5J1Zk53wL/XqYFkKY= MIME-Version: 1.0 Received: by 10.216.91.9 with SMTP id g9mr1386131wef.194.1268258849890; Wed, 10 Mar 2010 14:07:29 -0800 (PST) In-Reply-To: <4e6cba831003101356i534341ffr2961b983854ab788@mail.gmail.com> References: <7d6fde3d1003070207q621e69ado2cb64e431feacd76@mail.gmail.com> <7d6fde3d1003070224k3626a9b5y98c11a43eef1bed4@mail.gmail.com> <4e6cba831003101356i534341ffr2961b983854ab788@mail.gmail.com> Date: Wed, 10 Mar 2010 14:07:29 -0800 Message-ID: <7dc40bd01003101407m605e41ey2d8ace0049cf5e61@mail.gmail.com> From: Tom Couch To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Re: Removing USB keyboard after filesystems synced causes panic with destroyed mutex twa(4)? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2010 22:36:34 -0000 Hi FreeBSD-current, My name is Tom Couch, I am part of the 3ware driver team recently acquired by LSI. I believe Giovanni's patch, below, is the correct fix for this bug. I am available to maintain the twa driver, now that I am on this list. Let me know how I can help, Tom On Wed, Mar 10, 2010 at 1:56 PM, Giovanni Trematerra < giovanni.trematerra@gmail.com> wrote: > On Sun, Mar 7, 2010 at 11:24 AM, Garrett Cooper > wrote: > > On Sun, Mar 7, 2010 at 2:07 AM, Garrett Cooper > wrote: > >> Hi Alexander and Hans, > >> I recently did the following which generated a panic on a > >> 9-CURRENT kernel compiled on the 26th: > >> > >> 1. Executed reboot > >> 2. Removed keyboard. > >> 3. Some time after `All buffers synced\nUptime: ...' was displayed, > >> the keyboard was registered disconnected. > >> 4. The interrupt was delivered to my twa(4) enabled card and the > >> kernel panicked, like so: > >> > >> ugen2.2: at usbus2 (disconnected) > >> uhub8: at uhub2, port 1, addr 2 (disconnected) > >> ugen2.3: at usbus2 (disconnected) > >> ukbd0: at uhub8, port 3, addr 3 (disconnected) > >> uhid0: at uhub8, port 3, addr 3 (disconnected) > >> panic: mtx_lock_spin() of destroyed mutex @ > /usr/src/sys/dev/twa/tw_cl_intr.c:88 > >> > >> cpuid = 1 > >> KDB: enter: panic > >> [thread pid 12 tid 100025 ] > >> Stopped at kdb_enter+0x3d: movq $0,0x40289c(%rip) > >> db> > >> > >> I wish I could provide you with more details, but unfortunately I > >> the USB bus isn't registering the fact that I'm reattaching the > >> keyboard right now and the box won't reboot automatically :( (didn't > >> set the right sysctl beforehand to panic automatically). I'll try and > >> reproduce the issue again, but I was just wondering whether or not you > >> guys had seen this problem before. > > > > Phew... it's reproducible with that kernel. Here's what I did > > exactly (because my original directions were incorrect): > > 1. Hit power button (for S5). > > 2. Disconnect keyboard RIGHT as `Uptime: ...' is displayed. > > Kernel panicked on my system again. Now to figure out if it still > > exists with a kernel compiled today, and also how to debug it if it > > still does exist :/... > > Thanks, > > -Garrett > > Hi Garrett, > Could you please try the patch below and report back? > > Thank you > > diff -r cab6489de66d sys/dev/twa/tw_cl_intr.c > --- a/sys/dev/twa/tw_cl_intr.c Wed Mar 03 04:51:13 2010 -0500 > +++ b/sys/dev/twa/tw_cl_intr.c Wed Mar 10 06:29:05 2010 -0500 > @@ -75,9 +75,12 @@ tw_cl_interrupt(struct tw_cl_ctlr_handle > if (ctlr == NULL) > goto out; > > - /* If we get an interrupt while resetting, it is a shared > - one for another device, so just bail */ > - if (ctlr->state & TW_CLI_CTLR_STATE_RESET_IN_PROGRESS) > + /* > + * If we get an interrupt while resetting or shutting down, > + * it is a shared one for another device, so just bail > + */ > + if (ctlr->state & TW_CLI_CTLR_STATE_RESET_IN_PROGRESS || > + (ctrl->state & TW_CLI_CTLR_STATE_ACTIVE) == 0) > goto out; > > /* > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >