From nobody Fri May 16 11:02:08 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1494858527829911.5023488334316; Mon, 15 May 2017 07:28:47 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id AA7C180E7C; Mon, 15 May 2017 14:28:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4B98B4DA18; Mon, 15 May 2017 14:28:43 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A84484BB74; Mon, 15 May 2017 14:28:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4FESeYW031187 for ; Mon, 15 May 2017 10:28:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 361771821E; Mon, 15 May 2017 14:28:40 +0000 (UTC) Received: from antique-work.brq.redhat.com (dhcp129-230.brq.redhat.com [10.34.129.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id AF1DE729B9 for ; Mon, 15 May 2017 14:28:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com AA7C180E7C Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com AA7C180E7C From: Pavel Hrdina To: libvir-list@redhat.com Date: Mon, 15 May 2017 16:28:34 +0200 Message-Id: <7fe9e43998a3417883ae9f9dd95373776ddaef90.1494858416.git.phrdina@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/2] conf: don't iterate over backcompat console in virDomainChrDefForeach X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 15 May 2017 14:28:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" If the first console is just a copy of the first serial device we don't need to iterate over the same device twice in order to perform actions like security labeling, cgroup configuring, etc. Currently only security SELinux manager was aware of this fact. Signed-off-by: Pavel Hrdina --- src/conf/domain_conf.c | 26 +++++++++++++++++++++----- src/security/security_selinux.c | 10 ---------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0ff216e3a3..aa441fae3c 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3517,6 +3517,24 @@ void virDomainDeviceInfoClear(virDomainDeviceInfoPtr= info) } =20 =20 +static bool +virDomainSkipBackcompatConsole(virDomainDefPtr def, + size_t index, + bool all) +{ + virDomainChrDefPtr console =3D def->consoles[index]; + + if (!all && index =3D=3D 0 && + (console->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SER= IAL || + console->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NON= E) && + def->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { + return true; + } + + return false; +} + + static int virDomainDeviceInfoIterateInternal(virDomainDefPtr def, virDomainDeviceInfoCallback cb, @@ -3585,11 +3603,7 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr d= ef, return -1; } for (i =3D 0; i < def->nconsoles; i++) { - if (!all && - i =3D=3D 0 && - (def->consoles[i]->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TA= RGET_TYPE_SERIAL || - def->consoles[i]->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TA= RGET_TYPE_NONE) && - def->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) + if (virDomainSkipBackcompatConsole(def, i, all)) continue; device.data.chr =3D def->consoles[i]; if (cb(def, &device, &def->consoles[i]->info, opaque) < 0) @@ -25313,6 +25327,8 @@ virDomainChrDefForeach(virDomainDefPtr def, goto done; } for (i =3D 0; i < def->nconsoles; i++) { + if (virDomainSkipBackcompatConsole(def, i, false)) + continue; if ((iter)(def, def->consoles[i], opaque) < 0) diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index df7c96833e..612dbc2a83 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2339,11 +2339,6 @@ virSecuritySELinuxRestoreSecurityChardevCallback(vir= DomainDefPtr def, { virSecurityManagerPtr mgr =3D opaque; =20 - /* This is taken care of by processing of def->serials */ - if (dev->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE && - dev->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL) - return 0; - return virSecuritySELinuxRestoreChardevLabel(mgr, def, dev, dev->sourc= e); } =20 @@ -2733,11 +2728,6 @@ virSecuritySELinuxSetSecurityChardevCallback(virDoma= inDefPtr def, { virSecurityManagerPtr mgr =3D opaque; =20 - /* This is taken care of by processing of def->serials */ - if (dev->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE && - dev->targetType =3D=3D VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL) - return 0; - return virSecuritySELinuxSetChardevLabel(mgr, def, dev, dev->source); } =20 --=20 2.13.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list