From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lnb8h-000653-DH for qemu-devel@nongnu.org; Sat, 28 Mar 2009 12:12:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lnb8c-0005zM-OI for qemu-devel@nongnu.org; Sat, 28 Mar 2009 12:12:07 -0400 Received: from [199.232.76.173] (port=38069 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lnb8c-0005z7-Hd for qemu-devel@nongnu.org; Sat, 28 Mar 2009 12:12:02 -0400 Received: from e37.co.us.ibm.com ([32.97.110.158]:40412) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lnb8c-0001ps-7s for qemu-devel@nongnu.org; Sat, 28 Mar 2009 12:12:02 -0400 Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e37.co.us.ibm.com (8.13.1/8.13.1) with ESMTP id n2SGBVmg009231 for ; Sat, 28 Mar 2009 10:11:31 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n2SGBvT7196118 for ; Sat, 28 Mar 2009 10:11:57 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n2SGBvYf030247 for ; Sat, 28 Mar 2009 10:11:57 -0600 Message-ID: <49CE4C4B.4010403@us.ibm.com> Date: Sat, 28 Mar 2009 11:11:55 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1238160630-8745-1-git-send-email-avi@redhat.com> In-Reply-To: <1238160630-8745-1-git-send-email-avi@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 0/2] Fix immediate error handling on synthetic aios Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org Avi Kivity wrote: > The block layer can signal aio errors in two ways: by calling the completion > function with a negative status code, or by returning a NULL aiocb. Two of > the synthetic aio implementations (the DMA API and the vectored aio bouncing) > fail to handle the second case correctly, resulting in crashes when > cancellation of a timed out request is attempted. > > I think the long term fix is to have the block layer signal errors in just > one way -- by invoking the completion handler with a negative return code -- > but in the meanwhile, here are patches that add the required error checking. > > Avi Kivity (2): > Fix vectored aio bounce handling immediate errors > Fix DMA API when handling an immediate error from block layer > > block.c | 5 +++++ > dma-helpers.c | 27 +++++++++++++++++++++------ > 2 files changed, 26 insertions(+), 6 deletions(-) > Applied all. Thanks. Regards, Anthony Liguori