From owner-freebsd-current@FreeBSD.ORG Tue Jun 2 05:39:49 2009 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BCEAF106566C for ; Tue, 2 Jun 2009 05:39:49 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 488578FC0A for ; Tue, 2 Jun 2009 05:39:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 244595651; Tue, 02 Jun 2009 08:39:46 +0300 Message-ID: <4A24BB1F.5060403@FreeBSD.org> Date: Tue, 02 Jun 2009 08:39:43 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: "James R. Van Artsdalen" , current@FreeBSD.org References: In-Reply-To: Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: SATA port multipliers 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: Tue, 02 Jun 2009 05:39:50 -0000 James R. Van Artsdalen wrote: > With this change (and other previously reported & PR'd patches) SATA > port multipliers seem to be working for me, albeit half as fast as expected. > > The ata_identify() call was commented out in February apparently due to > other problems it caused but it appears to be the only thing that scans > for drives behind an enclosure. > > Index: sys/dev/ata/ata-all.c > =================================================================== > --- sys/dev/ata/ata-all.c (revision 192136) > +++ sys/dev/ata/ata-all.c (working copy) > @@ -291,7 +291,7 @@ > ATA_LOCKING(dev, ATA_LF_UNLOCK); > > /* Add new children. */ > -/* ata_identify(dev); */ > + ata_identify(dev); > > if (bootverbose) > device_printf(dev, "reinit done ..\n"); ata_identify() also called in channel attach routine and it is enough to process port multipliers, same as usual drives. Calling it on reinit() would be good to be able to find new devices, but in current state it causes deadlock in some error conditions. -- Alexander Motin