From nobody Sun Feb 8 23:25:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1694616643; cv=none; d=zohomail.com; s=zohoarc; b=HB22GjOnUQU3iYBpxm/KQH+DBxCNkS7YrhPLI7LPPQq1R5mzkK0KwdaYE72wkFrretiW3ziJSL8xb5SDh2F3WAjRWVWTFGNM/5Od4J2ECh37ynuOZx/mnMk4xYgnaGk1aA23dX3aGF0WxG3ixK9NEOiVbXF/Q+sYlzOzstaiL2g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694616643; 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=AKRth8lhbPWJAavdmDmnNwwUQ+gTIecmKcJgGwnKIrA=; b=VL8Ab4+woUyN1MjEmKwAoZGSV1057BXyY7akdhiosy5LIDxv3IKtLcXobardLvQEe6rlUzw04VJG3GpmgZ5yTzDgmmY0xMLNN54mhF7oqpsxE8xknX0j8TQPxR2wQlAsgphXoVZsuUk/wTjffBCvbqFcSpmjIrbShiTpieX7H6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694616643434113.11794823559217; Wed, 13 Sep 2023 07:50:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgRC3-0000yu-E2; Wed, 13 Sep 2023 10:50:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBy-0000xv-1X for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBv-0000Jj-UL for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:09 -0400 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-154-XsOzb-CsOpOGDgt_eE9eCw-1; Wed, 13 Sep 2023 10:50:03 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 1F21C18056B3 for ; Wed, 13 Sep 2023 14:50:03 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.194.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3E7F464671; Wed, 13 Sep 2023 14:50:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694616606; 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=AKRth8lhbPWJAavdmDmnNwwUQ+gTIecmKcJgGwnKIrA=; b=Ow4n0I/0nwqvLFmElwiqJEf9RZrlCN6K3Xyla35pz+4tZpGT63AL0KVICZ/2VR7CqMyO4B oyrPf9YkBX2qpqT3P/OpN0kS8IWZoIh8Z92we5HiwM4zLpc55zeNAeOQCm3G+TUAKJK1xE OhT7FeqkcuuEd02e/4JUR4m7gef/NoU= X-MC-Unique: XsOzb-CsOpOGDgt_eE9eCw-1 From: Laszlo Ersek To: lersek@redhat.com, qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Subject: [PATCH 1/4] ui/console: make qemu_console_is_multihead() static Date: Wed, 13 Sep 2023 16:49:56 +0200 Message-Id: <20230913144959.41891-2-lersek@redhat.com> In-Reply-To: <20230913144959.41891-1-lersek@redhat.com> References: <20230913144959.41891-1-lersek@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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=170.10.133.124; envelope-from=lersek@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1694616645500100003 Content-Type: text/plain; charset="utf-8" qemu_console_is_multihead() is only called from within "ui/console.c"; make it static. Cc: "Marc-Andr=C3=A9 Lureau" (odd fixer:Graph= ics) Cc: Gerd Hoffmann (odd fixer:Graphics) Signed-off-by: Laszlo Ersek Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/console.h | 1 - ui/console.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index 1ccd432b4d64..d715f88b1be2 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -506,7 +506,6 @@ bool qemu_console_is_visible(QemuConsole *con); bool qemu_console_is_graphic(QemuConsole *con); bool qemu_console_is_fixedsize(QemuConsole *con); bool qemu_console_is_gl_blocked(QemuConsole *con); -bool qemu_console_is_multihead(DeviceState *dev); char *qemu_console_get_label(QemuConsole *con); int qemu_console_get_index(QemuConsole *con); uint32_t qemu_console_get_head(QemuConsole *con); diff --git a/ui/console.c b/ui/console.c index e4d61794bb2c..adacc3473140 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2365,7 +2365,7 @@ bool qemu_console_is_gl_blocked(QemuConsole *con) return con->gl_block; } =20 -bool qemu_console_is_multihead(DeviceState *dev) +static bool qemu_console_is_multihead(DeviceState *dev) { QemuConsole *con; Object *obj; From nobody Sun Feb 8 23:25:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1694616672; cv=none; d=zohomail.com; s=zohoarc; b=CrdFscAedd3q1uIW2FUo3nvszPzoFNQaKgxjMKLcsJLo6aBuxz0IlwvxrxqcjFEYorS/VSJ+R5j16kgqt3lqS4hs0GKt4AFd34TZN0VWEQYTEhTBzf8NWTGNAxY9mwsktYF1cSWpUH3uA+u6uIOJOmJ9CzBtGmiYCQ+VzoVnet4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694616672; 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=4vZTivdXi5pRVkwl8cN/DGNi6t7j0fF1pSnYTruMtbQ=; b=BZjAJV7BKIhSHqjy04vGrgG54Exq6n5ph1m6+UO8a6SBszn0Ot5DEX2xqQZq85SPMY2hSH3nTaSsot8917bXCp6fpvD406Jix4cNvTsgeDIyVFLPiIQCKw13HTsLjZAs92zjfOdNPVSX7Ox1NCgjiqM764KJprm/mRjagmCz2i0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694616672308734.1158342474588; Wed, 13 Sep 2023 07:51:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgRC5-000110-17; Wed, 13 Sep 2023 10:50:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBy-0000yG-H1 for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBw-0000KC-9g for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:10 -0400 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-333-jAdAjrasPMmnxNEwfZvDlg-1; Wed, 13 Sep 2023 10:50:05 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 25EEB100BACB for ; Wed, 13 Sep 2023 14:50:05 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.194.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 48C122904; Wed, 13 Sep 2023 14:50:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694616607; 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=4vZTivdXi5pRVkwl8cN/DGNi6t7j0fF1pSnYTruMtbQ=; b=NDT07nEJmqYZXiN7LjoEeuEOgTu76twh/XWywMCsSDSnSlc7Kfw49+EVU4xgzO8HN+qKWE 7DUK2FEoAVCLuNB5KzdTiNcoqgE5BoPEbU/basqPqUC3dF6ZPAPVGFIMrt+2nWC0kfq07w dve+dNBbKpO98+3Ckyqh+X0AdQWiC6Y= X-MC-Unique: jAdAjrasPMmnxNEwfZvDlg-1 From: Laszlo Ersek To: lersek@redhat.com, qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Subject: [PATCH 2/4] ui/console: only walk QemuGraphicConsoles in qemu_console_is_multihead() Date: Wed, 13 Sep 2023 16:49:57 +0200 Message-Id: <20230913144959.41891-3-lersek@redhat.com> In-Reply-To: <20230913144959.41891-1-lersek@redhat.com> References: <20230913144959.41891-1-lersek@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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=170.10.129.124; envelope-from=lersek@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1694616674312100009 Content-Type: text/plain; charset="utf-8" qemu_console_is_multihead() declares the console "c" a "multihead" console if there are two different consoles in the system that (a) both reference "c->device", and (b) have different "c->head" numbers. In effect, if at least two consoles exist that are different heads of the same device that underlies "c". Commit 58d5870845c6 ("ui/console: move graphic fields to QemuGraphicConsole", 2023-09-04) pushed the "device" and "head" members from the QemuConsole base class down to the QemuGraphicConsole subclass, adjusting the referring QOM properties accordingly as well. As a result, the "device" property lookup in qemu_console_is_multihead() now crashes, in case the candidate console being investigated for criterion (a) is not a QemuGraphicConsole instance: > Unexpected error in object_property_find_err() at qom/object.c:1314: > qemu: Property 'qemu-fixed-text-console.device' not found > Aborted (core dumped) This is effectively an unchecked downcast. Make it checked: only consider such console candidates that are themselves QemuGraphicConsole instances. Cc: "Marc-Andr=C3=A9 Lureau" (odd fixer:Graph= ics) Cc: Gerd Hoffmann (odd fixer:Graphics) Fixes: 58d5870845c6 Signed-off-by: Laszlo Ersek Reviewed-by: Marc-Andr=C3=A9 Lureau --- ui/console.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/console.c b/ui/console.c index adacc3473140..2ee65207b430 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2373,6 +2373,9 @@ static bool qemu_console_is_multihead(DeviceState *de= v) uint32_t h; =20 QTAILQ_FOREACH(con, &consoles, next) { + if (!QEMU_IS_GRAPHIC_CONSOLE(con)) { + continue; + } obj =3D object_property_get_link(OBJECT(con), "device", &error_abort); if (DEVICE(obj) !=3D dev) { From nobody Sun Feb 8 23:25:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1694616672; cv=none; d=zohomail.com; s=zohoarc; b=K7ClrcoBKG0edXKP70lOx1kZ3V/47cUIyEz9nTX/YF5+87Irbl4rF5AI7mi13reiU2u+bELOxFqqCRzxyT3A7E7AwlDSdbGO0q8+6c3d33TlcMjB2uGhZCV5U34EGo8C2VMB8loHnE/44YG7y6hzLw841XfEG6koEPti49lDdHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694616672; 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=LdBQKAgdJ5RGJSg/p8MMXcwHuyc4f7F3/mgOa1f4Lc0=; b=ObacZja68fIrl2r74DSenzURJ8uF6AQHZHIesa1xMTyBJSCIDCNbANTuXc1ZM1Kd8vIUFgB/yWvGfPSEpGddBIo2BU+k1VD5ftqefEX3QnJ4Go05SeMOmzLIpGrCDbwvwVghxh6Ai3T07q6zqCxm6uqJ+E4MEvJfvToi6Znz5oU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694616671996507.2741804944775; Wed, 13 Sep 2023 07:51:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgRCA-00013p-Dd; Wed, 13 Sep 2023 10:50:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRC0-0000yb-16 for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBx-0000Nd-BU for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:11 -0400 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-228-MRI5cd7RPCqjq5WZh5RDAA-1; Wed, 13 Sep 2023 10:50:06 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 423AC100B36E for ; Wed, 13 Sep 2023 14:50:06 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.194.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6322663A52; Wed, 13 Sep 2023 14:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694616608; 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=LdBQKAgdJ5RGJSg/p8MMXcwHuyc4f7F3/mgOa1f4Lc0=; b=drfh11yABfIfOTG4ABn8y+4G5YPzg4J13dIjA9viYfvRbLvA5V4hBj2vyLZzTg+kdjH+b2 Xn+svn19oYJu9W+eiOugv78SY2SjJoNm0fX7WPulw4Ft5XbbpNkK+RLYot55BoQ0Wxw3Mz /TuNM1LFxjjEMknx49pg8CdjtqOTVTc= X-MC-Unique: MRI5cd7RPCqjq5WZh5RDAA-1 From: Laszlo Ersek To: lersek@redhat.com, qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Subject: [PATCH 3/4] ui/console: eliminate QOM properties from qemu_console_is_multihead() Date: Wed, 13 Sep 2023 16:49:58 +0200 Message-Id: <20230913144959.41891-4-lersek@redhat.com> In-Reply-To: <20230913144959.41891-1-lersek@redhat.com> References: <20230913144959.41891-1-lersek@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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=170.10.133.124; envelope-from=lersek@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1694616673345100007 Content-Type: text/plain; charset="utf-8" According to Marc-Andr=C3=A9's and Gerd's descriptions, the "device" and "head" members of QemuGraphicConsole are exposed as QOM properties for two purposes: (1) Introspection (e.g., "qom-get" monitor command). (2) A VNC server can display a specific device + head. This lets us run a multihead configuration by using multiple VNC servers (one for each head). Further, we can link input devices to device + head, so input events are routed to different devices dependent on where they are coming from. Which is most useful for tablet devices in a VNC multihead setup, each head has its own tablet device then. This does requires manual guest-side configuration, for establishing the same tablet <-> head relationship. However, neither goal seems to justify the complicated QOM property lookup that's internal to qemu_console_is_multihead(). Rework qemu_console_is_multihead() with plain old C language field accesses. Cc: "Marc-Andr=C3=A9 Lureau" (odd fixer:Graph= ics) Cc: Gerd Hoffmann (odd fixer:Graphics) Signed-off-by: Laszlo Ersek Reviewed-by: Marc-Andr=C3=A9 Lureau --- ui/console.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/console.c b/ui/console.c index 2ee65207b430..6424820c8521 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2365,25 +2365,25 @@ bool qemu_console_is_gl_blocked(QemuConsole *con) return con->gl_block; } =20 -static bool qemu_console_is_multihead(DeviceState *dev) +static bool qemu_graphic_console_is_multihead(QemuGraphicConsole *c) { QemuConsole *con; - Object *obj; uint32_t f =3D 0xffffffff; uint32_t h; =20 QTAILQ_FOREACH(con, &consoles, next) { + QemuGraphicConsole *candidate; + if (!QEMU_IS_GRAPHIC_CONSOLE(con)) { continue; } - obj =3D object_property_get_link(OBJECT(con), - "device", &error_abort); - if (DEVICE(obj) !=3D dev) { + + candidate =3D QEMU_GRAPHIC_CONSOLE(con); + if (candidate->device !=3D c->device) { continue; } =20 - h =3D object_property_get_uint(OBJECT(con), - "head", &error_abort); + h =3D candidate->head; if (f =3D=3D 0xffffffff) { f =3D h; } else if (h !=3D f) { @@ -2402,7 +2402,7 @@ char *qemu_console_get_label(QemuConsole *con) bool multihead; =20 dev =3D DEVICE(c->device); - multihead =3D qemu_console_is_multihead(dev); + multihead =3D qemu_graphic_console_is_multihead(c); if (multihead) { return g_strdup_printf("%s.%d", dev->id ? dev->id : From nobody Sun Feb 8 23:25:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1694616669; cv=none; d=zohomail.com; s=zohoarc; b=VO9PTaJDaCybMcGDehOn/c8ne5s5CXrg/W4l7eqY11hps1DfuFgWpxpdbFQFXC7+r/Qbg8A/v78yDFcbT9VZgcMErYMWGOY/nfgDiMREtobOe5zkHWtOomKQ8R4GfFUl0mZIDrX84bsf2kVGw10mk3WlcerEKP784uqRGv0KOF0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694616669; 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=otjEfooNuOif7HkdZH8mcdrv7l5FqBVatZP1E7Xnp/c=; b=Rt9FVMpmWlvnzgv6aiY8bW2JA9dopYc/QnHUwdnJMSRuwP8R900FBrY9HLuJOX6tdnmnMUoKTentfxrFLnsL7qdD9zPVNKpIsTBLvr3+rUQfN/kOXsfBSfzXPkcM93Oaii/3eppWZMd+PMztapk8HASTntrf+2kZ2+qvYtaEqJk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1694616669363366.2996377891121; Wed, 13 Sep 2023 07:51:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgRC9-00012C-LZ; Wed, 13 Sep 2023 10:50:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRC0-0000yc-8f for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgRBy-0000Uu-0s for qemu-devel@nongnu.org; Wed, 13 Sep 2023 10:50:12 -0400 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-113-y7iLPsbcMKmAMtYbXxdYiA-1; Wed, 13 Sep 2023 10:50:07 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 5B5D5100AF29 for ; Wed, 13 Sep 2023 14:50:07 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.194.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7E06A7D4E4; Wed, 13 Sep 2023 14:50:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694616609; 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=otjEfooNuOif7HkdZH8mcdrv7l5FqBVatZP1E7Xnp/c=; b=NYqqjW5tLF9B6zFUAEAb+svqYq77+WQ/IE6fvuKl5jsS+ShmEGQiNp8jxcvLocfj5nrMEj 1YsaOF7S1h8f0xD5Y07UWDXRlGHF/YHTHXhsgOd2RUCsTTjbDdjlYno3vjixG+/ZLTCpSH nEzxxSQkiJrlkBMU94TAVqgm6tF0QsU= X-MC-Unique: y7iLPsbcMKmAMtYbXxdYiA-1 From: Laszlo Ersek To: lersek@redhat.com, qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Subject: [PATCH 4/4] ui/console: sanitize search in qemu_graphic_console_is_multihead() Date: Wed, 13 Sep 2023 16:49:59 +0200 Message-Id: <20230913144959.41891-5-lersek@redhat.com> In-Reply-To: <20230913144959.41891-1-lersek@redhat.com> References: <20230913144959.41891-1-lersek@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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=170.10.129.124; envelope-from=lersek@redhat.com; helo=us-smtp-delivery-124.mimecast.com 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_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1694616670615100001 Content-Type: text/plain; charset="utf-8" qemu_graphic_console_is_multihead() declares the graphical console "c" a "multihead" console if there are two different graphical consoles in the system that (a) both reference "c->device", and (b) have different "c->head" numbers. In effect, if at least two graphical consoles exist that are different heads of the same device that underlies "c". In fact, "c" may be one of these two graphical consoles, or "c" may differ from both of those consoles (in case "c->device" has at least three heads). The loop currently uses this awkward "two different consoles" approach because the function used not to have access to "c", only to "c->device", which didn't allow for fetching (and comparing) "c->head". But, we've changed that in the last patch; we now pass all of "c" to qemu_graphic_console_is_multihead(). Thus, look for the *first* (and possibly *only*) graphical console, if any, that refers to the same "device" as "c", but by a different "head" number. Cc: "Marc-Andr=C3=A9 Lureau" (odd fixer:Graph= ics) Cc: Gerd Hoffmann (odd fixer:Graphics) Signed-off-by: Laszlo Ersek Reviewed-by: Marc-Andr=C3=A9 Lureau --- Notes: context:-U4 ui/console.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ui/console.c b/ui/console.c index 6424820c8521..9ce3c1248c7c 100644 --- a/ui/console.c +++ b/ui/console.c @@ -2367,10 +2367,8 @@ bool qemu_console_is_gl_blocked(QemuConsole *con) =20 static bool qemu_graphic_console_is_multihead(QemuGraphicConsole *c) { QemuConsole *con; - uint32_t f =3D 0xffffffff; - uint32_t h; =20 QTAILQ_FOREACH(con, &consoles, next) { QemuGraphicConsole *candidate; =20 @@ -2382,12 +2380,9 @@ static bool qemu_graphic_console_is_multihead(QemuGr= aphicConsole *c) if (candidate->device !=3D c->device) { continue; } =20 - h =3D candidate->head; - if (f =3D=3D 0xffffffff) { - f =3D h; - } else if (h !=3D f) { + if (candidate->head !=3D c->head) { return true; } } return false;