From owner-freebsd-stable@FreeBSD.ORG Sun May 17 23:51:24 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FFE41065672 for ; Sun, 17 May 2009 23:51:24 +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 CDBFF8FC14 for ; Sun, 17 May 2009 23:51:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 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 243023958; Mon, 18 May 2009 01:51:21 +0300 Message-ID: <4A1094E7.9010502@FreeBSD.org> Date: Mon, 18 May 2009 01:51:19 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.21 (X11/20090405) MIME-Version: 1.0 To: John Baldwin References: <1242375781.00112347.1242364801@10.7.7.3> <1242404600.00112531.1242393604@10.7.7.3> In-Reply-To: <1242404600.00112531.1242393604@10.7.7.3> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Bruce Simpson , freebsd-stable@freebsd.org Subject: Re: Boot panic w/7.2-STABLE on amd64: resource_list_alloc X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 May 2009 23:51:24 -0000 John Baldwin wrote: > Sounds like the ATA driver is allocating the same BAR twice. Hmm, yes, it > allocates the resources once for each channel it seems in the ata_ali_sata > attachment. Looking in ata-chipset.c, all the other chipsets are good about > allocating these resources in their chipinit routines rather than the > per-channel allocate routine. Well, except ata_pci_allocate() is also > busted. *sigh* I can work on a patch for HEAD if you are willing to test. ata_pci_allocate() (now known as ata_pci_ch_attach()) is a different case. It uses allocation functions wrapped by the atapci "bus", so every channel uses it's own pair of RIDs. Problem of ALI SATA is a bit different. As I understand, controller has two pairs of RIDs for 4 channels, so each channel should share resources with another one, just using different offset. Is there any other way to correctly handle two halves of same resource separately without teaching atapci to virtualize this as interrupts or handle it on controller level? -- Alexander Motin