From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369340; cv=none; d=zohomail.com; s=zohoarc; b=cdKF8k/bSPqmtaXntZy26DxAESeuowv6fSnmgacVYEk7xjK+9FNJrRR+OaaK/cb661X31i9UQpdngFj8sh18XdThfuH8cvijKP+/wqtmRSJZM2esh4rvs6+Flnijwe03DkbzwVL6h995JxHy5m1yfFF3tDWvczxvLs4UUf/4Io8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369340; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mCWPG1YO13KOBLjUf6Z9T0hkv/A4X4VRtwLI9eXhLOc=; b=ZL8eKBRUWYPJXa8HPZecka+guziQWq3w3pdvat2FDyE3Y9iylWFmVkc2XtimTcPm00d0LwjHOkmwC38w+6x7ImCB/WsMZblkapStw9mC1hvL0Vd1WRUNjlj5tQw9VZmBDFU9q40tRJ5RykYBQ5+zRfKbSLnlrbSwlkEG2uP8Fo0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369340426880.2649294150282; Fri, 5 Jun 2020 08:02:20 -0700 (PDT) Received: from localhost ([::1]:52626 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDrN-0004G0-JN for importer@patchew.org; Fri, 05 Jun 2020 11:02:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlu-0003yO-Ee for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:55300 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007U3-GD for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-209-rqqlZUcdMpuCk36gj-nrug-1; Fri, 05 Jun 2020 10:56:28 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B468619200C2; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2CA945D9DA; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9BB0E11385C4; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mCWPG1YO13KOBLjUf6Z9T0hkv/A4X4VRtwLI9eXhLOc=; b=exAvANDo883hyGwPRjSyDLp0BbgO9a/onE1uRcZF3W25UonnUVBIp6Wrn8JiIi6yQTKzfn agyCw9qLLZweX5rh9PRFgwT66gV+JOzmHFbINrM2XLee+bsZXEGfuLaDb1IFhMX7B3+EjZ TF9dN+iW2j1EbCyOdjQhm8Ug/521u9o= X-MC-Unique: rqqlZUcdMpuCk36gj-nrug-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 01/16] iotests/172: Include "info block" in test output Date: Fri, 5 Jun 2020 16:56:10 +0200 Message-Id: <20200605145625.2920920-2-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The additional output demonstrates we screw up when -global isa-fdc clashes with -drive if=3Dfloppy or its sugared forms: according to "info qtree", only the latter backend is attached, but according to "info block", both are. For instance: Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2= .2 -global isa-fdc.driveA=3Dnone0 dev: isa-fdc, id "" [...] driveA =3D "" driveB =3D "" [...] bus: floppy-bus.0 type floppy-bus dev: floppy, id "" unit =3D 0 (0x0) ---> drive =3D "floppy0" [...] floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) ---> Attached to: /machine/unattached/device[15] Removable device: not locked, tray closed Cache mode: writeback none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) ---> Attached to: /machine/unattached/device[14] Cache mode: writeback /machine/unattached/device[15] is floppy, and /machine/unattached/device[14] is isa-fdc. Signed-off-by: Markus Armbruster --- tests/qemu-iotests/172 | 5 +- tests/qemu-iotests/172.out | 486 +++++++++++++++++++++++++++++++++++++ 2 files changed, 489 insertions(+), 2 deletions(-) diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 7195fb895a..19c2516cf8 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -69,9 +69,10 @@ check_floppy_qtree() # # Apply the sed filter to stdout only, but keep the stderr output and # filter the qemu program name in it. - echo "info qtree" | + printf "info qtree\ninfo block\n" | (QEMU_OPTIONS=3D"" do_run_qemu "$@" | - sed -ne '/^ dev: isa-fdc/,/^ dev:/{x;p}' ) 2>&1 | + _filter_testdir |_filter_generated_node_ids | _filter_hmp | + sed -ne '/^ dev: isa-fdc/,/^ dev:/{x;p};/^[a-z][= ^ ]* (NODE_NAME):* /,/^(qemu)$/{p}') 2>&1 | _filter_win32 | _filter_qemu } =20 diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 7abbe82427..4f180d93b8 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -62,6 +62,19 @@ Testing: -fda TEST_DIR/t.qcow2 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fdb TEST_DIR/t.qcow2 =20 @@ -100,6 +113,23 @@ Testing: -fdb TEST_DIR/t.qcow2 write-cache =3D "auto" share-rw =3D false drive-type =3D "288" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +floppy0: [not inserted] + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fda TEST_DIR/t.qcow2 -fdb TEST_DIR/t.qcow2.2 =20 @@ -138,6 +168,24 @@ Testing: -fda TEST_DIR/t.qcow2 -fdb TEST_DIR/t.qcow2.2 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +floppy1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Using -drive options =3D=3D=3D @@ -168,6 +216,19 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2,index=3D1 =20 @@ -206,6 +267,23 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2,in= dex=3D1 write-cache =3D "auto" share-rw =3D false drive-type =3D "288" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +floppy0: [not inserted] + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dfloppy,fil= e=3DTEST_DIR/t.qcow2.2,index=3D1 =20 @@ -244,6 +322,24 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -d= rive if=3Dfloppy,file=3DTEST_DIR/t write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +floppy1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Using -drive if=3Dnone and -global =3D=3D=3D @@ -274,6 +370,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -glo= bal isa-fdc.driveA=3Dnone0 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -global isa-fdc.driveB= =3Dnone0 =20 @@ -301,6 +410,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -glo= bal isa-fdc.driveB=3Dnone0 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -global isa-fdc.driveB=3D= none1 =20 @@ -339,6 +461,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dri= ve if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Using -drive if=3Dnone and -device =3D=3D=3D @@ -369,6 +509,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dev= ice floppy,drive=3Dnone0 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,unit=3D1 =20 @@ -396,6 +549,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dev= ice floppy,drive=3Dnone0,unit=3D1 write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -device floppy,drive=3Dnone0 -device floppy,drive=3Dnone= 1,unit=3D1 =20 @@ -434,6 +600,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dri= ve if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[1] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Mixing -fdX and -global =3D=3D=3D @@ -475,6 +659,24 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveA=3Dnone0 =20 @@ -513,6 +715,24 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[16] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[23] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveA=3Dnone0 =20 @@ -540,6 +760,23 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[14] + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveB=3Dnone0 =20 @@ -567,6 +804,23 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[14] + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Mixing -fdX and -device =3D=3D=3D @@ -608,6 +862,24 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device fl write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0,unit=3D1 =20 @@ -646,6 +918,24 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device fl write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0 =20 @@ -684,6 +974,24 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device fl write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0,unit=3D0 =20 @@ -722,6 +1030,24 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device fl write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -device floppy,drive=3Dnone0,unit=3D0 QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: Floppy unit 0 is in use @@ -769,6 +1095,24 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -= drive if=3Dnone,file=3DTEST_DIR/t.q write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device floppy,drive=3Dnone0,unit=3D1 =20 @@ -807,6 +1151,24 @@ Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -= drive if=3Dnone,file=3DTEST_DIR/t.q write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -device floppy,drive=3Dnone0,unit=3D0 QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: Floppy unit 0 is in use @@ -851,6 +1213,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D1 =20 @@ -889,6 +1269,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1 =20 @@ -927,6 +1325,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 =20 @@ -965,6 +1381,24 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -dr= ive if=3Dnone,file=3DTEST_DIR/t.qco write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: Floppy unit 0 is in use @@ -1118,6 +1552,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -d= evice floppy,drive=3Dnone0,drive-t write-cache =3D "auto" share-rw =3D false drive-type =3D "120" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,drive-type=3D288 =20 @@ -1145,6 +1592,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -d= evice floppy,drive=3Dnone0,drive-t write-cache =3D "auto" share-rw =3D false drive-type =3D "288" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 =20 =3D=3D=3D Try passing different block sizes =3D=3D=3D @@ -1175,6 +1635,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -d= evice floppy,drive=3Dnone0,logical write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,physical_block_size=3D512 =20 @@ -1202,6 +1675,19 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -d= evice floppy,drive=3Dnone0,physica write-cache =3D "auto" share-rw =3D false drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -device floppy,drive=3Dn= one0,logical_block_size=3D4096 QEMU_PROG: -device floppy,drive=3Dnone0,logical_block_size=3D4096: Physica= l and logical block size must be 512 for floppy --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369344; cv=none; d=zohomail.com; s=zohoarc; b=IdgO7KPWulj5FmFc3bVhJ1asi8NnzeSdaV1Lsw/twOYbNlFpTW3Ys/9ycSntY3j/GKWDQd6oR9ArYbygQeVlEzp2OJ1hhBhoASeoRMi15ATqU6xF5zRAnDribFolLgAPaCO14OnhE0KYmBwhkmMtTeagysi3mRG2bfGEICE6T/c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369344; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+aPEruL6wIYaUqTi7eYsnWWsvlKw0E/tFM2fK9igZAY=; b=MFAl2N/vrYQwuhm2pQRB4E1Pv24MSJ1VssvN1V2rN09A4rloQxi9z+9lHNBTeIq4I/Kn5pmFoH/RZRukDeL8WgPtk8xfF8FHxbwOhTa2x9Infwtf9cIIbElONMCRhrIk6Y7xX30goVF95a/wvKVWGyGo0mo/dT2bmC0/zaDTU34= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369344696416.31074943586555; Fri, 5 Jun 2020 08:02:24 -0700 (PDT) Received: from localhost ([::1]:52784 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDrS-0004Jy-Uq for importer@patchew.org; Fri, 05 Jun 2020 11:02:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50878) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlr-0003rT-Kw for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:35 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:60075 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007U0-Co for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:35 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-513-Ce4wghBkPdmlc4Xb_cEKSQ-1; Fri, 05 Jun 2020 10:56:28 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 68B21106B3B0; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3304260C1C; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A091C11385C8; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+aPEruL6wIYaUqTi7eYsnWWsvlKw0E/tFM2fK9igZAY=; b=Dvu1ttpNA+l+MAYEtd3u/RViJl//V6leOeCxg60pkplmQxubr/ApGJDdk95zazvrQjbAoR Nzlry+ZZU75Zb4P82Cwumqa22wI0p36dVcQu69xfSS0/J+owkYsLimb1vdJMVD/aydphX8 zJ65wX0ndoRebivAkFxoVK6zyitkTUw= X-MC-Unique: Ce4wghBkPdmlc4Xb_cEKSQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 02/16] iotests/172: Cover empty filename and multiple use of drives Date: Fri, 5 Jun 2020 16:56:11 +0200 Message-Id: <20200605145625.2920920-3-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:07:04 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Markus Armbruster --- tests/qemu-iotests/172 | 12 +++++++++ tests/qemu-iotests/172.out | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 19c2516cf8..714c7527b4 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -111,6 +111,7 @@ echo =3D=3D=3D Using -fda/-fdb options =3D=3D=3D check_floppy_qtree -fda "$TEST_IMG" check_floppy_qtree -fdb "$TEST_IMG" check_floppy_qtree -fda "$TEST_IMG" -fdb "$TEST_IMG.2" +check_floppy_qtree -fdb "" =20 =20 echo @@ -198,6 +199,17 @@ check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG"= -drive if=3Dnone,file=3D"$TEST_IM check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" \ -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dn= one1,unit=3D1 =20 +echo +echo +echo =3D=3D=3D Attempt to use drive twice =3D=3D=3D + +# if=3Dnone +check_floppy_qtree -drive if=3Dnone -device floppy,drive=3Dnone0 -device f= loppy -device floppy,drive=3Dnone0 +# if=3Dfloppy +check_floppy_qtree -fda "" -device floppy,drive=3Dfloppy0 +# default if=3Dfloppy (not found, because it's created later) +check_floppy_qtree -device floppy,drive=3Dfloppy0 + echo echo echo =3D=3D=3D Too many floppy drives =3D=3D=3D diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 4f180d93b8..23c44210e8 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -187,6 +187,44 @@ sd0: [not inserted] (qemu) quit =20 =20 +Testing: -fdb=20 + + dev: isa-fdc, id "" + iobase =3D 1008 (0x3f0) + irq =3D 6 (0x6) + dma =3D 2 (0x2) + driveA =3D "" + driveB =3D "" + check_media_rate =3D true + fdtypeA =3D "auto" + fdtypeB =3D "auto" + fallback =3D "288" + isa irq 6 + bus: floppy-bus.0 + type floppy-bus + dev: floppy, id "" + unit =3D 1 (0x1) + drive =3D "floppy1" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "288" + dev: floppy, id "" + unit =3D 0 (0x0) + drive =3D "floppy0" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "288" + =20 =3D=3D=3D Using -drive options =3D=3D=3D =20 @@ -1407,6 +1445,18 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -d= rive if=3Dnone,file=3DTEST_DIR/t.qco QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: Floppy unit 1 is in use =20 =20 +=3D=3D=3D Attempt to use drive twice =3D=3D=3D + +Testing: -drive if=3Dnone -device floppy,drive=3Dnone0 -device floppy -dev= ice floppy,drive=3Dnone0 +QEMU_PROG: -device floppy,drive=3Dnone0: Drive 'none0' is already in use b= y another device + +Testing: -fda -device floppy,drive=3Dfloppy0 +QEMU_PROG: -device floppy,drive=3Dfloppy0: Drive 'floppy0' is already in u= se because it has been automatically connected to another device (did you n= eed 'if=3Dnone' in the drive options?) + +Testing: -device floppy,drive=3Dfloppy0 +QEMU_PROG: -device floppy,drive=3Dfloppy0: Property 'floppy.drive' can't f= ind value 'floppy0' + + =3D=3D=3D Too many floppy drives =3D=3D=3D =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.3 -global is= a-fdc.driveB=3Dnone0 -device floppy,drive=3Dnone1 --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369716; cv=none; d=zohomail.com; s=zohoarc; b=cvEP2kHN/rGDeEpeE6cVDh/0RQyf+T/inI4YwbReiR1HqKJzDt+70wHaRXmOIvlWsesI09pvMlS6hxzMaEaiZf92KPUPtrW4MHTrrdMdrp3l6vlPGcMUZE1rjlN40ud3RUsWz8ylx/J0fNGVrY+z7mmntWwOcQbQJL3hbmNhWOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369716; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=j9/UKvBvAmk9YTLtdqkbtVKGzKaZHy1sV41gr7ratc4=; b=Kwer3d8WWyZg/fW73Up/pUQOQAqrVRPDnw1T1GAvpOD98zclKNujoebOaT+SQEldc3wEvoTaMiupVh++XVCeeCaVq+qPTDbBWhgzUAB2CedSMLNVLRdAtQ84DMZvxZ2Y4X8FvKA8BqcE7IFInCruq7trN7p7wGObejFbW8PaipE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369716182629.523710225713; Fri, 5 Jun 2020 08:08:36 -0700 (PDT) Received: from localhost ([::1]:44112 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDxS-0004hu-PS for importer@patchew.org; Fri, 05 Jun 2020 11:08:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50940) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlx-00046g-IQ for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:41 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:28898 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlt-0007Vt-As for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:41 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-273-01llsDlWMdyZq3MpnQ3AQw-1; Fri, 05 Jun 2020 10:56:28 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 91990EC1B3; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3313410013C0; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A44C31138527; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368996; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j9/UKvBvAmk9YTLtdqkbtVKGzKaZHy1sV41gr7ratc4=; b=QVl+hbIzHK4kAb0+LOi1krnu/XAbKRAscHhDzmQK+AgZwb8DBMfTJKVI4FS0hqMh6Mw481 +8k6a1KpWu/t3DluGq+edTDIsbF45QpukifL2xfZ/3TnKMIR21LFmtrrLKcXjWp5eI2S0R yXATfXWE8PL1t8ybxKz+hW1RUWq9FRM= X-MC-Unique: 01llsDlWMdyZq3MpnQ3AQw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 03/16] iotests/172: Cover -global floppy.drive=... Date: Fri, 5 Jun 2020 16:56:12 +0200 Message-Id: <20200605145625.2920920-4-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:07:04 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Use of -global to set a default backend for non-singleton devices is a bad idea. But as long as we permit it, we better test it. Test output demonstrates we screw up when -global floppy clashes with -fda or with -device floppy: according to "info qtree", only the latter backend is attached, but according to "info block", both are. Here's the clash with -device: Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global floppy.drive=3Dnone0 -device floppy,drive=3Dn= one1,unit=3D0 dev: isa-fdc, id "" [...] driveA =3D "" driveB =3D "" [...] bus: floppy-bus.0 type floppy-bus dev: floppy, id "" unit =3D 0 (0x0) ---> drive =3D "none1" [...] none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) ---> Attached to: /machine/peripheral-anon/device[0] Cache mode: writeback none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) ---> Attached to: /machine/peripheral-anon/device[0] Removable device: not locked, tray closed Cache mode: writeback /machine/peripheral-anon/device[0] is the floppy created with -device. Test output further demonstrates the "Drive 'FOO' is already in use because it has been automatically connected to another device" error message can be misleading. With '-fda "" -global floppy.drive=3Dfloppy0', it's in use because -global reuses -fda's backend. There is no other device involved. Signed-off-by: Markus Armbruster --- tests/qemu-iotests/172 | 7 ++ tests/qemu-iotests/172.out | 134 +++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 714c7527b4..18056bcef7 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -151,6 +151,7 @@ check_floppy_qtree -fdb "$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" -global is # Conflicting (-fdX wins) check_floppy_qtree -fda "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveA=3Dnone0 check_floppy_qtree -fdb "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveB=3Dnone0 +check_floppy_qtree -fda "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global floppy.drive=3Dnone0 =20 echo echo @@ -192,12 +193,16 @@ check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG= " -drive if=3Dnone,file=3D"$TEST_IM -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dn= one1 check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" \ -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dn= one1,unit=3D0 +check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" \ + -global floppy.drive=3Dnone0 -device floppy,unit=3D0 =20 # Conflicting check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" \ -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dn= one1,unit=3D0 check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" \ -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dn= one1,unit=3D1 +check_floppy_qtree -drive if=3Dnone,file=3D"$TEST_IMG" -drive if=3Dnone,fi= le=3D"$TEST_IMG.2" \ + -global floppy.drive=3Dnone0 -device floppy,drive=3Dnon= e1,unit=3D0 =20 echo echo @@ -205,8 +210,10 @@ echo =3D=3D=3D Attempt to use drive twice =3D=3D=3D =20 # if=3Dnone check_floppy_qtree -drive if=3Dnone -device floppy,drive=3Dnone0 -device f= loppy -device floppy,drive=3Dnone0 +check_floppy_qtree -drive if=3Dnone -global floppy.drive=3Dnone0 -device f= loppy -device floppy # if=3Dfloppy check_floppy_qtree -fda "" -device floppy,drive=3Dfloppy0 +check_floppy_qtree -fda "" -global floppy.drive=3Dfloppy0 # default if=3Dfloppy (not found, because it's created later) check_floppy_qtree -device floppy,drive=3Dfloppy0 =20 diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 23c44210e8..345e27c294 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -860,6 +860,50 @@ sd0: [not inserted] (qemu) quit =20 =20 +Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global floppy.drive=3Dnone0 + + dev: isa-fdc, id "" + iobase =3D 1008 (0x3f0) + irq =3D 6 (0x6) + dma =3D 2 (0x2) + driveA =3D "" + driveB =3D "" + check_media_rate =3D true + fdtypeA =3D "auto" + fdtypeB =3D "auto" + fallback =3D "288" + isa irq 6 + bus: floppy-bus.0 + type floppy-bus + dev: floppy, id "" + unit =3D 0 (0x0) + drive =3D "floppy0" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "144" +floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/unattached/device[15] + Removable device: not locked, tray closed + Cache mode: writeback + +none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/unattached/device[15] + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[22] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + + =20 =3D=3D=3D Mixing -fdX and -device =3D=3D=3D =20 @@ -1438,21 +1482,111 @@ sd0: [not inserted] (qemu) quit =20 =20 +Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -global floppy.drive=3Dn= one0 -device floppy,unit=3D0 + + dev: isa-fdc, id "" + iobase =3D 1008 (0x3f0) + irq =3D 6 (0x6) + dma =3D 2 (0x2) + driveA =3D "" + driveB =3D "" + check_media_rate =3D true + fdtypeA =3D "auto" + fdtypeB =3D "auto" + fallback =3D "288" + isa irq 6 + bus: floppy-bus.0 + type floppy-bus + dev: floppy, id "" + unit =3D 0 (0x0) + drive =3D "none0" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + + Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: Floppy unit 0 is in use =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D1 QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: Floppy unit 1 is in use =20 +Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global floppy.drive=3Dnone0 -device floppy,drive=3Dnone= 1,unit=3D0 + + dev: isa-fdc, id "" + iobase =3D 1008 (0x3f0) + irq =3D 6 (0x6) + dma =3D 2 (0x2) + driveA =3D "" + driveB =3D "" + check_media_rate =3D true + fdtypeA =3D "auto" + fdtypeB =3D "auto" + fallback =3D "288" + isa irq 6 + bus: floppy-bus.0 + type floppy-bus + dev: floppy, id "" + unit =3D 0 (0x0) + drive =3D "none1" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "144" +none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Cache mode: writeback + +none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) + Attached to: /machine/peripheral-anon/device[0] + Removable device: not locked, tray closed + Cache mode: writeback + +ide1-cd0: [not inserted] + Attached to: /machine/unattached/device[21] + Removable device: not locked, tray closed + +sd0: [not inserted] + Removable device: not locked, tray closed +(qemu) quit + + =20 =3D=3D=3D Attempt to use drive twice =3D=3D=3D =20 Testing: -drive if=3Dnone -device floppy,drive=3Dnone0 -device floppy -dev= ice floppy,drive=3Dnone0 QEMU_PROG: -device floppy,drive=3Dnone0: Drive 'none0' is already in use b= y another device =20 +Testing: -drive if=3Dnone -global floppy.drive=3Dnone0 -device floppy -dev= ice floppy +QEMU_PROG: -device floppy: can't apply global floppy.drive=3Dnone0: Drive = 'none0' is already in use by another device + Testing: -fda -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Drive 'floppy0' is already in u= se because it has been automatically connected to another device (did you n= eed 'if=3Dnone' in the drive options?) =20 +Testing: -fda -global floppy.drive=3Dfloppy0 +QEMU_PROG: can't apply global floppy.drive=3Dfloppy0: Drive 'floppy0' is a= lready in use because it has been automatically connected to another device= (did you need 'if=3Dnone' in the drive options?) + Testing: -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Property 'floppy.drive' can't f= ind value 'floppy0' =20 --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369733; cv=none; d=zohomail.com; s=zohoarc; b=RGqY8rTumAB8Tf79z2jHHXegRFo6DmqSNlNI33z+wFIyFd6+px1PySqWYLHxek5Jzgd70KXgKO5u67lNbhkItgN2CU6nyy2rAogn1Aq+NgWjDP04z8hYxWRpgU7mxzx1ZHG37wFA3b+EW4G84uCHxOBXC8n/p8aXWgRbpftuWes= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369733; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QxRbXVGcE14KuYRLt+/RrEE64sAhOS6H9OhYmgYfUWE=; b=aKO41+nGBKcP3JxmbZaXhXIC14bpjLq9ygOOz2hDd0LbQ8mF7TX/3fbqFeu0yqSeSYhD+ejvyy0WFWmLCeY0s9Nil8/gQeL/lWrAIUPFRfNcPCjOsFyf9Wv0R0DEVgd+tRpnZUOjMR8KHTtlD8KX5/nsLr5PKeLE4vfkWTK5XLQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369733312569.2050846301554; Fri, 5 Jun 2020 08:08:53 -0700 (PDT) Received: from localhost ([::1]:45162 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDxk-00058w-0j for importer@patchew.org; Fri, 05 Jun 2020 11:08:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlv-000419-G1 for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:39 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:34749 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007Uc-Un for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-70-oDU1Sz9RP-ynYcGC-6tjRQ-1; Fri, 05 Jun 2020 10:56:28 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AE755106B392; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2CB1A60C05; Fri, 5 Jun 2020 14:56:27 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A7E161138531; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QxRbXVGcE14KuYRLt+/RrEE64sAhOS6H9OhYmgYfUWE=; b=OeaALjQamb/nr1gBwmTAORUcS5mVZNslX2IA6KPKN7+lXgK3s7OyWh0LpSPE49PEhGnq4c XpH73e0M/qj4yolNtDkIocte4wFpz4NHC84Al09DJeETIens8CN9vdSsEg1zikH/5xCTOg xRtsFfl2o7W8nHJTAoptQi80w7qRv80= X-MC-Unique: oDU1Sz9RP-ynYcGC-6tjRQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 04/16] fdc: Reject clash between -drive if=floppy and -global isa-fdc Date: Fri, 5 Jun 2020 16:56:13 +0200 Message-Id: <20200605145625.2920920-5-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:35:49 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The floppy controller devices desugar their drive properties into floppy devices (since commit a92bd191a4 "fdc: Move qdev properties to FloppyDrive", v2.8.0). This involves some bad magic in fdctrl_connect_drives(), and exists for backward compatibility. The functions for boards to create floppy controller devices fdctrl_init_isa(), fdctrl_init_sysbus(), and sun4m_fdctrl_init() desugar -drive if=3Dfloppy to these floppy controller drive properties. If you use both -drive if=3Dfloppy (or its -fda / -fdb sugar) and -global isa-fdc for the same floppy device, -global silently loses the conflict, and both backends involved end up with the floppy device frontend attached, as demonstrated by iotest 172 (see commit before previous). This is wrong. Desugar -drive if=3Dfloppy straight to floppy devices instead, with helper fdctrl_init_drives(). The conflict now gets rejected cleanly: first, fdctrl_connect_drives() creates the floppy for the controller's property, then fdctrl_init_drives() attempts to create the floppy for -drive if=3Dfloppy, but fails because the unit is already in use. Output of iotest 172 changes in three ways: 1. The clash gets rejected. 2. In one test case, "info qtree" has the floppy devices swapped, and "info block" has their QOM paths swapped. This is because the floppy device for -fda now gets created after the one for -global isa-fdc.driveB. 3. The error message for -global floppy.drive=3Dfloppy0 changes. Before the patch, we set isa-fdc.driveA to -fda's block backend, then create the floppy device for it, then move the backend from isa-fdc.driveA to floppy.drive. Floppy creation fails when applying -global floppy.drive=3Dfloppy0, because floppy0 is still attached to isa-fdc. After the patch, we create the floppy for -fda, then set its drive property to floppy0. Now floppy creation succeeds, but setting the drive property fails, because -global already set it. Yes, this is exasperatingly complicated. Signed-off-by: Markus Armbruster --- include/hw/block/fdc.h | 1 + hw/block/fdc.c | 51 +++++++++-------- hw/isa/isa-superio.c | 18 ++---- hw/sparc64/sun4u.c | 9 +-- tests/qemu-iotests/172 | 3 +- tests/qemu-iotests/172.out | 114 ++++++------------------------------- 6 files changed, 54 insertions(+), 142 deletions(-) diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h index c15ff4c623..8855d3476c 100644 --- a/include/hw/block/fdc.h +++ b/include/hw/block/fdc.h @@ -9,6 +9,7 @@ =20 #define TYPE_ISA_FDC "isa-fdc" =20 +void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds); ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds); void fdctrl_init_sysbus(qemu_irq irq, int dma_chann, hwaddr mmio_base, DriveInfo **fds); diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 8528b9a3c7..8c2d0edd48 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2494,6 +2494,29 @@ static void fdctrl_result_timer(void *opaque) } =20 /* Init functions */ + +static void fdctrl_init_drives(FloppyBus *bus, DriveInfo **fds) +{ + DeviceState *dev; + int i; + + for (i =3D 0; i < MAX_FD; i++) { + if (fds[i]) { + dev =3D qdev_new("floppy"); + qdev_prop_set_uint32(dev, "unit", i); + qdev_prop_set_enum(dev, "drive-type", FLOPPY_DRIVE_TYPE_AUTO); + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(fds[i]), + &error_fatal); + qdev_realize_and_unref(dev, &bus->bus, &error_fatal); + } + } +} + +void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds) +{ + fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds); +} + static void fdctrl_connect_drives(FDCtrl *fdctrl, DeviceState *fdc_dev, Error **errp) { @@ -2541,25 +2564,15 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, D= eviceState *fdc_dev, =20 ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds) { - DeviceState *dev; ISADevice *isadev; =20 isadev =3D isa_try_new(TYPE_ISA_FDC); if (!isadev) { return NULL; } - dev =3D DEVICE(isadev); - - if (fds[0]) { - qdev_prop_set_drive(dev, "driveA", blk_by_legacy_dinfo(fds[0]), - &error_fatal); - } - if (fds[1]) { - qdev_prop_set_drive(dev, "driveB", blk_by_legacy_dinfo(fds[1]), - &error_fatal); - } isa_realize_and_unref(isadev, bus, &error_fatal); =20 + isa_fdc_init_drives(isadev, fds); return isadev; } =20 @@ -2575,18 +2588,12 @@ void fdctrl_init_sysbus(qemu_irq irq, int dma_chann, sys =3D SYSBUS_FDC(dev); fdctrl =3D &sys->state; fdctrl->dma_chann =3D dma_chann; /* FIXME */ - if (fds[0]) { - qdev_prop_set_drive(dev, "driveA", blk_by_legacy_dinfo(fds[0]), - &error_fatal); - } - if (fds[1]) { - qdev_prop_set_drive(dev, "driveB", blk_by_legacy_dinfo(fds[1]), - &error_fatal); - } sbd =3D SYS_BUS_DEVICE(dev); sysbus_realize_and_unref(sbd, &error_fatal); sysbus_connect_irq(sbd, 0, irq); sysbus_mmio_map(sbd, 0, mmio_base); + + fdctrl_init_drives(&sys->state.bus, fds); } =20 void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base, @@ -2596,15 +2603,13 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base, FDCtrlSysBus *sys; =20 dev =3D qdev_new("SUNW,fdtwo"); - if (fds[0]) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(fds[0]), - &error_fatal); - } sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); sys =3D SYSBUS_FDC(dev); sysbus_connect_irq(SYS_BUS_DEVICE(sys), 0, irq); sysbus_mmio_map(SYS_BUS_DEVICE(sys), 0, io_base); *fdc_tc =3D qdev_get_gpio_in(dev, 0); + + fdctrl_init_drives(&sys->state.bus, fds); } =20 static void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c index d3d58f9f16..e2e47d8fd9 100644 --- a/hw/isa/isa-superio.c +++ b/hw/isa/isa-superio.c @@ -17,6 +17,7 @@ #include "sysemu/sysemu.h" #include "sysemu/blockdev.h" #include "chardev/char.h" +#include "hw/block/fdc.h" #include "hw/isa/superio.h" #include "hw/qdev-properties.h" #include "hw/input/i8042.h" @@ -31,7 +32,7 @@ static void isa_superio_realize(DeviceState *dev, Error *= *errp) ISADevice *isa; DeviceState *d; Chardev *chr; - DriveInfo *drive; + DriveInfo *fd[MAX_FD]; char *name; int i; =20 @@ -115,7 +116,7 @@ static void isa_superio_realize(DeviceState *dev, Error= **errp) =20 /* Floppy disc */ if (!k->floppy.is_enabled || k->floppy.is_enabled(sio, 0)) { - isa =3D isa_new("isa-fdc"); + isa =3D isa_new(TYPE_ISA_FDC); d =3D DEVICE(isa); if (k->floppy.get_iobase) { qdev_prop_set_uint32(d, "iobase", k->floppy.get_iobase(sio, 0)= ); @@ -124,19 +125,12 @@ static void isa_superio_realize(DeviceState *dev, Err= or **errp) qdev_prop_set_uint32(d, "irq", k->floppy.get_irq(sio, 0)); } /* FIXME use a qdev drive property instead of drive_get() */ - drive =3D drive_get(IF_FLOPPY, 0, 0); - if (drive !=3D NULL) { - qdev_prop_set_drive(d, "driveA", blk_by_legacy_dinfo(drive), - &error_fatal); - } - /* FIXME use a qdev drive property instead of drive_get() */ - drive =3D drive_get(IF_FLOPPY, 0, 1); - if (drive !=3D NULL) { - qdev_prop_set_drive(d, "driveB", blk_by_legacy_dinfo(drive), - &error_fatal); + for (i =3D 0; i < MAX_FD; i++) { + fd[i] =3D drive_get(IF_FLOPPY, 0, i); } object_property_add_child(OBJECT(sio), "isa-fdc", OBJECT(isa)); isa_realize_and_unref(isa, bus, &error_fatal); + isa_fdc_init_drives(isa, fd); sio->floppy =3D isa; trace_superio_create_floppy(0, k->floppy.get_iobase ? diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 97e6d3a025..9c8655cffc 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -341,16 +341,9 @@ static void ebus_realize(PCIDevice *pci_dev, Error **e= rrp) } isa_dev =3D isa_new(TYPE_ISA_FDC); dev =3D DEVICE(isa_dev); - if (fd[0]) { - qdev_prop_set_drive(dev, "driveA", blk_by_legacy_dinfo(fd[0]), - &error_abort); - } - if (fd[1]) { - qdev_prop_set_drive(dev, "driveB", blk_by_legacy_dinfo(fd[1]), - &error_abort); - } qdev_prop_set_uint32(dev, "dma", -1); isa_realize_and_unref(isa_dev, s->isa_bus, &error_fatal); + isa_fdc_init_drives(isa_dev, fd); =20 /* Power */ dev =3D qdev_new(TYPE_SUN4U_POWER); diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 18056bcef7..3abfa72948 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -148,9 +148,10 @@ echo =3D=3D=3D Mixing -fdX and -global =3D=3D=3D check_floppy_qtree -fda "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveB=3Dnone0 check_floppy_qtree -fdb "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveA=3Dnone0 =20 -# Conflicting (-fdX wins) +# Conflicting check_floppy_qtree -fda "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveA=3Dnone0 check_floppy_qtree -fdb "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global isa-fdc.driveB=3Dnone0 +# Conflicting, -fdX wins check_floppy_qtree -fda "$TEST_IMG" -drive if=3Dnone,file=3D"$TEST_IMG.2" = -global floppy.drive=3Dnone0 =20 echo diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 345e27c294..ba15a85c88 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -675,17 +675,6 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is isa irq 6 bus: floppy-bus.0 type floppy-bus - dev: floppy, id "" - unit =3D 1 (0x1) - drive =3D "none0" - logical_block_size =3D 512 (0x200) - physical_block_size =3D 512 (0x200) - min_io_size =3D 0 (0x0) - opt_io_size =3D 0 (0x0) - discard_granularity =3D 4294967295 (0xffffffff) - write-cache =3D "auto" - share-rw =3D false - drive-type =3D "144" dev: floppy, id "" unit =3D 0 (0x0) drive =3D "floppy0" @@ -697,13 +686,24 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -global is write-cache =3D "auto" share-rw =3D false drive-type =3D "144" + dev: floppy, id "" + unit =3D 1 (0x1) + drive =3D "none0" + logical_block_size =3D 512 (0x200) + physical_block_size =3D 512 (0x200) + min_io_size =3D 0 (0x0) + opt_io_size =3D 0 (0x0) + discard_granularity =3D 4294967295 (0xffffffff) + write-cache =3D "auto" + share-rw =3D false + drive-type =3D "144" floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) - Attached to: /machine/unattached/device[15] + Attached to: /machine/unattached/device[16] Removable device: not locked, tray closed Cache mode: writeback =20 none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) - Attached to: /machine/unattached/device[16] + Attached to: /machine/unattached/device[15] Removable device: not locked, tray closed Cache mode: writeback =20 @@ -773,92 +773,10 @@ sd0: [not inserted] =20 =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveA=3Dnone0 - - dev: isa-fdc, id "" - iobase =3D 1008 (0x3f0) - irq =3D 6 (0x6) - dma =3D 2 (0x2) - driveA =3D "" - driveB =3D "" - check_media_rate =3D true - fdtypeA =3D "auto" - fdtypeB =3D "auto" - fallback =3D "288" - isa irq 6 - bus: floppy-bus.0 - type floppy-bus - dev: floppy, id "" - unit =3D 0 (0x0) - drive =3D "floppy0" - logical_block_size =3D 512 (0x200) - physical_block_size =3D 512 (0x200) - min_io_size =3D 0 (0x0) - opt_io_size =3D 0 (0x0) - discard_granularity =3D 4294967295 (0xffffffff) - write-cache =3D "auto" - share-rw =3D false - drive-type =3D "144" -floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) - Attached to: /machine/unattached/device[15] - Removable device: not locked, tray closed - Cache mode: writeback - -none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) - Attached to: /machine/unattached/device[14] - Cache mode: writeback - -ide1-cd0: [not inserted] - Attached to: /machine/unattached/device[22] - Removable device: not locked, tray closed - -sd0: [not inserted] - Removable device: not locked, tray closed -(qemu) quit - +QEMU_PROG: Floppy unit 0 is in use =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveB=3Dnone0 - - dev: isa-fdc, id "" - iobase =3D 1008 (0x3f0) - irq =3D 6 (0x6) - dma =3D 2 (0x2) - driveA =3D "" - driveB =3D "" - check_media_rate =3D true - fdtypeA =3D "auto" - fdtypeB =3D "auto" - fallback =3D "288" - isa irq 6 - bus: floppy-bus.0 - type floppy-bus - dev: floppy, id "" - unit =3D 1 (0x1) - drive =3D "floppy1" - logical_block_size =3D 512 (0x200) - physical_block_size =3D 512 (0x200) - min_io_size =3D 0 (0x0) - opt_io_size =3D 0 (0x0) - discard_granularity =3D 4294967295 (0xffffffff) - write-cache =3D "auto" - share-rw =3D false - drive-type =3D "144" -floppy1 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) - Attached to: /machine/unattached/device[15] - Removable device: not locked, tray closed - Cache mode: writeback - -none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) - Attached to: /machine/unattached/device[14] - Cache mode: writeback - -ide1-cd0: [not inserted] - Attached to: /machine/unattached/device[22] - Removable device: not locked, tray closed - -sd0: [not inserted] - Removable device: not locked, tray closed -(qemu) quit - +QEMU_PROG: Floppy unit 1 is in use =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global floppy.drive=3Dnone0 =20 @@ -1585,7 +1503,7 @@ Testing: -fda -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Drive 'floppy0' is already in u= se because it has been automatically connected to another device (did you n= eed 'if=3Dnone' in the drive options?) =20 Testing: -fda -global floppy.drive=3Dfloppy0 -QEMU_PROG: can't apply global floppy.drive=3Dfloppy0: Drive 'floppy0' is a= lready in use because it has been automatically connected to another device= (did you need 'if=3Dnone' in the drive options?) +QEMU_PROG: Drive 'floppy0' is already in use because it has been automatic= ally connected to another device (did you need 'if=3Dnone' in the drive opt= ions?) =20 Testing: -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Property 'floppy.drive' can't f= ind value 'floppy0' --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369058; cv=none; d=zohomail.com; s=zohoarc; b=LnmW1BK57znZ48C3AycY2t7U3uOHge517oNfDH0jvpXjNZjwUTzRrbzgUe1xOflWkUpFH7R11KAbQ6vfVACB5vE5rxJDHsEHPq3diQuPes4rHpsuIrq6kJCDOTESvgv2xhWQb3x2thjT8ADBtSDRsAei4Yf3WLS0sOs6DdhD/ds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369058; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tUdVh67sTfjl/72Ut3/PpNVoa1OJlZV6J+orOzszels=; b=aXhn4eIz3CoSW96IH4CZaIooCj4MnUv2KB0UZ2Ss4+cLPSrH6IIjPtkEuLJypj0tP8+nyNDH5H2UmflIZUV7TGJQH2wHJaiDPF3KzoJI65o4TstAJr7Sfkw2LSe2qieY9ZjNo6WqB2zh3XDwxW9HhU0raRG13qbREgFkc4Me+sc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369058906742.3617164593134; Fri, 5 Jun 2020 07:57:38 -0700 (PDT) Received: from localhost ([::1]:37570 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDmr-0005y6-L5 for importer@patchew.org; Fri, 05 Jun 2020 10:57:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50826) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0003lV-9Z for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:33 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:42386 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlo-0007TD-57 for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-25-oIkXqbI3O6C38V5CEuey-w-1; Fri, 05 Jun 2020 10:56:29 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DD9F5100A61D; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A96A79CA0; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id AB40C11384A0; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tUdVh67sTfjl/72Ut3/PpNVoa1OJlZV6J+orOzszels=; b=Gjki+Ps2C6JmgDb71zR0txKxw/mk2smFfxq685FQDxXi464SD4t5t4FKbkkbDNJ+3Pk1Ct tg1lrNIYjbhk9TN1SkRUkpzCFPa5JVCUpFkFB2Xk0FbMSHjoVYLsbtbU5Sai5JyCQ4bvuw 9R1Tp1zA8MiqEqGzoByllgSON+0PhP8= X-MC-Unique: oIkXqbI3O6C38V5CEuey-w-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 05/16] fdc: Open-code fdctrl_init_isa() Date: Fri, 5 Jun 2020 16:56:14 +0200 Message-Id: <20200605145625.2920920-6-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Helper function fdctrl_init_isa() is less than helpful: one of three places creating "isa-fdc" devices use it. Open-code it there, and drop the function. Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/block/fdc.h | 1 - hw/block/fdc.c | 14 -------------- hw/i386/pc.c | 8 ++++++-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h index 8855d3476c..d232d3fa1e 100644 --- a/include/hw/block/fdc.h +++ b/include/hw/block/fdc.h @@ -10,7 +10,6 @@ #define TYPE_ISA_FDC "isa-fdc" =20 void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds); -ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds); void fdctrl_init_sysbus(qemu_irq irq, int dma_chann, hwaddr mmio_base, DriveInfo **fds); void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base, diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 8c2d0edd48..35e734b6fb 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2562,20 +2562,6 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, De= viceState *fdc_dev, } } =20 -ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds) -{ - ISADevice *isadev; - - isadev =3D isa_try_new(TYPE_ISA_FDC); - if (!isadev) { - return NULL; - } - isa_realize_and_unref(isadev, bus, &error_fatal); - - isa_fdc_init_drives(isadev, fds); - return isadev; -} - void fdctrl_init_sysbus(qemu_irq irq, int dma_chann, hwaddr mmio_base, DriveInfo **fds) { diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 0cffb67c2f..25c9577c15 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1141,7 +1141,7 @@ static void pc_superio_init(ISABus *isa_bus, bool cre= ate_fdctrl, bool no_vmport) int i; DriveInfo *fd[MAX_FD]; qemu_irq *a20_line; - ISADevice *i8042, *port92, *vmmouse; + ISADevice *fdc, *i8042, *port92, *vmmouse; =20 serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS); parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); @@ -1151,7 +1151,11 @@ static void pc_superio_init(ISABus *isa_bus, bool cr= eate_fdctrl, bool no_vmport) create_fdctrl |=3D !!fd[i]; } if (create_fdctrl) { - fdctrl_init_isa(isa_bus, fd); + fdc =3D isa_new(TYPE_ISA_FDC); + if (fdc) { + isa_realize_and_unref(fdc, isa_bus, &error_fatal); + isa_fdc_init_drives(fdc, fd); + } } =20 i8042 =3D isa_create_simple(isa_bus, "i8042"); --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369293; cv=none; d=zohomail.com; s=zohoarc; b=IQbXfoJ3/XyEAaE3MdzOjBn4akYddynkDZFHjxDeq4w3oUDWI9GM22sqKzwpjDbYa/4QYN/KmMpB6ytkNDHZcdH6zB+mVpGMK/qXxM6SQwz6PwmjmsSJ3wmEZNX3rAiAD5Krxhsz4Cp5/0ap6YVwZ8yRjQP1cWtVeX/TdROUjO4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369293; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WdR0avGvF0lfjSDllhT1vYaxDaXf0MDU8lJZUi51EQc=; b=idcpcXAWH2bl1ok8+6OAkM0GYn4qjoheRjlXUv/RxHeY0pATJGUlOT0jZdcDzZAMRr16yXVSVVfIBQfuaf6uNAsLlkc3rps2ot2dCg3pCPMoU2uyhuN08kM2fmwXkXWemmfo5tnkE4rkxcp2P0gEli+IBUeGrgsU6t63f31500A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369293702127.2874240283677; Fri, 5 Jun 2020 08:01:33 -0700 (PDT) Received: from localhost ([::1]:50282 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDqe-00031Q-8M for importer@patchew.org; Fri, 05 Jun 2020 11:01:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50894) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlt-0003vh-9t for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:37 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:23459 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007UD-LP for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:36 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-359-jT-XUSbgPJWyUwNSQ9Bb-Q-1; Fri, 05 Jun 2020 10:56:31 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 149AE464; Fri, 5 Jun 2020 14:56:30 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AE3A878FBF; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id AEC1A11384A1; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WdR0avGvF0lfjSDllhT1vYaxDaXf0MDU8lJZUi51EQc=; b=Jrw7BvuLVFtBwGy5IiadhXu7hu4fORlmiD8fQ/F1yb+snFFEJZNfVoUJPQRGEeagK36nSL mRjEnNb1F/9gxX615nLLr93rogBvoGVKJPewZYqTlTMJ6wTRjpcrwol5HpT7hJr7WSU+VE U5cMured9S2bkeGoN8KeayuGglm8XAI= X-MC-Unique: jT-XUSbgPJWyUwNSQ9Bb-Q-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 06/16] fdc: Deprecate configuring floppies with -global isa-fdc Date: Fri, 5 Jun 2020 16:56:15 +0200 Message-Id: <20200605145625.2920920-7-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Deprecate -global isa-fdc.driveA=3D... -global isa-fdc.driveB=3D... in favour of -device floppy,unit=3D0,drive=3D... -device floppy,unit=3D1,drive=3D... Same for the other floppy controller devices. Signed-off-by: Markus Armbruster Acked-by: John Snow --- docs/qdev-device-use.txt | 13 ++++--------- docs/system/deprecated.rst | 26 ++++++++++++++++++++++++++ hw/block/fdc.c | 17 +++++++++++++++++ tests/qemu-iotests/172.out | 30 ++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 9 deletions(-) diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt index cc53e97dcd..3d781be547 100644 --- a/docs/qdev-device-use.txt +++ b/docs/qdev-device-use.txt @@ -104,15 +104,10 @@ The -device argument differs in detail for each type = of drive: =20 * if=3Dfloppy =20 - -global isa-fdc.driveA=3DDRIVE-ID - -global isa-fdc.driveB=3DDRIVE-ID + -device floppy,unit=3DUNIT,drive=3DDRIVE-ID =20 - This is -global instead of -device, because the floppy controller is - created automatically, and we want to configure that one, not create - a second one (which isn't possible anyway). - - Without any -global isa-fdc,... you get an empty driveA and no - driveB. You can use -nodefaults to suppress the default driveA, see + Without any -device floppy,... you get an empty unit 0 and no unit + 1. You can use -nodefaults to suppress the default unit 0, see "Default Devices". =20 * if=3Dvirtio @@ -385,7 +380,7 @@ some DEVNAMEs: =20 default device suppressing DEVNAMEs CD-ROM ide-cd, ide-drive, ide-hd, scsi-cd, scsi-hd - isa-fdc's driveA floppy, isa-fdc + floppy floppy, isa-fdc parallel isa-parallel serial isa-serial VGA VGA, cirrus-vga, isa-vga, isa-cirrus-vga, diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index f0061f94aa..9bd11c1e95 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -172,6 +172,32 @@ previously available ``-tb-size`` option. Use ``-display sdl,show-cursor=3Don`` or ``-display gtk,show-cursor=3Don`` instead. =20 +``Configuring floppies with ``-global`` +''''''''''''''''''''''''''''''''''''''' + +Use ``-device floppy,...`` instead: +:: + + -global isa-fdc.driveA=3D... + -global sysbus-fdc.driveA=3D... + -global SUNW,fdtwo.drive=3D... + +become +:: + + -device floppy,unit=3D0,drive=3D... + +and +:: + + -global isa-fdc.driveB=3D... + -global sysbus-fdc.driveB=3D... + +become +:: + + -device floppy,unit=3D1,drive=3D... + QEMU Machine Protocol (QMP) commands ------------------------------------ =20 diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 35e734b6fb..4191d5b006 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2525,6 +2525,7 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, Dev= iceState *fdc_dev, DeviceState *dev; BlockBackend *blk; Error *local_err =3D NULL; + const char *fdc_name, *drive_suffix; =20 for (i =3D 0; i < MAX_FD; i++) { drive =3D &fdctrl->drives[i]; @@ -2539,10 +2540,26 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, D= eviceState *fdc_dev, continue; } =20 + fdc_name =3D object_get_typename(OBJECT(fdc_dev)); + drive_suffix =3D !strcmp(fdc_name, "SUNW,fdtwo") ? "" : i ? "B" : = "A"; + warn_report("warning: property %s.drive%s is deprecated", + fdc_name, drive_suffix); + error_printf("Use -device floppy,unit=3D%d,drive=3D... instead.\n"= , i); + dev =3D qdev_new("floppy"); qdev_prop_set_uint32(dev, "unit", i); qdev_prop_set_enum(dev, "drive-type", fdctrl->qdev_for_drives[i].t= ype); =20 + /* + * Hack alert: we move the backend from the floppy controller + * device to the floppy device. We first need to detach the + * controller, or else floppy_create()'s qdev_prop_set_drive() + * will die when it attaches floppy device. We also need to + * take another reference so that blk_detach_dev() doesn't + * free blk while we still need it. + * + * The hack is probably a bad idea. + */ blk_ref(blk); blk_detach_dev(blk, fdc_dev); fdctrl->qdev_for_drives[i].blk =3D NULL; diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index ba15a85c88..253f35111d 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -383,6 +383,8 @@ sd0: [not inserted] =3D=3D=3D Using -drive if=3Dnone and -global =3D=3D=3D =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -global isa-fdc.driveA= =3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -423,6 +425,8 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -global isa-fdc.driveB= =3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -463,6 +467,10 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -global isa-fdc.driveB=3D= none1 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -661,6 +669,8 @@ sd0: [not inserted] =3D=3D=3D Mixing -fdX and -global =3D=3D=3D =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveB=3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -717,6 +727,8 @@ sd0: [not inserted] =20 =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveA=3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -773,9 +785,13 @@ sd0: [not inserted] =20 =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveA=3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. QEMU_PROG: Floppy unit 0 is in use =20 Testing: -fdb TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global isa-fdc.driveB=3Dnone0 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. QEMU_PROG: Floppy unit 1 is in use =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global floppy.drive=3Dnone0 @@ -1177,6 +1193,8 @@ QEMU_PROG: -device floppy,drive=3Dnone0,unit=3D0: Flo= ppy unit 0 is in use =3D=3D=3D Mixing -global and -device =3D=3D=3D =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -1233,6 +1251,8 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D1 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -1289,6 +1309,8 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -1345,6 +1367,8 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. =20 dev: isa-fdc, id "" iobase =3D 1008 (0x3f0) @@ -1441,9 +1465,13 @@ sd0: [not inserted] =20 =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveA=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D0 +QEMU_PROG: warning: warning: property isa-fdc.driveA is deprecated +Use -device floppy,unit=3D0,drive=3D... instead. QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: Floppy unit 0 is in use =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global isa-fdc.driveB=3Dnone0 -device floppy,drive=3Dno= ne1,unit=3D1 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: Floppy unit 1 is in use =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global floppy.drive=3Dnone0 -device floppy,drive=3Dnone= 1,unit=3D0 @@ -1512,6 +1540,8 @@ QEMU_PROG: -device floppy,drive=3Dfloppy0: Property '= floppy.drive' can't find valu =3D=3D=3D Too many floppy drives =3D=3D=3D =20 Testing: -drive if=3Dfloppy,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file= =3DTEST_DIR/t.qcow2.2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.3 -global is= a-fdc.driveB=3Dnone0 -device floppy,drive=3Dnone1 +QEMU_PROG: warning: warning: property isa-fdc.driveB is deprecated +Use -device floppy,unit=3D1,drive=3D... instead. QEMU_PROG: -device floppy,drive=3Dnone1: Can't create floppy unit 2, bus s= upports only 2 units =20 =20 --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369198; cv=none; d=zohomail.com; s=zohoarc; b=Lb8Q0CQYKwYfr5ZcSefeYkYfEa+TbO6IHpTGOi9JGKVxPGc/Ijosl4DNjg+iCinCBtEv9/BVUCCRJBh0ybinM6JqOtD/DtRdf/ixesX7h13oXdSc8ImiVbyhtIbL7sPHHN+fWxex0j7Xt04bKVidYSDOkjUOMTzfezprKOgI0I8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369198; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=C/o8EUTwz61DeFoMt8N+e7zk0RttZhOAdF6NkrnflR4=; b=GL0MGBdfdhG+V2QUbwobfr6o/4d3EwlI2jtlR5oxnucc4+qcv4eOAOiJeLKanHLpneZpcybrqlq5PAUStcuQwW5Oxw+5cvX1/unNXDa1jUqUPfkV6SaMgQwFSp322/bEmSh4QRCz9sdBNlEEaGUtfiA1rLU4inbp/MVKw02KqnQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369198539132.04322269240492; Fri, 5 Jun 2020 07:59:58 -0700 (PDT) Received: from localhost ([::1]:46298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDp7-0001Jr-8l for importer@patchew.org; Fri, 05 Jun 2020 10:59:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0003mM-Ng for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:33 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:52796 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlo-0007TW-PE for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:33 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-307-G6Xvp2dRNhybNeALgbMNCg-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 03F118018AC; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C3B5D5C578; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B22AA11384A2; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=C/o8EUTwz61DeFoMt8N+e7zk0RttZhOAdF6NkrnflR4=; b=NaK8WFJaCBFrKdFxpKSJFd25cBibtmwWFxTY8Z+ao7pnrnYbo4yZeki3Lb6T0qWMOCYuhh j1E9wgaqpx9SP+twTO/Hp5K690JXBqEGTSjwrzvQfytrEFTbz8vsFEiosIqdCoNLi+thLR LD4zZ2gv79Nx46fOljVT2Jq7OT9HFSc= X-MC-Unique: G6Xvp2dRNhybNeALgbMNCg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 07/16] docs/qdev-device-use.txt: Update section "Default Devices" Date: Fri, 5 Jun 2020 16:56:16 +0200 Message-Id: <20200605145625.2920920-8-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:07:04 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Resynchronize the table of default device suppressions with vl.c's default_list[]. Signed-off-by: Markus Armbruster --- docs/qdev-device-use.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt index 3d781be547..4bbbcf561f 100644 --- a/docs/qdev-device-use.txt +++ b/docs/qdev-device-use.txt @@ -384,8 +384,8 @@ some DEVNAMEs: parallel isa-parallel serial isa-serial VGA VGA, cirrus-vga, isa-vga, isa-cirrus-vga, - vmware-svga, qxl-vga, virtio-vga - virtioconsole virtio-serial-pci, virtio-serial + vmware-svga, qxl-vga, virtio-vga, ati-vga, + vhost-user-vga =20 The default NIC is connected to a default part created along with it. It is *not* suppressed by configuring a NIC with -device (you may call --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369593; cv=none; d=zohomail.com; s=zohoarc; b=R6VQ2ytROiaJOHJgbbrCUnTZVIV+7ttKyJQwDLQxiOvnRrQKdTV9lpw7mLxIS+XW2Cqxqrpfyby0R2aSGhfBQRJpE89Gy9YPQ1SPDfoOIy0bc0wYpqFmepgSCXgIgFIpARykI+YM02ogLZUFb/Fo5bmwwfg4+G5ai4wM7YXCDbs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369593; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9F19pJ5pCq+EaJrtk3gQVuSal6JrPOM3WJQwFOQ483I=; b=A+1/GUpR/Y8EOoTsPqYmLv+lTDh4vQuQKtGPmHgm9PyKGt6033jEaULsfjiwDv72nRpW7cEPymf9k81oQY9rAPh3T1bNzFiDdSAYBrA2Cv4lTGKPRVRNfGSuX9I++9iuLUY6LG8ZwcdNjHIDeC0VlUOW8cxhmeIu9Hl73u/Gr08= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369593642433.17900062989406; Fri, 5 Jun 2020 08:06:33 -0700 (PDT) Received: from localhost ([::1]:36728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDvU-0001Yy-Ai for importer@patchew.org; Fri, 05 Jun 2020 11:06:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50922) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlw-000437-5x for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:40 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:58815 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlq-0007V2-JH for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-141-H6NWpd5dOhqyKyCZpjMIlA-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 32B3AEC1A4; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CBE4B78F1F; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B5B2D11384A9; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9F19pJ5pCq+EaJrtk3gQVuSal6JrPOM3WJQwFOQ483I=; b=WoOH4uc1CcHj/gRdzzvfhOg0GT8YWxMcWa4MFZyEfhYXCOrMn8R6LvkNzQ/Ebr+8LA0/cS RaZdLLxAKZDO/PW9LaKQsnbd06qxLPzYmxgoO1Pm6YlmNhE67Xiht0kdyeEm2RjMGgP9H3 GnKC+lkPa3woMpmMPNGmuUvJ1VD0i7g= X-MC-Unique: H6NWpd5dOhqyKyCZpjMIlA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 08/16] blockdev: Deprecate -drive with bogus interface type Date: Fri, 5 Jun 2020 16:56:17 +0200 Message-Id: <20200605145625.2920920-9-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:07:04 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Drives with interface types other than if=3Dnone are for onboard devices. Unfortunately, any such drives the board doesn't pick up can still be used with -device, like this: $ qemu-system-x86_64 -nodefaults -display none -S -drive if=3Dfloppy,id= =3Dbogus,unit=3D7 -device ide-cd,drive=3Dbogus -monitor stdio QEMU 5.0.50 monitor - type 'help' for more information (qemu) info block bogus: [not inserted] Attached to: /machine/peripheral-anon/device[0] Removable device: not locked, tray closed (qemu) info qtree bus: main-system-bus type System [...] bus: ide.1 type IDE dev: ide-cd, id "" ---> drive =3D "bogus" [...] unit =3D 0 (0x0) [...] This kind of abuse has always worked. Deprecate it: qemu-system-x86_64: -drive if=3Dfloppy,id=3Dbogus,unit=3D7: warning: bo= gus if=3Dfloppy is deprecated, use if=3Dnone Signed-off-by: Markus Armbruster --- docs/system/deprecated.rst | 8 ++++++++ include/sysemu/blockdev.h | 2 ++ blockdev.c | 27 +++++++++++++++++++++++++-- softmmu/vl.c | 8 ++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst index 9bd11c1e95..27a1c21165 100644 --- a/docs/system/deprecated.rst +++ b/docs/system/deprecated.rst @@ -198,6 +198,14 @@ become =20 -device floppy,unit=3D1,drive=3D... =20 +``-drive`` with bogus interface type +'''''''''''''''''''''''''''''''''''' + +Drives with interface types other than ``if=3Dnone`` are for onboard +devices. It is possible to use drives the board doesn't pick up with +-device. This usage is now deprecated. Use ``if=3Dnone`` instead. + + QEMU Machine Protocol (QMP) commands ------------------------------------ =20 diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h index a86d99b3d8..3b5fcda08d 100644 --- a/include/sysemu/blockdev.h +++ b/include/sysemu/blockdev.h @@ -35,6 +35,7 @@ struct DriveInfo { bool is_default; /* Added by default_drive() ? */ int media_cd; QemuOpts *opts; + bool claimed_by_board; QTAILQ_ENTRY(DriveInfo) next; }; =20 @@ -45,6 +46,7 @@ BlockBackend *blk_by_legacy_dinfo(DriveInfo *dinfo); void override_max_devs(BlockInterfaceType type, int max_devs); =20 DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit); +void drive_mark_claimed_by_board(void); void drive_check_orphaned(void); DriveInfo *drive_get_by_index(BlockInterfaceType type, int index); int drive_get_max_bus(BlockInterfaceType type); diff --git a/blockdev.c b/blockdev.c index 72df193ca7..31d5eaf6bf 100644 --- a/blockdev.c +++ b/blockdev.c @@ -239,6 +239,19 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus,= int unit) return NULL; } =20 +void drive_mark_claimed_by_board(void) +{ + BlockBackend *blk; + DriveInfo *dinfo; + + for (blk =3D blk_next(NULL); blk; blk =3D blk_next(blk)) { + dinfo =3D blk_legacy_dinfo(blk); + if (dinfo && blk_get_attached_dev(blk)) { + dinfo->claimed_by_board =3D true; + } + } +} + void drive_check_orphaned(void) { BlockBackend *blk; @@ -248,8 +261,10 @@ void drive_check_orphaned(void) =20 for (blk =3D blk_next(NULL); blk; blk =3D blk_next(blk)) { dinfo =3D blk_legacy_dinfo(blk); - if (!blk_get_attached_dev(blk) && !dinfo->is_default && - dinfo->type !=3D IF_NONE) { + if (dinfo->is_default || dinfo->type =3D=3D IF_NONE) { + continue; + } + if (!blk_get_attached_dev(blk)) { loc_push_none(&loc); qemu_opts_loc_restore(dinfo->opts); error_report("machine type does not support" @@ -257,6 +272,14 @@ void drive_check_orphaned(void) if_name[dinfo->type], dinfo->bus, dinfo->unit); loc_pop(&loc); orphans =3D true; + continue; + } + if (!dinfo->claimed_by_board && dinfo->type !=3D IF_VIRTIO) { + loc_push_none(&loc); + qemu_opts_loc_restore(dinfo->opts); + warn_report("bogus if=3D%s is deprecated, use if=3Dnone", + if_name[dinfo->type]); + loc_pop(&loc); } } =20 diff --git a/softmmu/vl.c b/softmmu/vl.c index ae5451bc23..d8a98c707c 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -4346,6 +4346,14 @@ void qemu_init(int argc, char **argv, char **envp) /* from here on runstate is RUN_STATE_PRELAUNCH */ machine_run_board_init(current_machine); =20 + /* + * TODO To drop support for deprecated bogus if=3D..., move + * drive_check_orphaned() here, replacing this call. Also drop + * its deprecation warning, along with DriveInfo member + * @claimed_by_board. + */ + drive_mark_claimed_by_board(); + realtime_init(); =20 soundhw_init(); --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369446; cv=none; d=zohomail.com; s=zohoarc; b=NlvBocPvCMMyl09x8aAdubE5GfAnWYdAfN0IqpilSLi/JHHajExFfGrs18wlBKsD7BnnThRAZiWYd6/3cWihw6FuYgPThX0vWIaf8q4v/D11rVBfpdSiMbDu+25/oRBK3tywK3teQT/WBrYV0xR4byEiMN9MXb9/fKSZ1Vyunlk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369446; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=i3101kz0zM1l86BuC6//QQfAgyjfRGIetEZd5akUA/4=; b=hLjQjraIl+PGgltH2D9KZIQndCCtH/0O2MpYxJQYtxUVuH45GatzbGZnEwRch0s3KIoS7qYgm0t9mBVcYhtnaFPJMQSWstUI63U2EkX5BTZyILLJSy6yiswyQ+o0yEkYalp3ch6lfFVTdu0iqhEzZ0UZpNzC52JKeDq42Fks9FQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369446920726.6295130423848; Fri, 5 Jun 2020 08:04:06 -0700 (PDT) Received: from localhost ([::1]:56876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDt7-0006DP-Ar for importer@patchew.org; Fri, 05 Jun 2020 11:04:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50902) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlu-0003xZ-2F for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:60631 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007Tb-3Y for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:37 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-385-tqcwHBK9P-e0m01rp6uXCg-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 388A619200C4; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D09F260C05; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B933F1138460; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=i3101kz0zM1l86BuC6//QQfAgyjfRGIetEZd5akUA/4=; b=JOiD4rf5681Ft08QQgv5DDZB75dlb87Sgbh4WBDqCGmIpksWF9BLI4Cc/DBIKh2LjwuT2h AUZCkrsVE34WYcVpZK3pwj6xuMYwkWo5Vks2QtVJ4nx9I+cWKcQYa++Ihdp6ngY3QCRKAZ Hll6aw6ODS2AdPM3jXYRxeG2SDg474g= X-MC-Unique: tqcwHBK9P-e0m01rp6uXCg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 09/16] qdev: Eliminate get_pointer(), set_pointer() Date: Fri, 5 Jun 2020 16:56:18 +0200 Message-Id: <20200605145625.2920920-10-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We stopped using get_pointer() and set_pointer() for netdev in commit 23120b13c6 "net: don't use set/get_pointer() in set/get_netdev()" (v2.3.0), and for chardev in commit becdfa00cf "char: replace PROP_CHR with CharBackend" (v2.8.0). With only the drive user left, they're not helpful anymore. Eliminate. Signed-off-by: Markus Armbruster --- hw/core/qdev-properties-system.c | 95 ++++++++++++-------------------- 1 file changed, 35 insertions(+), 60 deletions(-) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 70bfd4809b..9aa80495ee 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -25,29 +25,45 @@ #include "sysemu/iothread.h" #include "sysemu/tpm_backend.h" =20 -static void get_pointer(Object *obj, Visitor *v, Property *prop, - char *(*print)(void *ptr), - const char *name, Error **errp) +/* --- drive --- */ + +static void get_drive(Object *obj, Visitor *v, const char *name, void *opa= que, + Error **errp) { DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; void **ptr =3D qdev_get_prop_ptr(dev, prop); + const char *value; char *p; =20 - p =3D *ptr ? print(*ptr) : g_strdup(""); + if (*ptr) { + value =3D blk_name(*ptr); + if (!*value) { + BlockDriverState *bs =3D blk_bs(*ptr); + if (bs) { + value =3D bdrv_get_node_name(bs); + } + } + } else { + value =3D ""; + } + + p =3D g_strdup(value); visit_type_str(v, name, &p, errp); g_free(p); } =20 -static void set_pointer(Object *obj, Visitor *v, Property *prop, - void (*parse)(DeviceState *dev, const char *str, - void **ptr, const char *propname, - Error **errp), - const char *name, Error **errp) +static void set_drive_helper(Object *obj, Visitor *v, const char *name, + void *opaque, bool iothread, Error **errp) { DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; Error *local_err =3D NULL; void **ptr =3D qdev_get_prop_ptr(dev, prop); char *str; + BlockBackend *blk; + bool blk_created =3D false; + int ret; =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -59,23 +75,12 @@ static void set_pointer(Object *obj, Visitor *v, Proper= ty *prop, error_propagate(errp, local_err); return; } + if (!*str) { g_free(str); *ptr =3D NULL; return; } - parse(dev, str, ptr, prop->name, errp); - g_free(str); -} - -/* --- drive --- */ - -static void do_parse_drive(DeviceState *dev, const char *str, void **ptr, - const char *propname, bool iothread, Error **er= rp) -{ - BlockBackend *blk; - bool blk_created =3D false; - int ret; =20 blk =3D blk_by_name(str); if (!blk) { @@ -101,7 +106,7 @@ static void do_parse_drive(DeviceState *dev, const char= *str, void **ptr, } if (!blk) { error_setg(errp, "Property '%s.%s' can't find value '%s'", - object_get_typename(OBJECT(dev)), propname, str); + object_get_typename(OBJECT(dev)), prop->name, str); goto fail; } if (blk_attach_dev(blk, dev) < 0) { @@ -126,18 +131,20 @@ fail: /* If we need to keep a reference, blk_attach_dev() took it */ blk_unref(blk); } + + g_free(str); } =20 -static void parse_drive(DeviceState *dev, const char *str, void **ptr, - const char *propname, Error **errp) +static void set_drive(Object *obj, Visitor *v, const char *name, void *opa= que, + Error **errp) { - do_parse_drive(dev, str, ptr, propname, false, errp); + set_drive_helper(obj, v, name, opaque, false, errp); } =20 -static void parse_drive_iothread(DeviceState *dev, const char *str, void *= *ptr, - const char *propname, Error **errp) +static void set_drive_iothread(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { - do_parse_drive(dev, str, ptr, propname, true, errp); + set_drive_helper(obj, v, name, opaque, true, errp); } =20 static void release_drive(Object *obj, const char *name, void *opaque) @@ -156,38 +163,6 @@ static void release_drive(Object *obj, const char *nam= e, void *opaque) } } =20 -static char *print_drive(void *ptr) -{ - const char *name; - - name =3D blk_name(ptr); - if (!*name) { - BlockDriverState *bs =3D blk_bs(ptr); - if (bs) { - name =3D bdrv_get_node_name(bs); - } - } - return g_strdup(name); -} - -static void get_drive(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) -{ - get_pointer(obj, v, opaque, print_drive, name, errp); -} - -static void set_drive(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) -{ - set_pointer(obj, v, opaque, parse_drive, name, errp); -} - -static void set_drive_iothread(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - set_pointer(obj, v, opaque, parse_drive_iothread, name, errp); -} - const PropertyInfo qdev_prop_drive =3D { .name =3D "str", .description =3D "Node name or ID of a block device to use as a backen= d", --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369643; cv=none; d=zohomail.com; s=zohoarc; b=WY4AMibMRvFJeoHIduS9Fkzf5/WsxVM3Gp2Qupz7LOSUQ+7SP/5321l9VWWUh0GaMgdXu+a3CLHlZ7n7sZ6bIlxuLaKN26ZoZK7hNvO+NfBi9OYnFSBP+X5o7Lbd1HQCRhCcbgH2s4qSu8gSe2XfXXEsQnJSl9Li7oRJJ6j071s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369643; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wBDV8kCAH2Cg6X+4+4UIcOzTx7aTxCARjiIJBHVEauY=; b=PIcwWPQOFoPE2aCV1Pf+b+ziLcSFxS7c94W9ecnwf5DCbPeSmc1/XgAF7vZo3BrUvKH0EA3ONCDiwHMyuy2Skc0ozBvJ0uh0KWcuVveWLYy4xR6Rzzef0lhDwTXHxXUxkgqhx9EZYMwQLaaUfdL0xHfQVs88e4vpuADkRjOgdng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369643244100.60671232080392; Fri, 5 Jun 2020 08:07:23 -0700 (PDT) Received: from localhost ([::1]:39990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDwH-0002uo-Tx for importer@patchew.org; Fri, 05 Jun 2020 11:07:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50912) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlu-0003zM-ST for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:46521 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlo-0007TP-Iz for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-188-0TfuautKNxWqs6Hh1WRW7Q-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 39159EC1AD; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D39125C583; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id BCA291138461; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wBDV8kCAH2Cg6X+4+4UIcOzTx7aTxCARjiIJBHVEauY=; b=aRUYgLZtNX7PZ+S9XJpq5Cv9/3tcfoyqum2EXTeTVfhwJIrGwtukcfhUC/qRN8/D0TEwpx TCk6ryZkZsn7xNB1GCOeyMfpm0LM9H30p7BwcAOW6VbmLV/wHz2NvDeaP3EusTt1DRgwNt J5ldBCqJ3GKvteyfoItGmz22rYIJ5JY= X-MC-Unique: 0TfuautKNxWqs6Hh1WRW7Q-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 10/16] qdev: Improve netdev property override error a bit Date: Fri, 5 Jun 2020 16:56:19 +0200 Message-Id: <20200605145625.2920920-11-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:35:49 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, Jason Wang , mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" qdev_prop_set_netdev() fails when the property already has a non-null value. Seems to go back to commit 30c367ed44 "qdev-properties-system.c: Allow vlan or netdev for -device, not both", v1.7.0. Board code doesn't expect failure, and crashes: $ qemu-system-x86_64 --nodefaults -nic user -netdev user,id=3Dnic0 -glo= bal e1000.netdev=3Dnic0 Unexpected error in error_set_from_qdev_prop_error() at /work/armbru/qe= mu/hw/core/qdev-properties.c:1101: qemu-system-x86_64: Property 'e1000.netdev' doesn't take value '__org.q= emu.nic0 ' Aborted (core dumped) -device and device_add handle the failure: $ qemu-system-x86_64 -nodefaults -netdev user,id=3Dnet0 -netdev user,id= =3Dnet1 -device e1000,netdev=3Dnet0,netdev=3Dnet1 qemu-system-x86_64: -device e1000,netdev=3Dnet0,netdev=3Dnet1: Property= 'e1000.netdev' doesn't take value 'net1' $ qemu-system-x86_64 -nodefaults -S -display none -monitor stdio -netde= v user,id=3Dnet0 -netdev user,id=3Dnet1 -global e1000.netdev=3Dnet0 QEMU 5.0.50 monitor - type 'help' for more information (qemu) qemu-system-x86_64: warning: netdev net0 has no peer qemu-system-x86_64: warning: netdev net1 has no peer device_add e1000,netdev=3Dnet1 Error: Property 'e1000.netdev' doesn't take value 'net1' Perhaps netdev property override could be made to work. Perhaps it should. I'm not the right guy to figure this out. What I can do is improve the error message a bit: (qemu) device_add e1000,netdev=3Dnet1 Error: -global e1000.netdev=3D... conflicts with netdev=3Dnet1 Cc: Jason Wang Signed-off-by: Markus Armbruster --- include/hw/qdev-properties.h | 2 ++ hw/core/qdev-properties-system.c | 30 +++++++++++++++++++++++++++--- hw/core/qdev-properties.c | 17 +++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index f161604fb6..566419f379 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -248,6 +248,8 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char= *name, void qdev_prop_set_enum(DeviceState *dev, const char *name, int value); =20 void qdev_prop_register_global(GlobalProperty *prop); +const GlobalProperty *qdev_find_global_prop(DeviceState *dev, + const char *name); int qdev_prop_check_globals(void); void qdev_prop_set_globals(DeviceState *dev); void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *de= v, diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 9aa80495ee..20fd58e8f9 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -25,6 +25,28 @@ #include "sysemu/iothread.h" #include "sysemu/tpm_backend.h" =20 +static bool check_non_null(DeviceState *dev, const char *name, + const void *old_val, const char *new_val, + Error **errp) +{ + const GlobalProperty *prop =3D qdev_find_global_prop(dev, name); + + if (!old_val) { + return true; + } + + if (prop) { + error_setg(errp, "-global %s.%s=3D... conflicts with %s=3D%s", + prop->driver, prop->property, name, new_val); + } else { + /* Error message is vague, but a better one would be hard */ + error_setg(errp, "%s=3D%s conflicts, and override is not implement= ed", + name, new_val); + } + return false; +} + + /* --- drive --- */ =20 static void get_drive(Object *obj, Visitor *v, const char *name, void *opa= que, @@ -299,14 +321,16 @@ static void set_netdev(Object *obj, Visitor *v, const= char *name, } =20 for (i =3D 0; i < queues; i++) { - if (peers[i]->peer) { err =3D -EEXIST; goto out; } =20 - if (ncs[i]) { - err =3D -EINVAL; + /* + * TODO Should this really be an error? If no, the old value + * needs to be released before we store the new one. + */ + if (!check_non_null(dev, name, ncs[i], str, errp)) { goto out; } =20 diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index cc924815da..8c8beb56b2 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1181,6 +1181,23 @@ void qdev_prop_register_global(GlobalProperty *prop) g_ptr_array_add(global_props(), prop); } =20 +const GlobalProperty *qdev_find_global_prop(DeviceState *dev, + const char *name) +{ + GPtrArray *props =3D global_props(); + const GlobalProperty *p; + int i; + + for (i =3D 0; i < props->len; i++) { + p =3D g_ptr_array_index(props, i); + if (object_dynamic_cast(OBJECT(dev), p->driver) + && !strcmp(p->property, name)) { + return p; + } + } + return NULL; +} + int qdev_prop_check_globals(void) { int i, ret =3D 0; --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369195; cv=none; d=zohomail.com; s=zohoarc; b=h3iihnEgXLMOSqIrJ+p+/aygzWsaFpjHRw43QpfNDmlEXiAH478mzodNI/mHZcaJGffKP7lrbUAoYnoY2RlmGXlFqBA7chqBRctBjK64ewajx5ZFxOfWQ+aOU6smXllLUQsXWDf9ppn3TqZKFPBO+oKYrSR/2KATuYoyhNFRX/U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369195; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aXxXynvzvVfyqM2Hn2hJMJqKPZVhrvKHiTHqNy7n2BI=; b=PJ3Ww8pCG+1NsnqOitWIOa0KfgshBYTl7xDz2mKwqZ2uVCsHld/ztvYPyGJ6Hl4/3TUSfjaamY2bz/HUlzs0zjVhDEA+1/htU++VITmk70UbAwwy3ioCi0esCSnKfcgAXepAw6QJtXpwJVh27eeIw8R4FEmxc1DKxhGSGb+EEIw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369194842357.9597083941254; Fri, 5 Jun 2020 07:59:54 -0700 (PDT) Received: from localhost ([::1]:45918 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDp3-0001AP-M5 for importer@patchew.org; Fri, 05 Jun 2020 10:59:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50850) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlq-0003mr-0W for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:34 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:39487 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlo-0007TM-PS for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:33 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-238-cvOdX67kODi7flgWeMLRng-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 51F1C835B43; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id ED20F9CA0; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id C0E981138462; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aXxXynvzvVfyqM2Hn2hJMJqKPZVhrvKHiTHqNy7n2BI=; b=gFpOVaG1uviCvhfnRYsHjyWC8NFlVUspi6tAlveOtJtR4voEa6mpzmWUMSa/XXYJyR0ozu 8KvzxZ3d6jZhTi2TP0HldOHS/Rn8Z78WfqIk7dyg10gp8lT6kAMYIh7VTuIvC6hkMMf/K9 uTAU4dk8WskuUSOeFYTna1Tyer2R61M= X-MC-Unique: cvOdX67kODi7flgWeMLRng-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 11/16] qdev: Reject drive property override Date: Fri, 5 Jun 2020 16:56:20 +0200 Message-Id: <20200605145625.2920920-12-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:35:49 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" qdev_prop_set_drive() screws up when the property already has a non-null value: it neglects to release the old value. Both the old and the new backend become attached to the same device. Example (taken from iotest 172): -fda ... -drive if=3Dnone,... -global floppy.drive=3Dnone0. Special case: attempting to use the same backend both times fails. Example (also from iotest 172): -fda ... -global floppy.drive=3Dfloppy0. Yet another example: -device with multiple drive=3D... (but not device_add, which silently drops all but the last duplicate property). Perhaps drive property override could be made to work. Perhaps it should. I can't afford the time to figure this out now. What I can do is reject usage that leaves backends in unhealthy states. For what it's worth, we've long done the same for netdev properties. Signed-off-by: Markus Armbruster --- hw/core/qdev-properties-system.c | 8 +++ tests/qemu-iotests/172.out | 88 ++------------------------------ 2 files changed, 11 insertions(+), 85 deletions(-) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 20fd58e8f9..b22255000c 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -98,6 +98,14 @@ static void set_drive_helper(Object *obj, Visitor *v, co= nst char *name, return; } =20 + /* + * TODO Should this really be an error? If no, the old value + * needs to be released before we store the new one. + */ + if (!check_non_null(dev, name, *ptr, str, errp)) { + return; + } + if (!*str) { g_free(str); *ptr =3D NULL; diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out index 253f35111d..dc155c3b7e 100644 --- a/tests/qemu-iotests/172.out +++ b/tests/qemu-iotests/172.out @@ -795,48 +795,7 @@ Use -device floppy,unit=3D1,drive=3D... instead. QEMU_PROG: Floppy unit 1 is in use =20 Testing: -fda TEST_DIR/t.qcow2 -drive if=3Dnone,file=3DTEST_DIR/t.qcow2.2 = -global floppy.drive=3Dnone0 - - dev: isa-fdc, id "" - iobase =3D 1008 (0x3f0) - irq =3D 6 (0x6) - dma =3D 2 (0x2) - driveA =3D "" - driveB =3D "" - check_media_rate =3D true - fdtypeA =3D "auto" - fdtypeB =3D "auto" - fallback =3D "288" - isa irq 6 - bus: floppy-bus.0 - type floppy-bus - dev: floppy, id "" - unit =3D 0 (0x0) - drive =3D "floppy0" - logical_block_size =3D 512 (0x200) - physical_block_size =3D 512 (0x200) - min_io_size =3D 0 (0x0) - opt_io_size =3D 0 (0x0) - discard_granularity =3D 4294967295 (0xffffffff) - write-cache =3D "auto" - share-rw =3D false - drive-type =3D "144" -floppy0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) - Attached to: /machine/unattached/device[15] - Removable device: not locked, tray closed - Cache mode: writeback - -none0 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) - Attached to: /machine/unattached/device[15] - Cache mode: writeback - -ide1-cd0: [not inserted] - Attached to: /machine/unattached/device[22] - Removable device: not locked, tray closed - -sd0: [not inserted] - Removable device: not locked, tray closed -(qemu) quit - +QEMU_PROG: -global floppy.drive=3D... conflicts with drive=3Dfloppy0 =20 =20 =3D=3D=3D Mixing -fdX and -device =3D=3D=3D @@ -1475,48 +1434,7 @@ Use -device floppy,unit=3D1,drive=3D... instead. QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D1: Floppy unit 1 is in use =20 Testing: -drive if=3Dnone,file=3DTEST_DIR/t.qcow2 -drive if=3Dnone,file=3D= TEST_DIR/t.qcow2.2 -global floppy.drive=3Dnone0 -device floppy,drive=3Dnone= 1,unit=3D0 - - dev: isa-fdc, id "" - iobase =3D 1008 (0x3f0) - irq =3D 6 (0x6) - dma =3D 2 (0x2) - driveA =3D "" - driveB =3D "" - check_media_rate =3D true - fdtypeA =3D "auto" - fdtypeB =3D "auto" - fallback =3D "288" - isa irq 6 - bus: floppy-bus.0 - type floppy-bus - dev: floppy, id "" - unit =3D 0 (0x0) - drive =3D "none1" - logical_block_size =3D 512 (0x200) - physical_block_size =3D 512 (0x200) - min_io_size =3D 0 (0x0) - opt_io_size =3D 0 (0x0) - discard_granularity =3D 4294967295 (0xffffffff) - write-cache =3D "auto" - share-rw =3D false - drive-type =3D "144" -none0 (NODE_NAME): TEST_DIR/t.qcow2 (qcow2) - Attached to: /machine/peripheral-anon/device[0] - Cache mode: writeback - -none1 (NODE_NAME): TEST_DIR/t.qcow2.2 (qcow2) - Attached to: /machine/peripheral-anon/device[0] - Removable device: not locked, tray closed - Cache mode: writeback - -ide1-cd0: [not inserted] - Attached to: /machine/unattached/device[21] - Removable device: not locked, tray closed - -sd0: [not inserted] - Removable device: not locked, tray closed -(qemu) quit - +QEMU_PROG: -device floppy,drive=3Dnone1,unit=3D0: -global floppy.drive=3D.= .. conflicts with drive=3Dnone1 =20 =20 =3D=3D=3D Attempt to use drive twice =3D=3D=3D @@ -1531,7 +1449,7 @@ Testing: -fda -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Drive 'floppy0' is already in u= se because it has been automatically connected to another device (did you n= eed 'if=3Dnone' in the drive options?) =20 Testing: -fda -global floppy.drive=3Dfloppy0 -QEMU_PROG: Drive 'floppy0' is already in use because it has been automatic= ally connected to another device (did you need 'if=3Dnone' in the drive opt= ions?) +QEMU_PROG: -global floppy.drive=3D... conflicts with drive=3Dfloppy0 =20 Testing: -device floppy,drive=3Dfloppy0 QEMU_PROG: -device floppy,drive=3Dfloppy0: Property 'floppy.drive' can't f= ind value 'floppy0' --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369491; cv=none; d=zohomail.com; s=zohoarc; b=KK+pVGZBDE3fJU3jvu1h0xX8xQ77XVtY1O1iTxZzHfmFvmt29ciFWjAk1vWgc0hbfM3yorqBBJewPAAe5EuHrfASrw0INRbCKf9F7nYVJfxdDiJN9HBSHCgsou7keyhSOwl/SNMTDAGOAB1HPRnkl00SjgoCoppL3PsbRiQdgv0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369491; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cwucalj6hK2lz24dh0Q3MNFVkxaEqCo7beSnjy5uqM8=; b=dzZMJRAmjS5q7sGJQVn/vHaE5Rn6gJEJk5K0Q0r3cf7QNgssP7VyIh9DBYT0ShkvQTcFVBJmU8Sde5d+/IiUgQgbomCiTXB7hdWO9kuixfgDNRMwsGVR0k6G9WcZELNOvWZwTPgrHMcOpYYRWULeOWZyj+PM3eLNmj7+xxZCBE8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369491592105.80353639132886; Fri, 5 Jun 2020 08:04:51 -0700 (PDT) Received: from localhost ([::1]:58998 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDtq-0007QQ-BO for importer@patchew.org; Fri, 05 Jun 2020 11:04:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50926) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlw-00044C-Kf for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:40 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:35230 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDls-0007VV-4V for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:40 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-277-mfcp4aGCN7u_1PWq54HCzg-1; Fri, 05 Jun 2020 10:56:33 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4C1FAEC1A6; Fri, 5 Jun 2020 14:56:32 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F25A410013C0; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id CA0FB1138463; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cwucalj6hK2lz24dh0Q3MNFVkxaEqCo7beSnjy5uqM8=; b=UVT/A9msmtkdLbxFt6UxMmpOl/d21T7rSLfgYYZXqs/OQFP+lN7o+7R7f5dlR42vuTAwnL l3vRQHRi+topHRHuxVkZJVWHKhEx8oZ6mwB4EdHqZsDQA6NNL34G1DnmZWx9IcIABlXyrk bD2BkaTIc/0rBzc1K+CZmqgKPALwtAU= X-MC-Unique: mfcp4aGCN7u_1PWq54HCzg-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 12/16] qdev: Reject chardev property override Date: Fri, 5 Jun 2020 16:56:21 +0200 Message-Id: <20200605145625.2920920-13-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) qdev_prop_set_chr() screws up when the property already has a non-null value: it neglects to release the old value. Both the old and the new backend become attached to the same device. Unlike for block devices (see previous commit), this can't be observed from the monitor (I think). Example: -serial null -chardev null,id=3Dchr0 -global isa-serial.chardev=3D= chr0 Special case: attempting to use the same backend both times crashes: $ qemu-system-x86_64 --nodefaults -serial null -global isa-serial.chard= ev=3Dserial0 Unexpected error in qemu_chr_fe_init() at /work/armbru/qemu/chardev/cha= r-fe.c:220: qemu-system-x86_64: Device 'serial0' is in use Aborted (core dumped) Yet another example: -device with multiple chardev=3D... (but not device_add, which silently drops all but the last duplicate property). Perhaps chardev property override could be made to work. Perhaps it should. I can't afford the time to figure this out now. What I can do reject usage that leaves backends in unhealthy states. For what it's worth, we've long done the same for netdev properties. Cc: Marc-Andr=C3=A9 Lureau Cc: Paolo Bonzini Signed-off-by: Markus Armbruster --- hw/core/qdev-properties-system.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index b22255000c..695ebfe8b9 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -244,6 +244,14 @@ static void set_chr(Object *obj, Visitor *v, const cha= r *name, void *opaque, return; } =20 + /* + * TODO Should this really be an error? If no, the old value + * needs to be released before we store the new one. + */ + if (!check_non_null(dev, name, be->chr, str, errp)) { + return; + } + if (!*str) { g_free(str); be->chr =3D NULL; --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369171; cv=none; d=zohomail.com; s=zohoarc; b=YPF3/7kkOyS6b8oDJDpx0AP00jDwHMoTXngSaOkxCa2zps07NdHRhrgMjPnx1ck7IAoxk9LF7dMYbpCOUWaNroEW8b+z6e1RNskAjODPtAC+OL0vsatXlGoTDeeYrjz6PiEtxfqZ2T2lxjhhe57Ep0zaeKfkmei3kp5IVTB+3ks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369171; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XnVBIoQizwTkAs6WJnmgkcdxeXIxX54gLbsXkwplLeg=; b=dc/SHMobsXfIHrBG+EHH8+3CCY9ej7HiRzRUIdGo/FmXr5uALhkwCqsQdmSg06ht9vNNFlyLiMPy4bjfH29P3DA/xSE/7MtC91i3nxqD0GODBY4Uxhv8CCaeglHMft8GBfusei3PQIsfsRrCayIFMZ8r+r+LTn48iw6x83sKFmA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369171378653.280289696317; Fri, 5 Jun 2020 07:59:31 -0700 (PDT) Received: from localhost ([::1]:43214 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDof-0008S0-Ub for importer@patchew.org; Fri, 05 Jun 2020 10:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDls-0003uz-Uk for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:36 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:55831 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007Tx-Dp for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:36 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-151-sCfaJTa6MqqgOfLcmy_gNA-1; Fri, 05 Jun 2020 10:56:30 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 81252107ACF5; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F387F60C1C; Fri, 5 Jun 2020 14:56:28 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D0D0C1138464; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XnVBIoQizwTkAs6WJnmgkcdxeXIxX54gLbsXkwplLeg=; b=ZvcHFkv054oHk2dXEQlfLK/MoiQ4yOE1TCDPvdq9KL3LkGTX6Xp6deajvpZcgQibTyEMiG RvZ3b4/eECYeieICqtD6Ckjzb1UWctjNs6CxgUPVNnQA3tfOg21mTfsUmhSjyEyf3dEX3b E8B4LEGZZbdGClp0tHJnVLEuVuK2iz0= X-MC-Unique: sCfaJTa6MqqgOfLcmy_gNA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 13/16] qdev: Make qdev_prop_set_drive() match the other helpers Date: Fri, 5 Jun 2020 16:56:22 +0200 Message-Id: <20200605145625.2920920-14-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=207.211.31.81; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:40:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" qdev_prop_set_drive() can fail. None of the other qdev_prop_set_FOO() can; they abort on error. To clean up this inconsistency, rename qdev_prop_set_drive() to qdev_prop_set_drive_err(), and create a qdev_prop_set_drive() that aborts on error. Coccinelle script to update callers: @ depends on !(file in "hw/core/qdev-properties-system.c")@ expression dev, name, value; symbol error_abort; @@ - qdev_prop_set_drive(dev, name, value, &error_abort); + qdev_prop_set_drive(dev, name, value); @@ expression dev, name, value, errp; @@ - qdev_prop_set_drive(dev, name, value, errp); + qdev_prop_set_drive_err(dev, name, value, errp); Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/qdev-properties.h | 16 +++++++++++++--- hw/arm/aspeed.c | 8 ++++---- hw/arm/cubieboard.c | 2 +- hw/arm/exynos4210.c | 2 +- hw/arm/imx25_pdk.c | 2 +- hw/arm/mcimx6ul-evk.c | 2 +- hw/arm/mcimx7d-sabre.c | 2 +- hw/arm/msf2-som.c | 4 ++-- hw/arm/nseries.c | 4 ++-- hw/arm/orangepi.c | 2 +- hw/arm/raspi.c | 2 +- hw/arm/sabrelite.c | 6 +++--- hw/arm/vexpress.c | 3 +-- hw/arm/xilinx_zynq.c | 7 ++++--- hw/arm/xlnx-versal-virt.c | 2 +- hw/arm/xlnx-zcu102.c | 10 +++++----- hw/block/fdc.c | 6 +++--- hw/block/nand.c | 2 +- hw/block/pflash_cfi01.c | 6 +++--- hw/block/pflash_cfi02.c | 2 +- hw/core/qdev-properties-system.c | 10 ++++++++-- hw/ide/qdev.c | 4 ++-- hw/m68k/q800.c | 3 +-- hw/microblaze/petalogix_ml605_mmu.c | 5 +++-- hw/ppc/pnv.c | 3 +-- hw/ppc/spapr.c | 4 ++-- hw/scsi/scsi-bus.c | 2 +- hw/sd/milkymist-memcard.c | 2 +- hw/sd/pxa2xx_mmci.c | 2 +- hw/sd/sd.c | 2 +- hw/sd/ssi-sd.c | 3 ++- hw/xtensa/xtfpga.c | 3 +-- 32 files changed, 74 insertions(+), 59 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 566419f379..73fd918b03 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -230,8 +230,16 @@ extern const PropertyInfo qdev_prop_pcie_link_width; #define DEFINE_PROP_END_OF_LIST() \ {} =20 -/* Set properties between creation and init. */ -void *qdev_get_prop_ptr(DeviceState *dev, Property *prop); +/* + * Set properties between creation and realization. + */ +void qdev_prop_set_drive_err(DeviceState *dev, const char *name, + BlockBackend *value, Error **errp); + +/* + * Set properties between creation and realization. + * @value must be valid. Each property may be set at most once. + */ void qdev_prop_set_bit(DeviceState *dev, const char *name, bool value); void qdev_prop_set_uint8(DeviceState *dev, const char *name, uint8_t value= ); void qdev_prop_set_uint16(DeviceState *dev, const char *name, uint16_t val= ue); @@ -242,11 +250,13 @@ void qdev_prop_set_string(DeviceState *dev, const cha= r *name, const char *value) void qdev_prop_set_chr(DeviceState *dev, const char *name, Chardev *value); void qdev_prop_set_netdev(DeviceState *dev, const char *name, NetClientSta= te *value); void qdev_prop_set_drive(DeviceState *dev, const char *name, - BlockBackend *value, Error **errp); + BlockBackend *value); void qdev_prop_set_macaddr(DeviceState *dev, const char *name, const uint8_t *value); void qdev_prop_set_enum(DeviceState *dev, const char *name, int value); =20 +void *qdev_get_prop_ptr(DeviceState *dev, Property *prop); + void qdev_prop_register_global(GlobalProperty *prop); const GlobalProperty *qdev_find_global_prop(DeviceState *dev, const char *name); diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index ee346b27c8..5ffaf86b86 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -227,8 +227,8 @@ static void aspeed_board_init_flashes(AspeedSMCState *s= , const char *flashtype, =20 fl->flash =3D qdev_new(flashtype); if (dinfo) { - qdev_prop_set_drive(fl->flash, "drive", blk_by_legacy_dinfo(di= nfo), - errp); + qdev_prop_set_drive_err(fl->flash, "drive", + blk_by_legacy_dinfo(dinfo), errp); } qdev_realize_and_unref(fl->flash, BUS(s->spi), &error_fatal); =20 @@ -243,8 +243,8 @@ static void sdhci_attach_drive(SDHCIState *sdhci, Drive= Info *dinfo) =20 card =3D qdev_new(TYPE_SD_CARD); if (dinfo) { - qdev_prop_set_drive(card, "drive", blk_by_legacy_dinfo(dinfo), - &error_fatal); + qdev_prop_set_drive_err(card, "drive", blk_by_legacy_dinfo(din= fo), + &error_fatal); } qdev_realize_and_unref(card, qdev_get_child_bus(DEVICE(sdhci), "sd-bus"), diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c index a96c860575..5cbd115c53 100644 --- a/hw/arm/cubieboard.c +++ b/hw/arm/cubieboard.c @@ -93,7 +93,7 @@ static void cubieboard_init(MachineState *machine) =20 /* Plug in SD card */ carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); =20 memory_region_add_subregion(get_system_memory(), AW_A10_SDRAM_BASE, diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index b888a5c9ab..fa639806ec 100644 --- a/hw/arm/exynos4210.c +++ b/hw/arm/exynos4210.c @@ -434,7 +434,7 @@ static void exynos4210_realize(DeviceState *socdev, Err= or **errp) di =3D drive_get(IF_SD, 0, n); blk =3D di ? blk_by_legacy_dinfo(di) : NULL; carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_abort); + qdev_prop_set_drive(carddev, "drive", blk); qdev_realize_and_unref(carddev, qdev_get_child_bus(dev, "sd-bus"), &error_fatal); } diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c index af8f7f969c..1c201d0d8e 100644 --- a/hw/arm/imx25_pdk.c +++ b/hw/arm/imx25_pdk.c @@ -130,7 +130,7 @@ static void imx25_pdk_init(MachineState *machine) blk =3D di ? blk_by_legacy_dinfo(di) : NULL; bus =3D qdev_get_child_bus(DEVICE(&s->soc.esdhc[i]), "sd-bus"); carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); } =20 diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c index 3d1d2e3c04..2f845cedfc 100644 --- a/hw/arm/mcimx6ul-evk.c +++ b/hw/arm/mcimx6ul-evk.c @@ -55,7 +55,7 @@ static void mcimx6ul_evk_init(MachineState *machine) blk =3D di ? blk_by_legacy_dinfo(di) : NULL; bus =3D qdev_get_child_bus(DEVICE(&s->usdhc[i]), "sd-bus"); carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); } =20 diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c index 365f8183bc..e57d52b344 100644 --- a/hw/arm/mcimx7d-sabre.c +++ b/hw/arm/mcimx7d-sabre.c @@ -57,7 +57,7 @@ static void mcimx7d_sabre_init(MachineState *machine) blk =3D di ? blk_by_legacy_dinfo(di) : NULL; bus =3D qdev_get_child_bus(DEVICE(&s->usdhc[i]), "sd-bus"); carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); } =20 diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c index 355966c073..f9b61c36dd 100644 --- a/hw/arm/msf2-som.c +++ b/hw/arm/msf2-som.c @@ -86,8 +86,8 @@ static void emcraft_sf2_s2s010_init(MachineState *machine) spi_flash =3D qdev_new("s25sl12801"); qdev_prop_set_uint8(spi_flash, "spansion-cr2nv", 1); if (dinfo) { - qdev_prop_set_drive(spi_flash, "drive", blk_by_legacy_dinfo(dinfo), - &error_fatal); + qdev_prop_set_drive_err(spi_flash, "drive", + blk_by_legacy_dinfo(dinfo), &error_fatal); } qdev_realize_and_unref(spi_flash, spi_bus, &error_fatal); cs_line =3D qdev_get_gpio_in_named(spi_flash, SSI_GPIO_CS, 0); diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c index 02678dda2d..428a2a2c5a 100644 --- a/hw/arm/nseries.c +++ b/hw/arm/nseries.c @@ -182,8 +182,8 @@ static void n8x0_nand_setup(struct n800_s *s) qdev_prop_set_int32(s->nand, "shift", 1); dinfo =3D drive_get(IF_MTD, 0, 0); if (dinfo) { - qdev_prop_set_drive(s->nand, "drive", blk_by_legacy_dinfo(dinfo), - &error_fatal); + qdev_prop_set_drive_err(s->nand, "drive", blk_by_legacy_dinfo(dinf= o), + &error_fatal); } sysbus_realize_and_unref(SYS_BUS_DEVICE(s->nand), &error_fatal); sysbus_connect_irq(SYS_BUS_DEVICE(s->nand), 0, diff --git a/hw/arm/orangepi.c b/hw/arm/orangepi.c index 678c93033e..843dcbbd62 100644 --- a/hw/arm/orangepi.c +++ b/hw/arm/orangepi.c @@ -95,7 +95,7 @@ static void orangepi_init(MachineState *machine) =20 /* Plug in SD card */ carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); =20 /* SDRAM */ diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 380978fc27..09bf02ec9c 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -298,7 +298,7 @@ static void raspi_machine_init(MachineState *machine) exit(1); } carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); =20 vcram_size =3D object_property_get_uint(OBJECT(&s->soc), "vcram-size", diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c index a27e5baf60..91d8c43a7e 100644 --- a/hw/arm/sabrelite.c +++ b/hw/arm/sabrelite.c @@ -77,9 +77,9 @@ static void sabrelite_init(MachineState *machine) =20 flash_dev =3D qdev_new("sst25vf016b"); if (dinfo) { - qdev_prop_set_drive(flash_dev, "drive", - blk_by_legacy_dinfo(dinfo), - &error_fatal); + qdev_prop_set_drive_err(flash_dev, "drive", + blk_by_legacy_dinfo(dinfo), + &error_fatal); } qdev_realize_and_unref(flash_dev, BUS(spi_bus), &error_fat= al); =20 diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index 7ca5d523a4..725d024c91 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -517,8 +517,7 @@ static PFlashCFI01 *ve_pflash_cfi01_register(hwaddr bas= e, const char *name, DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI01); =20 if (di) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di), - &error_abort); + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(di)); } =20 qdev_prop_set_uint32(dev, "num-blocks", diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 4247c4dbd8..ed970273f3 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -159,8 +159,9 @@ static inline void zynq_init_spi_flashes(uint32_t base_= addr, qemu_irq irq, DriveInfo *dinfo =3D drive_get_next(IF_MTD); flash_dev =3D qdev_new("n25q128"); if (dinfo) { - qdev_prop_set_drive(flash_dev, "drive", - blk_by_legacy_dinfo(dinfo), &error_fat= al); + qdev_prop_set_drive_err(flash_dev, "drive", + blk_by_legacy_dinfo(dinfo), + &error_fatal); } qdev_realize_and_unref(flash_dev, BUS(spi), &error_fatal); =20 @@ -290,7 +291,7 @@ static void zynq_init(MachineState *machine) di =3D drive_get_next(IF_SD); blk =3D di ? blk_by_legacy_dinfo(di) : NULL; carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, qdev_get_child_bus(dev, "sd-bus"), &error_fatal); } diff --git a/hw/arm/xlnx-versal-virt.c b/hw/arm/xlnx-versal-virt.c index 5bcca7f95b..a3b1ce9c7c 100644 --- a/hw/arm/xlnx-versal-virt.c +++ b/hw/arm/xlnx-versal-virt.c @@ -465,7 +465,7 @@ static void sd_plugin_card(SDHCIState *sd, DriveInfo *d= i) =20 card =3D qdev_new(TYPE_SD_CARD); object_property_add_child(OBJECT(sd), "card[*]", OBJECT(card)); - qdev_prop_set_drive(card, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(card, "drive", blk, &error_fatal); qdev_realize_and_unref(card, qdev_get_child_bus(DEVICE(sd), "sd-bus"), &error_fatal); } diff --git a/hw/arm/xlnx-zcu102.c b/hw/arm/xlnx-zcu102.c index b920bcee94..77449759c6 100644 --- a/hw/arm/xlnx-zcu102.c +++ b/hw/arm/xlnx-zcu102.c @@ -143,7 +143,7 @@ static void xlnx_zcu102_init(MachineState *machine) exit(1); } carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); qdev_realize_and_unref(carddev, bus, &error_fatal); } =20 @@ -159,8 +159,8 @@ static void xlnx_zcu102_init(MachineState *machine) =20 flash_dev =3D qdev_new("sst25wf080"); if (dinfo) { - qdev_prop_set_drive(flash_dev, "drive", blk_by_legacy_dinfo(di= nfo), - &error_fatal); + qdev_prop_set_drive_err(flash_dev, "drive", + blk_by_legacy_dinfo(dinfo), &error_fat= al); } qdev_realize_and_unref(flash_dev, spi_bus, &error_fatal); =20 @@ -182,8 +182,8 @@ static void xlnx_zcu102_init(MachineState *machine) =20 flash_dev =3D qdev_new("n25q512a11"); if (dinfo) { - qdev_prop_set_drive(flash_dev, "drive", blk_by_legacy_dinfo(di= nfo), - &error_fatal); + qdev_prop_set_drive_err(flash_dev, "drive", + blk_by_legacy_dinfo(dinfo), &error_fat= al); } qdev_realize_and_unref(flash_dev, spi_bus, &error_fatal); =20 diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 4191d5b006..5bef0b7d2f 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2505,8 +2505,8 @@ static void fdctrl_init_drives(FloppyBus *bus, DriveI= nfo **fds) dev =3D qdev_new("floppy"); qdev_prop_set_uint32(dev, "unit", i); qdev_prop_set_enum(dev, "drive-type", FLOPPY_DRIVE_TYPE_AUTO); - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(fds[i]), - &error_fatal); + qdev_prop_set_drive_err(dev, "drive", blk_by_legacy_dinfo(fds[= i]), + &error_fatal); qdev_realize_and_unref(dev, &bus->bus, &error_fatal); } } @@ -2563,7 +2563,7 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, Dev= iceState *fdc_dev, blk_ref(blk); blk_detach_dev(blk, fdc_dev); fdctrl->qdev_for_drives[i].blk =3D NULL; - qdev_prop_set_drive(dev, "drive", blk, &local_err); + qdev_prop_set_drive_err(dev, "drive", blk, &local_err); blk_unref(blk); =20 if (local_err) { diff --git a/hw/block/nand.c b/hw/block/nand.c index 7e25681d59..654e0cb5d1 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -648,7 +648,7 @@ DeviceState *nand_init(BlockBackend *blk, int manf_id, = int chip_id) qdev_prop_set_uint8(dev, "manufacturer_id", manf_id); qdev_prop_set_uint8(dev, "chip_id", chip_id); if (blk) { - qdev_prop_set_drive(dev, "drive", blk, &error_fatal); + qdev_prop_set_drive_err(dev, "drive", blk, &error_fatal); } =20 qdev_realize(dev, NULL, &error_fatal); diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 9f0c1d61ca..cddc3a5a0c 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -962,7 +962,7 @@ PFlashCFI01 *pflash_cfi01_register(hwaddr base, DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI01); =20 if (blk) { - qdev_prop_set_drive(dev, "drive", blk, &error_abort); + qdev_prop_set_drive(dev, "drive", blk); } assert(QEMU_IS_ALIGNED(size, sector_len)); qdev_prop_set_uint32(dev, "num-blocks", size / sector_len); @@ -1010,8 +1010,8 @@ void pflash_cfi01_legacy_drive(PFlashCFI01 *fl, Drive= Info *dinfo) error_report("clashes with -machine"); exit(1); } - qdev_prop_set_drive(DEVICE(fl), "drive", - blk_by_legacy_dinfo(dinfo), &error_fatal); + qdev_prop_set_drive_err(DEVICE(fl), "drive", blk_by_legacy_dinfo(dinfo= ), + &error_fatal); loc_pop(&loc); } =20 diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 6eb66e7bb0..b40ce2335a 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -1001,7 +1001,7 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI02); =20 if (blk) { - qdev_prop_set_drive(dev, "drive", blk, &error_abort); + qdev_prop_set_drive(dev, "drive", blk); } assert(QEMU_IS_ALIGNED(size, sector_len)); qdev_prop_set_uint32(dev, "num-blocks", size / sector_len); diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 695ebfe8b9..7eb79e98fc 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -425,8 +425,8 @@ const PropertyInfo qdev_prop_audiodev =3D { .set =3D set_audiodev, }; =20 -void qdev_prop_set_drive(DeviceState *dev, const char *name, - BlockBackend *value, Error **errp) +void qdev_prop_set_drive_err(DeviceState *dev, const char *name, + BlockBackend *value, Error **errp) { const char *ref =3D ""; =20 @@ -443,6 +443,12 @@ void qdev_prop_set_drive(DeviceState *dev, const char = *name, object_property_set_str(OBJECT(dev), ref, name, errp); } =20 +void qdev_prop_set_drive(DeviceState *dev, const char *name, + BlockBackend *value) +{ + qdev_prop_set_drive_err(dev, name, value, &error_abort); +} + void qdev_prop_set_chr(DeviceState *dev, const char *name, Chardev *value) { diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c index caa88526f5..784fafaaac 100644 --- a/hw/ide/qdev.c +++ b/hw/ide/qdev.c @@ -129,8 +129,8 @@ IDEDevice *ide_create_drive(IDEBus *bus, int unit, Driv= eInfo *drive) =20 dev =3D qdev_new(drive->media_cd ? "ide-cd" : "ide-hd"); qdev_prop_set_uint32(dev, "unit", unit); - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(drive), - &error_fatal); + qdev_prop_set_drive_err(dev, "drive", blk_by_legacy_dinfo(drive), + &error_fatal); qdev_realize_and_unref(dev, &bus->qbus, &error_fatal); return DO_UPCAST(IDEDevice, qdev, dev); } diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index 503ec54f5d..459d326af0 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -221,8 +221,7 @@ static void q800_init(MachineState *machine) via_dev =3D qdev_new(TYPE_MAC_VIA); dinfo =3D drive_get(IF_MTD, 0, 0); if (dinfo) { - qdev_prop_set_drive(via_dev, "drive", blk_by_legacy_dinfo(dinfo), - &error_abort); + qdev_prop_set_drive(via_dev, "drive", blk_by_legacy_dinfo(dinfo)); } sysbus =3D SYS_BUS_DEVICE(via_dev); sysbus_realize_and_unref(sysbus, &error_fatal); diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_= ml605_mmu.c index 23420028f5..fff2c578ef 100644 --- a/hw/microblaze/petalogix_ml605_mmu.c +++ b/hw/microblaze/petalogix_ml605_mmu.c @@ -188,8 +188,9 @@ petalogix_ml605_init(MachineState *machine) =20 dev =3D qdev_new("n25q128"); if (dinfo) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinf= o), - &error_fatal); + qdev_prop_set_drive_err(dev, "drive", + blk_by_legacy_dinfo(dinfo), + &error_fatal); } qdev_realize_and_unref(dev, BUS(spi), &error_fatal); =20 diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 80b4afd211..8bd03f3b10 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -730,8 +730,7 @@ static void pnv_init(MachineState *machine) */ dev =3D qdev_new(TYPE_PNV_PNOR); if (pnor) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(pnor), - &error_abort); + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(pnor)); } sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); pnv->pnor =3D PNV_PNOR(dev); diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 8d630baa5d..bd9345cdac 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1716,8 +1716,8 @@ static void spapr_create_nvram(SpaprMachineState *spa= pr) DriveInfo *dinfo =3D drive_get(IF_PFLASH, 0, 0); =20 if (dinfo) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo), - &error_fatal); + qdev_prop_set_drive_err(dev, "drive", blk_by_legacy_dinfo(dinfo), + &error_fatal); } =20 qdev_realize_and_unref(dev, &spapr->vio_bus->bus, &error_fatal); diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 1a7320c0af..27843bb04b 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -277,7 +277,7 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, Blo= ckBackend *blk, if (serial && object_property_find(OBJECT(dev), "serial", NULL)) { qdev_prop_set_string(dev, "serial", serial); } - qdev_prop_set_drive(dev, "drive", blk, &err); + qdev_prop_set_drive_err(dev, "drive", blk, &err); if (err) { error_propagate(errp, err); object_unparent(OBJECT(dev)); diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 4cfdf7b64c..1c23310715 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -279,7 +279,7 @@ static void milkymist_memcard_realize(DeviceState *dev,= Error **errp) dinfo =3D drive_get_next(IF_SD); blk =3D dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &err); + qdev_prop_set_drive_err(carddev, "drive", blk, &err); qdev_realize_and_unref(carddev, BUS(&s->sdbus), &err); if (err) { error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 623be70b26..3407617afc 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -496,7 +496,7 @@ PXA2xxMMCIState *pxa2xx_mmci_init(MemoryRegion *sysmem, =20 /* Create and plug in the sd card */ carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive(carddev, "drive", blk, &err); + qdev_prop_set_drive_err(carddev, "drive", blk, &err); if (err) { error_reportf_err(err, "failed to init SD card: "); return NULL; diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 7070a116ea..97a9d32964 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -706,7 +706,7 @@ SDState *sd_init(BlockBackend *blk, bool is_spi) =20 obj =3D object_new(TYPE_SD_CARD); dev =3D DEVICE(obj); - qdev_prop_set_drive(dev, "drive", blk, &err); + qdev_prop_set_drive_err(dev, "drive", blk, &err); if (err) { error_reportf_err(err, "sd_init failed: "); return NULL; diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index f98a6f3ae1..25cec2ddea 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -254,7 +254,8 @@ static void ssi_sd_realize(SSISlave *d, Error **errp) dinfo =3D drive_get_next(IF_SD); carddev =3D qdev_new(TYPE_SD_CARD); if (dinfo) { - qdev_prop_set_drive(carddev, "drive", blk_by_legacy_dinfo(dinfo), = &err); + qdev_prop_set_drive_err(carddev, "drive", blk_by_legacy_dinfo(dinf= o), + &err); if (err) { goto fail; } diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 5d0834c1d9..10de15855a 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -173,8 +173,7 @@ static PFlashCFI01 *xtfpga_flash_init(MemoryRegion *add= ress_space, SysBusDevice *s; DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI01); =20 - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo), - &error_abort); + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo)); qdev_prop_set_uint32(dev, "num-blocks", board->flash->size / board->flash->sector_size); qdev_prop_set_uint64(dev, "sector-length", board->flash->sector_size); --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369550; cv=none; d=zohomail.com; s=zohoarc; b=S9/LXbez/y2keZyUpnmgoUTQs19IjifRLpb8fqkdqiQWwMtYiBURcQUUllmY1KF+ca0yweOsgUXqTKDklCTbOr3NsQBJsECuSyhSBw8ubFudQq446/sJOw7LhzSBusGciak+TST6jPeWy4uKggGBf5OHwbMWLkiR4iMkeyvatYU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369550; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AzhrAmxId462PdyhY2syxA6JuMnzZ6hiX4wRnJCQSQw=; b=P137fNJQknb38pO96/Xc/dPBf9F9otCRXjlEJvbftuM1HhZ2ILFMMxj6WyGN8R7bgmcJ/opTE/R6KlUS4fDabfD0mIA9wjXuqdzHlU28HLCowgWKTWhHQyf7JnGhX8KJlPT/DeRaJzMVM7RyB9c2t8qHBZ+73iaZqqNbB6UwIws= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369550946648.4842134811772; Fri, 5 Jun 2020 08:05:50 -0700 (PDT) Received: from localhost ([::1]:33654 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDun-0000Cc-N5 for importer@patchew.org; Fri, 05 Jun 2020 11:05:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50910) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlu-0003zA-R1 for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:34436 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlp-0007UR-RU for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-68-hBtmRqtEMyi_skwdecp0BQ-1; Fri, 05 Jun 2020 10:56:31 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CB5EE19200C1; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0F79060C1D; Fri, 5 Jun 2020 14:56:29 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D62C51138465; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AzhrAmxId462PdyhY2syxA6JuMnzZ6hiX4wRnJCQSQw=; b=cbEJngtWy5udNjYxXv82u68TSgjEP5hAhLXjsx6nKmi3ngfQEfopZb+MXCbnMjje3moNdI hHRqGw+wbFgHxauIP7ImIVrr5FlMQMTwCb8dgWOlObCbYUVhnWmAc3SatpjWVHOFeOI/37 SVqJX8SxJcQVlRKkSRIU2aixu6IULS0= X-MC-Unique: hBtmRqtEMyi_skwdecp0BQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 14/16] arm/aspeed: Drop aspeed_board_init_flashes() parameter @errp Date: Fri, 5 Jun 2020 16:56:23 +0200 Message-Id: <20200605145625.2920920-15-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.61; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:35:49 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Peter Maydell , berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, Andrew Jeffery , mreitz@redhat.com, qemu-arm@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , pbonzini@redhat.com, jsnow@redhat.com, Joel Stanley Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We always pass &error_abort. Drop the parameter, use &error_abort directly. Cc: C=C3=A9dric Le Goater Cc: Peter Maydell Cc: Andrew Jeffery Cc: Joel Stanley Cc: qemu-arm@nongnu.org Signed-off-by: Markus Armbruster Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/aspeed.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 5ffaf86b86..4ce6ca0ef5 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -215,8 +215,8 @@ static void write_boot_rom(DriveInfo *dinfo, hwaddr add= r, size_t rom_size, g_free(storage); } =20 -static void aspeed_board_init_flashes(AspeedSMCState *s, const char *flash= type, - Error **errp) +static void aspeed_board_init_flashes(AspeedSMCState *s, + const char *flashtype) { int i ; =20 @@ -227,8 +227,8 @@ static void aspeed_board_init_flashes(AspeedSMCState *s= , const char *flashtype, =20 fl->flash =3D qdev_new(flashtype); if (dinfo) { - qdev_prop_set_drive_err(fl->flash, "drive", - blk_by_legacy_dinfo(dinfo), errp); + qdev_prop_set_drive(fl->flash, "drive", + blk_by_legacy_dinfo(dinfo)); } qdev_realize_and_unref(fl->flash, BUS(s->spi), &error_fatal); =20 @@ -314,8 +314,8 @@ static void aspeed_machine_init(MachineState *machine) "max_ram", max_ram_size - ram_size); memory_region_add_subregion(&bmc->ram_container, ram_size, &bmc->max_r= am); =20 - aspeed_board_init_flashes(&bmc->soc.fmc, amc->fmc_model, &error_abort); - aspeed_board_init_flashes(&bmc->soc.spi[0], amc->spi_model, &error_abo= rt); + aspeed_board_init_flashes(&bmc->soc.fmc, amc->fmc_model); + aspeed_board_init_flashes(&bmc->soc.spi[0], amc->spi_model); =20 /* Install first FMC flash content as a boot rom. */ if (drive0) { --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369094; cv=none; d=zohomail.com; s=zohoarc; b=AOtQbfzW5Yoc9rbyTk9m2Y7dKbQJ+8/ufaBYP6Ztc/c26dlglC9K2q6+jPVC7F+FK48fOnb0UY4ZWyVxvPoBA4ZEqwmqE2UXrONVdaXATDxNNBaQCdsbtzD5YOkSmrneD9vNNDW/xJwV7nVB/E8lMkzIt/b+GLXmi8UsJXnLeJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369094; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B01+PXwqtW2w+mgzF4lWtNnz8r08mFsj/aZkGw7yJ8o=; b=gK6fECDICieI1tQ+Cld4VYlkpSioZHDo49h3PYJmHuJSMqU9QDFjNkxyBZlvqFG/MXM2RUbf5h+1fn1EXfGCRRKYLSs1J/Kf2Q2pmpMEJBZnxgZIPubZ0pF8gD0MkDwZBHINyX8l0KPrYYMj9mnRMNwwaukgzAHpLlOgi4Z5ufw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369094893249.24106571759626; Fri, 5 Jun 2020 07:58:14 -0700 (PDT) Received: from localhost ([::1]:39068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDnR-0006fv-JH for importer@patchew.org; Fri, 05 Jun 2020 10:58:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlv-00040T-6O for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:39 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:56734 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDlq-0007Ug-4q for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-388-OWDkMchuPquNDLxA8YCAYQ-1; Fri, 05 Jun 2020 10:56:31 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 58C7E107ACF6; Fri, 5 Jun 2020 14:56:30 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 23F8D579A3; Fri, 5 Jun 2020 14:56:30 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id DB7461138466; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=B01+PXwqtW2w+mgzF4lWtNnz8r08mFsj/aZkGw7yJ8o=; b=bOkS0o9mOw9dThx5BqGtk21qQFyvRrTij3z3MUz0uQitRLHzhoDzHJ79zjNOTSd2FOzz1P LxU5Y3C+mzcNNe+F9gR+GXHqiRTV2tRvSk8SSYfzXj/Gl454eEYa33IRKq7OlhY2vIZs85 4DAngB+gEN12FElMqp2+YXTdMPaqVeY= X-MC-Unique: OWDkMchuPquNDLxA8YCAYQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 15/16] sd/pxa2xx_mmci: Don't crash on pxa2xx_mmci_init() error Date: Fri, 5 Jun 2020 16:56:24 +0200 Message-Id: <20200605145625.2920920-16-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:27:26 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Peter Maydell , berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, qemu-arm@nongnu.org, pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" On error, pxa2xx_mmci_init() reports to stderr and returns NULL. Callers don't check for errors. Machines akita, borzoi, mainstone, spitz, terrier, tosa, and z2 crash shortly after, like this: $ qemu-system-aarch64 -M akita -drive if=3Dsd,readonly=3Don qemu-system-aarch64: failed to init SD card: Cannot use read-only drive= as SD card Segmentation fault (core dumped) Machines connex and verdex reach the check for orphaned drives first: $ aarch64-softmmu/qemu-system-aarch64 -M connex -drive if=3Dsd,readonly= =3Don -accel qtest qemu-system-aarch64: failed to init SD card: Cannot use read-only drive= as SD card qemu-system-aarch64: -drive if=3Dsd,readonly=3Don: machine type does no= t support if=3Dsd,bus=3D0,unit=3D0 Make pxa2xx_mmci_init() fail cleanly right away. Cc: Andrzej Zaborowski Cc: Peter Maydell Cc: qemu-arm@nongnu.org Signed-off-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/pxa2xx_mmci.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 3407617afc..68bed24480 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -18,7 +18,6 @@ #include "hw/arm/pxa.h" #include "hw/sd/sd.h" #include "hw/qdev-properties.h" -#include "qemu/error-report.h" #include "qemu/log.h" #include "qemu/module.h" #include "trace.h" @@ -483,7 +482,6 @@ PXA2xxMMCIState *pxa2xx_mmci_init(MemoryRegion *sysmem, DeviceState *dev, *carddev; SysBusDevice *sbd; PXA2xxMMCIState *s; - Error *err =3D NULL; =20 dev =3D qdev_new(TYPE_PXA2XX_MMCI); s =3D PXA2XX_MMCI(dev); @@ -496,16 +494,9 @@ PXA2xxMMCIState *pxa2xx_mmci_init(MemoryRegion *sysmem, =20 /* Create and plug in the sd card */ carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive_err(carddev, "drive", blk, &err); - if (err) { - error_reportf_err(err, "failed to init SD card: "); - return NULL; - } - qdev_realize_and_unref(carddev, qdev_get_child_bus(dev, "sd-bus"), &er= r); - if (err) { - error_reportf_err(err, "failed to init SD card: "); - return NULL; - } + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); + qdev_realize_and_unref(carddev, qdev_get_child_bus(dev, "sd-bus"), + &error_fatal); =20 return s; } --=20 2.26.2 From nobody Sat Feb 7 03:51:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591369817; cv=none; d=zohomail.com; s=zohoarc; b=eOwfAEI3IL338nADNZURgKSiE+xEwxK5BIbB9WEk4Us+guDX1Af7Wgz8HKL+Ci6J9vMNcydDheJ3Hs+T3yJKbUzhx9kByLAzcy4ypuoKJc//ZX9RIEniSJ2mxr8U/cljT3StMwHv3XkySC3jIvYgS+c2OmrYo5My9BBdMBFXU3o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591369817; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=K2CFRVVlqihOWpqw3mNZDeRHnB4M1D5JStIrtvhT4Rk=; b=SKQfCXm0al+NaiNMrQxxgy2zmODJBG4kWztuvko47XcXkH0hd9dQDe9GHp6+pwZ6ex4/tjMEB2tSsCJpHJwJK0J4vfufE3Vg0XCwbUdIMLyebZxiaUO9IFEDPDcE3r8n7CrajR74sQvd/7gm5wtFzBeqa71PWSBZmzXbfpSpfl8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1591369817961762.0024607866279; Fri, 5 Jun 2020 08:10:17 -0700 (PDT) Received: from localhost ([::1]:49690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jhDz6-0007Cp-IS for importer@patchew.org; Fri, 05 Jun 2020 11:10:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50942) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhDlx-00046n-J0 for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:41 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:39114 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jhDls-0007Va-AA for qemu-devel@nongnu.org; Fri, 05 Jun 2020 10:56:41 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-272-7lDd6SazPVWYg6Tnc5ARUA-1; Fri, 05 Jun 2020 10:56:31 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7E70D107ACF7; Fri, 5 Jun 2020 14:56:30 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-121.ams2.redhat.com [10.36.112.121]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2EDE41973B; Fri, 5 Jun 2020 14:56:30 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E0B461138467; Fri, 5 Jun 2020 16:56:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591368995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=K2CFRVVlqihOWpqw3mNZDeRHnB4M1D5JStIrtvhT4Rk=; b=aaEgdNxPLGAFDG8ZWQah9vqFTfg3WVWv/z998P2tqASFUfmUEd7TO8Y9rCITRRVWrGZEJv 3ZiuhRqqRz6QerxJuCv4WdXp0L4UBdsgiO5zSoCoHMTXQlC6/EuB4fSOluF5Xw91vHQZAU yPotVzcPmrR+UOTNR6fa5U6Foy1la1c= X-MC-Unique: 7lDd6SazPVWYg6Tnc5ARUA-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH 16/16] sd/milkymist-memcard: Fix error API violation Date: Fri, 5 Jun 2020 16:56:25 +0200 Message-Id: <20200605145625.2920920-17-armbru@redhat.com> In-Reply-To: <20200605145625.2920920-1-armbru@redhat.com> References: <20200605145625.2920920-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.139.110.120; envelope-from=armbru@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/05 03:27:26 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, Michael Walle , pbonzini@redhat.com, jsnow@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The Error ** argument must be NULL, &error_abort, &error_fatal, or a pointer to a variable containing NULL. Passing an argument of the latter kind twice without clearing it in between is wrong: if the first call sets an error, it no longer points to NULL for the second call. milkymist_memcard_realize() is wrong that way: it passes &err to qdev_prop_set_drive_err() and qdev_realize_and_unref(). Currently harmless, because the latter uses it only as first argument of error_propagate(). Making qdev_prop_set_drive_err() fail involves abuse of -global. Leave handling that to qdev_prop_set_drive(), like we do elsewhere. Cc: Michael Walle Signed-off-by: Markus Armbruster --- hw/sd/milkymist-memcard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 1c23310715..482e97191e 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -279,7 +279,7 @@ static void milkymist_memcard_realize(DeviceState *dev,= Error **errp) dinfo =3D drive_get_next(IF_SD); blk =3D dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; carddev =3D qdev_new(TYPE_SD_CARD); - qdev_prop_set_drive_err(carddev, "drive", blk, &err); + qdev_prop_set_drive(carddev, "drive", blk); qdev_realize_and_unref(carddev, BUS(&s->sdbus), &err); if (err) { error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); --=20 2.26.2