From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57690) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WsXnJ-0003dg-RK for qemu-devel@nongnu.org; Thu, 05 Jun 2014 09:33:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WsXnC-00023h-7U for qemu-devel@nongnu.org; Thu, 05 Jun 2014 09:33:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11689) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WsXnB-000238-Ug for qemu-devel@nongnu.org; Thu, 05 Jun 2014 09:33:18 -0400 Date: Thu, 5 Jun 2014 15:33:13 +0200 From: Kevin Wolf Message-ID: <20140605133313.GD4885@noname.redhat.com> References: <1401801062-9154-1-git-send-email-kwolf@redhat.com> <1401801062-9154-15-git-send-email-kwolf@redhat.com> <20140603154616.GL21314@irqsave.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20140603154616.GL21314@irqsave.net> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3 14/21] raw-win32: Handle failure for potentially large allocations List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?Beno=EEt?= Canet Cc: mreitz@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, armbru@redhat.com Am 03.06.2014 um 17:46 hat Beno=EEt Canet geschrieben: > The Tuesday 03 Jun 2014 =E0 15:10:55 (+0200), Kevin Wolf wrote : > > Some code in the block layer makes potentially huge allocations. Fail= ure > > is not completely unexpected there, so avoid aborting qemu and handle > > out-of-memory situations gracefully. > >=20 > > This patch addresses the allocations in the raw-win32 block driver. > >=20 > > Signed-off-by: Kevin Wolf > > Reviewed-by: Stefan Hajnoczi > > --- > > block/win32-aio.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > >=20 > > diff --git a/block/win32-aio.c b/block/win32-aio.c > > index 5d1d199..b8320ce 100644 > > --- a/block/win32-aio.c > > +++ b/block/win32-aio.c > > @@ -138,7 +138,10 @@ BlockDriverAIOCB *win32_aio_submit(BlockDriverSt= ate *bs, > > waiocb->is_read =3D (type =3D=3D QEMU_AIO_READ); > > =20 > > if (qiov->niov > 1) { > > - waiocb->buf =3D qemu_blockalign(bs, qiov->size); > > + waiocb->buf =3D qemu_try_blockalign(bs, qiov->size); > > + if (waiocb->buf =3D=3D NULL) { > Would taking care that errno is still -ENOMEM at the failure exit of th= e fonction > usefull for the potentials callers ? There are only two callers and they don't care about errno. Kevin