From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38395) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLwr3-0008Ly-NB for qemu-devel@nongnu.org; Thu, 12 Feb 2015 11:43:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLwqz-0007kq-95 for qemu-devel@nongnu.org; Thu, 12 Feb 2015 11:43:05 -0500 Received: from e06smtp16.uk.ibm.com ([195.75.94.112]:54198) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLwqy-0007kU-W7 for qemu-devel@nongnu.org; Thu, 12 Feb 2015 11:43:01 -0500 Received: from /spool/local by e06smtp16.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 12 Feb 2015 16:42:58 -0000 Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by d06dlp01.portsmouth.uk.ibm.com (Postfix) with ESMTP id 60F4F17D8059 for ; Thu, 12 Feb 2015 16:43:07 +0000 (GMT) Received: from d06av11.portsmouth.uk.ibm.com (d06av11.portsmouth.uk.ibm.com [9.149.37.252]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t1CGguM27602510 for ; Thu, 12 Feb 2015 16:42:56 GMT Received: from d06av11.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t1CGgtOU022307 for ; Thu, 12 Feb 2015 09:42:55 -0700 Message-ID: <54DCD80E.5030608@de.ibm.com> Date: Thu, 12 Feb 2015 17:42:54 +0100 From: Christian Borntraeger MIME-Version: 1.0 References: <1421678101-44779-1-git-send-email-tumanova@linux.vnet.ibm.com> <20150212154653.GB4054@stefanha-thinkpad.redhat.com> In-Reply-To: <20150212154653.GB4054@stefanha-thinkpad.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v6 0/5] Geometry and blocksize detection for backing devices. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi , Ekaterina Tumanova Cc: kwolf@redhat.com, thuth@linux.vnet.ibm.com, armbru@redhat.com, Public KVM Mailing List , mihajlov@linux.vnet.ibm.com, dahi@linux.vnet.ibm.com, stefanha@redhat.com, cornelia.huck@de.ibm.com, pbonzini@redhat.com Am 12.02.2015 um 16:46 schrieb Stefan Hajnoczi: > On Mon, Jan 19, 2015 at 03:34:56PM +0100, Ekaterina Tumanova wrote: >> Updates v5 -> v6: >> >> Minor Updates according the last review from Stefan Hajnoczi: >> 1. Do not change the flow of code, factored out of raw_probe_alignment. >> 2. added #ifdef __linux__ in 2 places of raw-posix.c, mentioned by reviewer. >> 3. adjusted the comment hdev_probe_geometry according suggestment. >> 4. use bdrv_nb_sectors(bs) instead of bs->total_sectors. >> 5. do not discard error blk_probe_blocksizes(). now has rc. >> 6. put the 512-byte default blocksize value in blkconf_blocksizes. >> 7. drop the default parameter from the DEFINE_PROP_BLOCKSIZE() macro. > > Unfortunately this series breaks "make check" so it cannot be merged: > > GTESTER check-qtest-x86_64 > qemu-system-x86_64: logical_block_size must be 512 for IDE > qemu-system-x86_64: Device initialization failed. > qemu-system-x86_64: Initialization of device ide-cd failed > Broken pipe > GTester: last random seed: R02S942fac7e56eff09e8ab7a7f7fecf847e > This particular message came in with commit d20051856cd2fa8f10fed2d2a0b2751de5f7b20d Author: Kevin Wolf Date: Wed Dec 3 13:21:32 2014 +0100 ide: Check validity of logical block size so something like diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c index 353854c..2680275 100644 --- a/hw/ide/qdev.c +++ b/hw/ide/qdev.c @@ -163,7 +163,8 @@ static int ide_dev_initfn(IDEDevice *dev, IDEDriveKind kind) return -1; } - if (dev->conf.logical_block_size != 512) { + if (dev->conf.logical_block_size != 512 && + dev->conf.logical_block_size != 0) { error_report("logical_block_size must be 512 for IDE"); return -1; } will fix this. Now we have block.c:582: bdrv_probe_blocksizes: Assertion `drv != ((void *)0)' failed so we need something like this on top - I guess. diff --git a/block.c b/block.c index dbc2519..8bbcc6d 100644 --- a/block.c +++ b/block.c @@ -579,8 +579,7 @@ int bdrv_probe_blocksizes(BlockDriverState *bs, BlockSizes *bsz) { BlockDriver *drv = bs->drv; - assert(drv != NULL); - if (drv->bdrv_probe_blocksizes) { + if (drv && drv->bdrv_probe_blocksizes) { return drv->bdrv_probe_blocksizes(bs, bsz); } @@ -597,8 +596,7 @@ int bdrv_probe_geometry(BlockDriverState *bs, HDGeometry *geo) { BlockDriver *drv = bs->drv; - assert(drv != NULL); - if (drv->bdrv_probe_geometry) { + if (drv && drv->bdrv_probe_geometry) { return drv->bdrv_probe_geometry(bs, geo); } Kate, I think its time for a v7 :-(