From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47879) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSMKE-000157-Ga for qemu-devel@nongnu.org; Mon, 02 Mar 2015 04:07:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YSMKB-0004lM-6s for qemu-devel@nongnu.org; Mon, 02 Mar 2015 04:07:42 -0500 Received: from e06smtp14.uk.ibm.com ([195.75.94.110]:38948) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSMKA-0004kD-SY for qemu-devel@nongnu.org; Mon, 02 Mar 2015 04:07:39 -0500 Received: from /spool/local by e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 2 Mar 2015 09:07:36 -0000 Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id D5FB41B0805F for ; Mon, 2 Mar 2015 09:07:51 +0000 (GMT) Received: from d06av06.portsmouth.uk.ibm.com (d06av06.portsmouth.uk.ibm.com [9.149.37.217]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t2297Y2F9765334 for ; Mon, 2 Mar 2015 09:07:34 GMT Received: from d06av06.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av06.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t2242pcZ024575 for ; Sun, 1 Mar 2015 23:02:51 -0500 Message-ID: <54F42852.70301@linux.vnet.ibm.com> Date: Mon, 02 Mar 2015 12:07:30 +0300 From: Ekaterina Tumanova MIME-Version: 1.0 References: <54F099D7.7010206@redhat.com> <1425061593-4411-1-git-send-email-tumanova@linux.vnet.ibm.com> <1425061593-4411-2-git-send-email-tumanova@linux.vnet.ibm.com> <87y4nfpz1q.fsf@blackfin.pond.sub.org> In-Reply-To: <87y4nfpz1q.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/1] scsi-hd: fix property unset case List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: kwolf@redhat.com, thuth@linux.vnet.ibm.com, borntraeger@de.ibm.com, qemu-devel@nongnu.org, mihajlov@linux.vnet.ibm.com, dahi@linux.vnet.ibm.com, stefanha@redhat.com, cornelia.huck@de.ibm.com, mreitz@redhat.com On 03/02/2015 11:46 AM, Markus Armbruster wrote: > Ekaterina Tumanova writes: > >> check conf.blk before calling blkconf_blocksizes >> >> Signed-off-by: Ekaterina Tumanova >> --- >> hw/scsi/scsi-disk.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c >> index 2921728..df5140e 100644 >> --- a/hw/scsi/scsi-disk.c >> +++ b/hw/scsi/scsi-disk.c >> @@ -2291,7 +2291,9 @@ static void scsi_realize(SCSIDevice *dev, Error **errp) >> static void scsi_hd_realize(SCSIDevice *dev, Error **errp) >> { >> SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev); >> - blkconf_blocksizes(&s->qdev.conf); >> + if (s->qdev.conf.blk) { >> + blkconf_blocksizes(&s->qdev.conf); >> + } > > Looks suspicious on first glance, because block device model realize() > methods are supposed to fail when the backend is missing. But... > it will properly fail in scsi_realize >> s->qdev.blocksize = s->qdev.conf.logical_block_size; >> s->qdev.type = TYPE_DISK; >> if (!s->product) { > s->product = g_strdup("QEMU HARDDISK"); > } > scsi_realize(&s->qdev, errp); > > ... scsi_realize() errors out then. Worth a comment. Or maybe call > blkconf_blocksizes() only after scsi_realize(). Your choice. can't call it later. conf.logical_block_size, which blkconf_blocksizes sets it used earlier.