From owner-cvs-src@FreeBSD.ORG Wed Mar 1 07:48:41 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D763816A420; Wed, 1 Mar 2006 07:48:41 +0000 (GMT) (envelope-from sos@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A6D5043D46; Wed, 1 Mar 2006 07:48:41 +0000 (GMT) (envelope-from sos@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k217mfux007554; Wed, 1 Mar 2006 07:48:41 GMT (envelope-from sos@repoman.freebsd.org) Received: (from sos@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k217mfMh007553; Wed, 1 Mar 2006 07:48:41 GMT (envelope-from sos) Message-Id: <200603010748.k217mfMh007553@repoman.freebsd.org> From: Søren Schmidt Date: Wed, 1 Mar 2006 07:48:41 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/ata ata-all.h ata-queue.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Mar 2006 07:48:42 -0000 sos 2006-03-01 07:48:41 UTC FreeBSD src repository Modified files: sys/dev/ata ata-all.h ata-queue.c Log: Work around the deadlock that occours when ATA waits for the taskqueue to call back for completition and something else is holding the taskqueue waiting for ATA to return data. This should clear up the "semaphore timeout !! DANGER Will Robinson !!" in most situations, and log "taskqueue timeout - completing request directly" instead, with a delayed "WARNING - freeing taskqueue zombie request" when the taskqueue finally calls us back with the now stale request. (It would have been nice if there was a way to remove a scheduled item from a taskqueue, but that is not currently implemented in the kernel). A real fix for this is in the works but wont make it to 6.1RELEASE definite MFC candidate. Revision Changes Path 1.115 +6 -2 src/sys/dev/ata/ata-all.h 1.58 +18 -5 src/sys/dev/ata/ata-queue.c