From owner-cvs-src@FreeBSD.ORG Thu Sep 30 21:29:19 2004 Return-Path: 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 8207016A4CE; Thu, 30 Sep 2004 21:29:19 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7586C43D54; Thu, 30 Sep 2004 21:29:19 +0000 (GMT) (envelope-from sos@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i8ULTJQR059413; Thu, 30 Sep 2004 21:29:19 GMT (envelope-from sos@repoman.freebsd.org) Received: (from sos@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i8ULTJnq059412; Thu, 30 Sep 2004 21:29:19 GMT (envelope-from sos) Message-Id: <200409302129.i8ULTJnq059412@repoman.freebsd.org> From: Søren Schmidt Date: Thu, 30 Sep 2004 21:29:19 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_5 Subject: cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-chipset.c ata-disk.c ata-dma.c ata-lowlevel.c ata-pci.c ata-queue.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Thu, 30 Sep 2004 21:29:19 -0000 sos 2004-09-30 21:29:19 UTC FreeBSD src repository Modified files: (Branch: RELENG_5) sys/dev/ata ata-all.c ata-all.h ata-chipset.c ata-disk.c ata-dma.c ata-lowlevel.c ata-pci.c ata-queue.c Log: MFC: Remove the old ATA_*LOCK_CH macros that used atomic ops and use mutexes instead. This closes the last (known) race issues in ATA which should fix the various hangs etc seen on heavy loaded systems. Change from using timeout functions to using callout functions in the timeout code. This together with above closes the race that could happen if timeout and device interrupt occured simultaniously. Also fix the possible recursion in ata_reinit() on very dodgy devices that could take us down in the probe. Approved by: re@ (scottl) Revision Changes Path 1.222.2.2 +117 -19 src/sys/dev/ata/ata-all.c 1.81.2.2 +10 -19 src/sys/dev/ata/ata-all.h 1.81.2.2 +6 -4 src/sys/dev/ata/ata-chipset.c 1.175.2.2 +6 -6 src/sys/dev/ata/ata-disk.c 1.129.2.2 +4 -4 src/sys/dev/ata/ata-dma.c 1.44.2.2 +26 -69 src/sys/dev/ata/ata-lowlevel.c 1.87.2.2 +2 -2 src/sys/dev/ata/ata-pci.c 1.32.2.2 +111 -114 src/sys/dev/ata/ata-queue.c