From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:47239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJRUS-0004Z7-Bp for qemu-devel@nongnu.org; Mon, 09 May 2011 10:31:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QJRUO-00053a-AS for qemu-devel@nongnu.org; Mon, 09 May 2011 10:31:16 -0400 Received: from cantor.suse.de ([195.135.220.2]:49274 helo=mx1.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJRUN-00053S-W9 for qemu-devel@nongnu.org; Mon, 09 May 2011 10:31:12 -0400 Message-ID: <4DC7FAAE.5090200@suse.de> Date: Mon, 09 May 2011 16:31:10 +0200 From: Alexander Graf MIME-Version: 1.0 References: <4DC6EAB5.4040607@web.de> <4DC7F668.2060205@suse.de> <4DC7F9A3.6070309@redhat.com> In-Reply-To: <4DC7F9A3.6070309@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] ahci: crash after duplicate bh registration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Jan Kiszka , qemu-devel On 05/09/2011 04:26 PM, Kevin Wolf wrote: > Am 09.05.2011 16:12, schrieb Alexander Graf: >> On 05/08/2011 09:10 PM, Jan Kiszka wrote: >>> Hi Alex, >>> >>> I've seen crashes caused by ahci_check_cmd_bh unregistering a NULL bh. >>> It looks like ahci_dma_set_inactive can a called while there is already >>> a bh hanging around. Patch below cures the issue, but I have no clue if >>> such an invocation order is valid at all. >> It's certainly guest triggerable, so yes, let's check here. >> >> Acked-by: Alexander Graf > Yes, the change makes sense to me. Please resend this as a proper patch, > Jan. > > However, I still think Jan's question is valid: Is the AHCI emulation > supposed to run multiple DMA requests at once using the core.c > functions? I'd find it surprising if this actually worked well. Not through the IDE core, no. There it can process a queue of IDE commands after each other or do NCQ, but that goes a different code patch, can do multiple requests at once though. I'm not sure how this got triggered. Alex