From owner-freebsd-bugs@FreeBSD.ORG Mon Apr 22 20:10:00 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id DC94CB0E for ; Mon, 22 Apr 2013 20:10:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A9B351222 for ; Mon, 22 Apr 2013 20:10:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r3MKA0U5004168 for ; Mon, 22 Apr 2013 20:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r3MKA01h004166; Mon, 22 Apr 2013 20:10:00 GMT (envelope-from gnats) Resent-Date: Mon, 22 Apr 2013 20:10:00 GMT Resent-Message-Id: <201304222010.r3MKA01h004166@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Garrett Cooper Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 78F92A64 for ; Mon, 22 Apr 2013 20:08:24 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 687CE120B for ; Mon, 22 Apr 2013 20:08:24 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r3MK8NK1007850 for ; Mon, 22 Apr 2013 20:08:23 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r3MK8NOP007849; Mon, 22 Apr 2013 20:08:23 GMT (envelope-from nobody) Message-Id: <201304222008.r3MK8NOP007849@red.freebsd.org> Date: Mon, 22 Apr 2013 20:08:23 GMT From: Garrett Cooper To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: kern/178061: [ukbd] panic at reboot when hitting scroll-lock; race condition with interrupt handler in lower half of kernel X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Apr 2013 20:10:00 -0000 >Number: 178061 >Category: kern >Synopsis: [ukbd] panic at reboot when hitting scroll-lock; race condition with interrupt handler in lower half of kernel >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Apr 22 20:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Garrett Cooper >Release: 10-CURRENT >Organization: EMC Isilon >Environment: FreeBSD 10.0-CURRENT #0: Sat Apr 13 22:16:27 UTC 2013 >Description: I was installing FreeBSD 10-CURRENT [1] on a machine with IPMI and happened to hit the scroll lock when the syncer was running at reboot over IPMI and it generated an interrupt which caused the ukbd(4) driver to panic. Unfortunately I didn't capture any additional details, but it should be relatively easy to reproduce. 1. ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/amd64/amd64/ISO-IMAGES/10.0/FreeBSD-10.0-CURRENT-amd64-20130413-r249439-release.iso >How-To-Repeat: Hit scroll lock at reboot. This may require several tries in order to hit the magic race condition >Fix: The solution would be for ukbd to properly mask interrupts when it shouldn't be servicing them at reboot/shutdown. This is tricky though because the kernel could panic at reboot and hence the driver should be functional for service via ddb in "recoverable"/"debuggable" scenarios, BUT it should be easy to call a resume hook for the driver or unmask the interrupts again in ukbd. >Release-Note: >Audit-Trail: >Unformatted: