From nobody Mon Feb 9 18:22:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=riseup.net ARC-Seal: i=1; a=rsa-sha256; t=1682186191; cv=none; d=zohomail.com; s=zohoarc; b=mrvggbOXTBq22LSpEU3X8zVR96yBBcFiCT44rn8LM1lm/SGIhEUkc+9d+b/xE5/uDmRzWKVKxKkimmbL90oGsrxGQiwkYAynorl1dbueagQC4fLW1on8niRj+VVz2jZBxS8fZBiDiso+/tpC1B6UgBfQGiresrN0CFt/JqdkU/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1682186191; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=JV8gy8X1UzTmpxbe389a+WspHdjiJYlKsuK/iGGQsbY=; b=XLK6/RAq5wiwDGfY2/gLgzwlQ1cb2a+zkKXHS+4r8iR3IFKh5K7cQZMBCSOsnalUBL+F//ZXzUZrXwwpDv3S0CYMBNtVWS6iaW9GiVogVDOwVFyKABSRfbUWhkJqllBfAa50bti+LxuhE/qRm+bc8TsCo+jvdlUr9ZHEATcVORw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1682186191340272.681533258757; Sat, 22 Apr 2023 10:56:31 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-637-LA5TbEC4N6eREF0vH_Fqpw-1; Sat, 22 Apr 2023 13:56:26 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7C091101A54F; Sat, 22 Apr 2023 17:56:24 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id D20D0C15BA0; Sat, 22 Apr 2023 17:56:21 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 44CCE1946588; Sat, 22 Apr 2023 17:56:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 0B1511946586 for ; Sat, 22 Apr 2023 17:56:17 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8E956C15BB8; Sat, 22 Apr 2023 17:56:17 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 86C34C15BA0 for ; Sat, 22 Apr 2023 17:56:17 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6BC06811E7B for ; Sat, 22 Apr 2023 17:56:17 +0000 (UTC) Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-248-06V5ZC8fMVKmsxCWiEH30g-1; Sat, 22 Apr 2023 13:56:10 -0400 Received: from fews02-sea.riseup.net (fews02-sea-pn.riseup.net [10.0.1.112]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4Q3fG06X09zDqKw for ; Sat, 22 Apr 2023 17:56:08 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews02-sea.riseup.net (Postfix) with ESMTPSA id 4Q3fFz4zsrzFpx2; Sat, 22 Apr 2023 17:56:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682186190; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=JV8gy8X1UzTmpxbe389a+WspHdjiJYlKsuK/iGGQsbY=; b=Spy5d0d62R83bYWewb+/3CP1lwxZBG91twg8swnRWy+13kJwUAANfZrx7/ajZimOCfqz+t M88sUwQYFT8Yj0ueahQttel56rklYjrEVDS6IvULsqVBYxRdZTThFUn6oSsIdN2S14iVhv 8Y/BQAshBfQMYrXKkJ/CahxtJR9/xX8= X-MC-Unique: LA5TbEC4N6eREF0vH_Fqpw-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: 06V5ZC8fMVKmsxCWiEH30g-1 X-Riseup-User-ID: CD25A104101AC87AA052B59957E02D1C32C60A3D21D6B4000D8DC4ADF45D9C83 From: K Shiva To: libvir-list@redhat.com Subject: [libvirt PATCH] Move default Input bus logic to PostParse handling Date: Sat, 22 Apr 2023 23:25:30 +0530 Message-Id: <20230422175530.115113-1-shiva_kr@riseup.net> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: K Shiva Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: riseup.net Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1682186192201100001 Content-Type: text/plain; charset="utf-8"; x-default="true" A new enum type "Default" has been added for Input bus. The logic that handled default input bus types in virDomainInputParseXML() has been moved to a new function virDomainInputDefPostParse() in domain_postparse.c Link to Issue: https://gitlab.com/libvirt/libvirt/-/issues/8 Signed-off-by: K Shiva Reviewed-by: Martin Kletzander --- src/conf/domain_conf.c | 27 +++------------------------ src/conf/domain_conf.h | 1 + src/conf/domain_postparse.c | 30 ++++++++++++++++++++++++++++++ src/qemu/qemu_command.c | 1 + src/qemu/qemu_domain_address.c | 1 + src/qemu/qemu_hotplug.c | 2 ++ 6 files changed, 38 insertions(+), 24 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index b03a3ff011..22af3f1d8a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -905,6 +905,7 @@ VIR_ENUM_IMPL(virDomainInput, =20 VIR_ENUM_IMPL(virDomainInputBus, VIR_DOMAIN_INPUT_BUS_LAST, + "default", "ps2", "usb", "xen", @@ -10693,7 +10694,6 @@ virDomainPanicDefParseXML(virDomainXMLOption *xmlop= t, /* Parse the XML definition for an input device */ static virDomainInputDef * virDomainInputDefParseXML(virDomainXMLOption *xmlopt, - const virDomainDef *dom, xmlNodePtr node, xmlXPathContextPtr ctxt, unsigned int flags) @@ -10741,27 +10741,7 @@ virDomainInputDefParseXML(virDomainXMLOption *xmlo= pt, } =20 } else { - if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { - if ((def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_MOUSE || - def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_KBD) && - (ARCH_IS_X86(dom->os.arch) || dom->os.arch =3D=3D VIR_ARCH= _NONE)) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_PS2; - } else if (ARCH_IS_S390(dom->os.arch) || - def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH)= { - def->bus =3D VIR_DOMAIN_INPUT_BUS_VIRTIO; - } else if (def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_EVDEV) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_NONE; - } else { - def->bus =3D VIR_DOMAIN_INPUT_BUS_USB; - } - } else if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XEN || - dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XENPVH) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_XEN; - } else { - if ((dom->virtType =3D=3D VIR_DOMAIN_VIRT_VZ || - dom->virtType =3D=3D VIR_DOMAIN_VIRT_PARALLELS)) - def->bus =3D VIR_DOMAIN_INPUT_BUS_PARALLELS; - } + def->bus =3D VIR_DOMAIN_INPUT_BUS_DEFAULT; } =20 if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &def->info, flags)= < 0) @@ -13766,7 +13746,7 @@ virDomainDeviceDefParse(const char *xmlStr, return NULL; break; case VIR_DOMAIN_DEVICE_INPUT: - if (!(dev->data.input =3D virDomainInputDefParseXML(xmlopt, def, n= ode, + if (!(dev->data.input =3D virDomainInputDefParseXML(xmlopt, node, ctxt, flags))) return NULL; break; @@ -18872,7 +18852,6 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 for (i =3D 0; i < n; i++) { virDomainInputDef *input =3D virDomainInputDefParseXML(xmlopt, - def, nodes[i], ctxt, flags); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 511067a050..2a8fc6f90d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1510,6 +1510,7 @@ typedef enum { } virDomainInputType; =20 typedef enum { + VIR_DOMAIN_INPUT_BUS_DEFAULT, VIR_DOMAIN_INPUT_BUS_PS2, VIR_DOMAIN_INPUT_BUS_USB, VIR_DOMAIN_INPUT_BUS_XEN, diff --git a/src/conf/domain_postparse.c b/src/conf/domain_postparse.c index b756e2cde8..7ef478e3e1 100644 --- a/src/conf/domain_postparse.c +++ b/src/conf/domain_postparse.c @@ -649,6 +649,33 @@ virDomainFSDefPostParse(virDomainFSDef *fs) return 0; } =20 +static void +virDomainInputDefPostParse(virDomainInputDef *input, + const virDomainDef *def) +{ + if (input->bus =3D=3D VIR_DOMAIN_INPUT_BUS_DEFAULT) { + if (def->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { + if ((input->type =3D=3D VIR_DOMAIN_INPUT_TYPE_MOUSE || + input->type =3D=3D VIR_DOMAIN_INPUT_TYPE_KBD) && + (ARCH_IS_X86(def->os.arch) || def->os.arch =3D=3D VIR_ARCH= _NONE)) { + } else if (ARCH_IS_S390(def->os.arch) || + input->type =3D=3D VIR_DOMAIN_INPUT_TYPE_PASSTHROUG= H) { + input->bus =3D VIR_DOMAIN_INPUT_BUS_VIRTIO; + } else if (input->type =3D=3D VIR_DOMAIN_INPUT_TYPE_EVDEV) { + input->bus =3D VIR_DOMAIN_INPUT_BUS_NONE; + } else { + input->bus =3D VIR_DOMAIN_INPUT_BUS_USB; + } + } else if (def->os.type =3D=3D VIR_DOMAIN_OSTYPE_XEN || + def->os.type =3D=3D VIR_DOMAIN_OSTYPE_XENPVH) { + input->bus =3D VIR_DOMAIN_INPUT_BUS_XEN; + } else { + if ((def->virtType =3D=3D VIR_DOMAIN_VIRT_VZ || + def->virtType =3D=3D VIR_DOMAIN_VIRT_PARALLELS)) + input->bus =3D VIR_DOMAIN_INPUT_BUS_PARALLELS; + } + } +} =20 static int virDomainDeviceDefPostParseCommon(virDomainDeviceDef *dev, @@ -701,6 +728,9 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDef *d= ev, case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: + virDomainInputDefPostParse(dev->data.input, def); + ret =3D 0; + break; case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_WATCHDOG: case VIR_DOMAIN_DEVICE_GRAPHICS: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4ca93bf3dc..135e35f43a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4345,6 +4345,7 @@ qemuBuildInputCommandLine(virCommand *cmd, if (!(props =3D qemuBuildInputVirtioDevProps(def, input, q= emuCaps))) return -1; =20 + case VIR_DOMAIN_INPUT_BUS_DEFAULT: case VIR_DOMAIN_INPUT_BUS_PS2: case VIR_DOMAIN_INPUT_BUS_XEN: case VIR_DOMAIN_INPUT_BUS_PARALLELS: diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 7d3d072d5a..49c5e199fa 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -984,6 +984,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, } return 0; =20 + case VIR_DOMAIN_INPUT_BUS_DEFAULT: case VIR_DOMAIN_INPUT_BUS_PS2: case VIR_DOMAIN_INPUT_BUS_USB: case VIR_DOMAIN_INPUT_BUS_XEN: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 5072798cb7..f7a41e376e 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3053,6 +3053,7 @@ qemuDomainAttachInputDevice(virDomainObj *vm, goto cleanup; break; =20 + case VIR_DOMAIN_INPUT_BUS_DEFAULT: case VIR_DOMAIN_INPUT_BUS_PS2: case VIR_DOMAIN_INPUT_BUS_XEN: case VIR_DOMAIN_INPUT_BUS_PARALLELS: @@ -5799,6 +5800,7 @@ qemuDomainDetachPrepInput(virDomainObj *vm, *detach =3D input =3D vm->def->inputs[idx]; =20 switch ((virDomainInputBus) input->bus) { + case VIR_DOMAIN_INPUT_BUS_DEFAULT: case VIR_DOMAIN_INPUT_BUS_PS2: case VIR_DOMAIN_INPUT_BUS_XEN: case VIR_DOMAIN_INPUT_BUS_PARALLELS: --=20 2.40.0