From patchwork Fri Mar 21 18:35:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 875259 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp1022835wrb; Fri, 21 Mar 2025 11:36:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUmeXtHoC76jCRIwotEJJUPYfNDz9lS0peBiTBnEIrswHKLIfMzdH7NfKA3ynQAnKeqf4MdZQ==@linaro.org X-Google-Smtp-Source: AGHT+IF+7MKT5/Lle2SWjdt18cKoOrcwpDxYz4GF8Mx/nFMdVgyJuk5yhrdwQI1BYEiielfASDAy X-Received: by 2002:a05:620a:2806:b0:7c5:5670:bd6f with SMTP id af79cd13be357-7c5ba1fdf05mr804843685a.53.1742582191284; Fri, 21 Mar 2025 11:36:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742582191; cv=none; d=google.com; s=arc-20240605; b=gGHsH9lTqxZTdNfCWN0g8WlmhFBG9DR2EIFuWYfruzXJwZZ27RKH0tFjwDafOGZqeG R0ItCrOkdECTORiPhTNbnILG2NH5VC44HQ1gTrhV9UBkp8wAX+87PFnFEEPN49KsWLQx pynxY9o//jSejrBll9CWeOWWo1fdTB5Tb29BJ8RpZD28bxhLISkX6XSR6yl3jRmvU3c4 SLFCHPTvU0CtS/OFYNjtTdxnS8/Be7sCEUnshfjbTuqE4whkWfYFlURjQOuM/CZqvEQe rCfG5Hr09bD+k2oSOsBBjXmNc2m/Q1ymsZ6sJdhZNl7x1Ae8pklEFtf3ZdVC+9ws5fKL W2mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=hM94b7RjZwD5r8G5ixj1lC759u1MwLyQq0Zg/KCwTz0=; fh=/DE+rSpOVQawA8kfR8wSCbwyM8M1FeY+BUvnMebgqXc=; b=VRMnWxW+iHcDQtWQJUazGmWt6gzorMRfCocwXIN8Idih40fkwmTHPVvV9/5xSjRBYG XYjuZ4JTuVVl13wcUB8AOSI42m2/DCzAhZcY1DjAqSXOlrPQfU2BbHGxP1UDvlTEw98t lLqSlNgN2VvHFegNPUBCK1MPQ4QkCVArYbiiwnV4qt51Tq3AV2S7wv4SwVWej3awUZOG 6rpnFomkWjdAdpoOzoZwwM/GGcblPWq1Iw41w7sKtRumzaDbMIahPWRc7NJRyy+AuI0m HM+xv0sdrxaI39ut0+nE1zUhuoBYCq6haZrXU4Ue+tZjDqvllbqUB8uYPvEj8KHFcckZ 3bkA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R7WokSoJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c5b9382c77si229053285a.653.2025.03.21.11.36.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Mar 2025 11:36:31 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R7WokSoJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvhE9-0001FO-IV; Fri, 21 Mar 2025 14:36:17 -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 1tvhE5-00014x-U9 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:14 -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 1tvhE4-00070X-5X for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742582171; 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=hM94b7RjZwD5r8G5ixj1lC759u1MwLyQq0Zg/KCwTz0=; b=R7WokSoJFIug2d95ofE+KkPZja6umwlJ/F7LbPOPCEJLZ+ynC1gGRO0RbiKRFfTPeFQhwb 5pIvT1OJH/7uxjCf/ArW/sEQ7pBf2q7lACwkJXTbJSX/lOEyWep3GOJdqgf8tjAy2DMmyh Qw/IroJYRfTxaeSMsbxV4flytCCFJqA= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-529-lrLPxnuIMnujFumsoRIo1Q-1; Fri, 21 Mar 2025 14:36:10 -0400 X-MC-Unique: lrLPxnuIMnujFumsoRIo1Q-1 X-Mimecast-MFC-AGG-ID: lrLPxnuIMnujFumsoRIo1Q_1742582169 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-43d025a52c2so16562385e9.0 for ; Fri, 21 Mar 2025 11:36:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742582168; x=1743186968; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hM94b7RjZwD5r8G5ixj1lC759u1MwLyQq0Zg/KCwTz0=; b=gSdpQP2oZz7H+esM4Y5+NVVBY0VtzB/jqhPj7qOoAKHecWBd6DgIBTxJ+5eN/scJuf JnepCSHwrH6mDwHTBW1+Gkv6BnXMKN4TIjuhyIeddLrl/U14K59VV13GydZ+PQOP2zX+ m6U+f1I7xualBTzy7e+2ZqXCzesoS8KtHH9GN2KduTVhrpkW3hbyNnwEWLHPF9Y2ZWWI /OAsGtRizoU4CdxZOYrzIFSo0X+iDRebk1xp/Dps2lXkmABfwBWQdMkySXnD7zOrVqD2 1CJMT7ePtxvVO60W8gw3lS+GAyz+VugpB+es8TRy2PX8ZS38Q9cLZM+ZFgovbwNPsl4v WVug== X-Gm-Message-State: AOJu0YwiiV+2IS/4bPgl9WkA8ewjLFc3uInl1ciRQClzbtYLzo4UipRE +iMFz0mR8lZPEdtShRRMptcoJeed1C5ECC2QdfUeNmQNGDJ0TTZDsa80IgBz4QlzzqycggKCFIq m5EleqgcB0bjJt19rmSUsO6KaeE/RszOaYjpDOSK4TVIkA74DQL0BUG9aLwYzkemkQwKIH49qic jcS/W0DH/s/yLbAdvxj2FqJMv069b1xlq5+umh X-Gm-Gg: ASbGncvQwsxiPyVs3lim+JAntayTiaDzt14W9XKfqrboMqN7cQX7SBKTydXNk4sm4Jy fPYaPxRghviUXhlWhSegFc1jj1UxAwWL+YzEnqO++N3n9lhDadi8WmHejiZAMmsZvbCcb8iaF9r Co4aq+ywh9UDPvXmrsDhEQxYcyCgyFItbIQoNpS268dwzq75SozeTjPekUFsaDuFEhwiMSlfYIX 70fxxGaPC9o9I5DwRhPSo4XQrxh4/VlW5JEY7kdsgEfA9IBOhL6B7LJigApRdWfRvjRASPJHzjd SJZGI0eXfbnIBAEJUO4G X-Received: by 2002:a05:600c:4ed3:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43d509f8503mr48205675e9.17.1742582167648; Fri, 21 Mar 2025 11:36:07 -0700 (PDT) X-Received: by 2002:a05:600c:4ed3:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43d509f8503mr48205545e9.17.1742582167097; Fri, 21 Mar 2025 11:36:07 -0700 (PDT) Received: from [192.168.122.1] ([151.49.194.153]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d4174f8d3sm55870665e9.0.2025.03.21.11.36.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 11:36:06 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Peter Maydell , Tanish Desai , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 01/24] rust: Kconfig: Factor out whether PL011 is Rust or C Date: Fri, 21 Mar 2025 19:35:33 +0100 Message-ID: <20250321183556.155097-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250321183556.155097-1-pbonzini@redhat.com> References: <20250321183556.155097-1-pbonzini@redhat.com> MIME-Version: 1.0 Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Currently every board that uses the PL011 duplicates the logic that selects the Rust implementation if Rust was enabled and the C implementation if it does not. Factor this out into a separate Kconfig stanza, so that boards can go back to simply doing "select PL011" and get whichever implementation is correct for the build. This fixes a compilation failure if CONFIG_VMAPPLE is enabled in a Rust build, because hw/vmapple/Kconfig didn't have the "pick the Rust PL011 if Rust is enabled" logic in it. Fixes: 59f4d65584bd33 ("hw/vmapple/vmapple: Add vmapple machine type") Reported-by: Tanish Desai Analyzed-by: Tanish Desai Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Link: https://lore.kernel.org/r/20250319193110.1565578-2-peter.maydell@linaro.org Signed-off-by: Paolo Bonzini --- hw/arm/Kconfig | 30 ++++++++++-------------------- hw/char/Kconfig | 6 ++++++ hw/char/meson.build | 2 +- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 15200a2d7e7..a55b44d7bde 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -21,8 +21,7 @@ config ARM_VIRT select PCI_EXPRESS select PCI_EXPRESS_GENERIC_BRIDGE select PFLASH_CFI01 - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL031 # RTC select PL061 # GPIO select GPIO_PWR @@ -75,8 +74,7 @@ config HIGHBANK select AHCI_SYSBUS select ARM_TIMER # sp804 select ARM_V7M - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL022 # SPI select PL031 # RTC select PL061 # GPIO @@ -89,8 +87,7 @@ config INTEGRATOR depends on TCG && ARM select ARM_TIMER select INTEGRATOR_DEBUG - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL031 # RTC select PL041 # audio select PL050 # keyboard/mouse @@ -108,8 +105,7 @@ config MUSCA default y depends on TCG && ARM select ARMSSE - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL031 select SPLIT_IRQ select UNIMP @@ -173,8 +169,7 @@ config REALVIEW select WM8750 # audio codec select LSI_SCSI_PCI select PCI - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL031 # RTC select PL041 # audio codec select PL050 # keyboard/mouse @@ -199,8 +194,7 @@ config SBSA_REF select PCI_EXPRESS select PCI_EXPRESS_GENERIC_BRIDGE select PFLASH_CFI01 - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL031 # RTC select PL061 # GPIO select USB_XHCI_SYSBUS @@ -224,8 +218,7 @@ config STELLARIS select ARM_V7M select CMSDK_APB_WATCHDOG select I2C - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL022 # SPI select PL061 # GPIO select SSD0303 # OLED display @@ -285,8 +278,7 @@ config VEXPRESS select ARM_TIMER # sp804 select LAN9118 select PFLASH_CFI01 - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select PL041 # audio codec select PL181 # display select REALVIEW @@ -371,8 +363,7 @@ config RASPI default y depends on TCG && ARM select FRAMEBUFFER - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select SDHCI select USB_DWC2 select BCM2835_SPI @@ -448,8 +439,7 @@ config XLNX_VERSAL select ARM_GIC select CPU_CLUSTER select DEVICE_TREE - select PL011 if !HAVE_RUST # UART - select X_PL011_RUST if HAVE_RUST # UART + select PL011 # UART select CADENCE select VIRTIO_MMIO select UNIMP diff --git a/hw/char/Kconfig b/hw/char/Kconfig index 3f702565e67..9d517f3e287 100644 --- a/hw/char/Kconfig +++ b/hw/char/Kconfig @@ -11,6 +11,12 @@ config PARALLEL config PL011 bool + # The PL011 has both a Rust and a C implementation + select PL011_C if !HAVE_RUST + select X_PL011_RUST if HAVE_RUST + +config PL011_C + bool config SERIAL bool diff --git a/hw/char/meson.build b/hw/char/meson.build index 86ee808cae7..4e439da8b9e 100644 --- a/hw/char/meson.build +++ b/hw/char/meson.build @@ -9,7 +9,7 @@ system_ss.add(when: 'CONFIG_ISA_BUS', if_true: files('parallel-isa.c')) system_ss.add(when: 'CONFIG_ISA_DEBUG', if_true: files('debugcon.c')) system_ss.add(when: 'CONFIG_NRF51_SOC', if_true: files('nrf51_uart.c')) system_ss.add(when: 'CONFIG_PARALLEL', if_true: files('parallel.c')) -system_ss.add(when: 'CONFIG_PL011', if_true: files('pl011.c')) +system_ss.add(when: 'CONFIG_PL011_C', if_true: files('pl011.c')) system_ss.add(when: 'CONFIG_SCLPCONSOLE', if_true: files('sclpconsole.c', 'sclpconsole-lm.c')) system_ss.add(when: 'CONFIG_SERIAL', if_true: files('serial.c')) system_ss.add(when: 'CONFIG_SERIAL_ISA', if_true: files('serial-isa.c')) From patchwork Fri Mar 21 18:35:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 875260 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp1023401wrb; Fri, 21 Mar 2025 11:37:57 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWzLgVActmJF2ROCtDPoOlgWYPWl64hwrA22btVZoRClonEpfchELml+1+pJ6m/U4JfwZqlwQ==@linaro.org X-Google-Smtp-Source: AGHT+IGCgtfuWldqCYgRDzKee5DxayQySCjpgJqGDj9AQQaJSFNoRRL7U/TpwnRK/c8rJO3OqjrF X-Received: by 2002:a05:622a:4ccb:b0:471:f482:bba7 with SMTP id d75a77b69052e-47710cd3221mr138825471cf.22.1742582277604; Fri, 21 Mar 2025 11:37:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742582277; cv=none; d=google.com; s=arc-20240605; b=iinOxsEYwGLSbj4fqcv7qlV8SH9bKlPFAb8jCy5T+TQ9qGekhY7kx76eFihsgRgFag TnnjJSAjkNBP85DTBCmXHZJsvVfIAOz9S0USx6z/0k99j0+ZWwaPO4ji2a8WMqWl0gdJ XCptOLZElCwiXYLSOTcIix7fSXvqEzQt5MYXffdbhr0N9WvRsM3LcS0ghu5AhiA60Nfn qVc5fdMcP/fATrddQcVQPXQai9wvVq0pnLBWcaWnYExmcukyTcladGfwH+QOa6p5OnFJ MSRJ01kmfxdnTODEYjKDLIqrExCI8eVguTGieR4WkcSoAKI4lwYNjno6j6bwToznqi5+ yZQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=DVg1tbjHDlf8QclYlE4W/Yr+fT0nQXJyVq0t9o0sx40=; fh=tOREyZHlK9Diwyw/7bj5IUyLT4I5EVkj5DE8XDtMiTs=; b=jDEnI71cR+9LMoAL0PrNv9f+glZERaRsLImdpJOybF5WZvrUhN8fnnI1bDih8Kn5PM 8wy64n9DiRgnz/U0KH8H058vtSHzLHHoy98+9gmeL3z51+aNF0Ef549hjORx53RfRHjw 8lLA8oEe7N01XQGI66ITZgN3MT5hmGj/uiiqv5y2f211JQxk3eTdcg7QiHf+oEMqKwg7 cSLCSI88O9Qll9SYluOzP3aMdI5hI1vm9gtfdbfaT1ayCcMAoaGpwQX1AaND3AY97CF2 8vyt4HsuHKL4LgV/JXT0gtQwyG08dJsIi706qddLGNYj1Da6HqTL7jVR8l4hFo2eR9HL 9yUg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=JpLh63YU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4771d527806si22359161cf.418.2025.03.21.11.37.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Mar 2025 11:37:57 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=JpLh63YU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvhED-0001Xd-QW; Fri, 21 Mar 2025 14:36: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 1tvhEA-0001KN-3a for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:18 -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 1tvhE8-00070u-30 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742582175; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DVg1tbjHDlf8QclYlE4W/Yr+fT0nQXJyVq0t9o0sx40=; b=JpLh63YUQark/EQG+b+GfP6cOhYxNtJngeWdgHL0zrupG/v/ARfyhqISkH/dk2Njy4JRY4 CCle8Jj29H9y0Zo1su+FRcH9wW6e5sEq4lIba6DpGeOY71L+VxNdOcS2Pd3Vu+593K15qO MNAqgKGmZ7Btz9vXPCjeQRRiNA0+gfM= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-274-RJ-JoDZPMLKniy4de0iqKQ-1; Fri, 21 Mar 2025 14:36:13 -0400 X-MC-Unique: RJ-JoDZPMLKniy4de0iqKQ-1 X-Mimecast-MFC-AGG-ID: RJ-JoDZPMLKniy4de0iqKQ_1742582172 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-39131851046so1011397f8f.0 for ; Fri, 21 Mar 2025 11:36:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742582171; x=1743186971; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DVg1tbjHDlf8QclYlE4W/Yr+fT0nQXJyVq0t9o0sx40=; b=PnqNAUsWdcG/S7hlcYybY3haEMQjRZ0DGtgtduK+O6zVIfSjC0TvqlVPaRRkF97C3H T5wrkvfg0ClcsSjbX7aPTtUdKtdW4i0JYtR9RLUtoOtDzj5aLoN0Vi5I3CNIPiUsgOwB LvG99ZjydNKmlromGnnhEVhS5qfwCmPyleGoTJTGSg9HlpTLR8KklbdqkeTfrujoEqkA duz1rgiw8J1OmU+Fju+13jeRe3Ug8XcWu5Lqr5GG4ZE+5ZjwNyKGjqwomNh7YtKLZLqX 60o4YprvgKokmyOXhfk6p6+RbOaO4jg4YtXBFhPeyvvgDhnWglLaCuV4tGpeDV+oQouv ntCQ== X-Gm-Message-State: AOJu0YwmGswNx5bjeTCDxG0P9o8ECMR22fDJARFyejdyUdyyPOgig2V9 NNauD8Kv7OrC9uFWSRDb54UIyg+ap+oVTB8d3RmB5nfuDe1PZCptXvBxnxo5bWcqyURjpPiOtJ0 j9df0mxF0T9OGGE6AOq8FWJ+7DS2JfQGyNwQs/20wG+/m6Onl8bFKhbmAdI9CNpivKa2A5loODk Webc8t2KsrbYol4Jn7H+BgdQh/xbsMFG3q+d0r X-Gm-Gg: ASbGncslBDpj25K6l62Fyn3h/BpxfSGQNiZddtTcbwX0tX4rXP29ylB6gDJX1xARo2Y ctBXtcdLpT5jkMGTFQaGwpef7q/RS+Rod8bg6m7laMnimFYSNzlUubB5XVmCzZFlbQwxPwzS87U hTJTvfzGj6sOCvL+NPCfy9s0OdTxP62isMdCJR+JHe4ZkQlrsixDVJ9WHmq+QfL+UrbwFDZ6VzB jU+wIQ240TUhOr9J8tA29EY7uWWPl2nfRMrhm3H69wDem63L/BP4NlleWD0YS+eCzp7TwVW699R JkzN447Z5Bk5WcFiVdoB X-Received: by 2002:a05:6000:184d:b0:391:2391:2f79 with SMTP id ffacd0b85a97d-3997f932e9dmr4775099f8f.43.1742582170821; Fri, 21 Mar 2025 11:36:10 -0700 (PDT) X-Received: by 2002:a05:6000:184d:b0:391:2391:2f79 with SMTP id ffacd0b85a97d-3997f932e9dmr4775074f8f.43.1742582170253; Fri, 21 Mar 2025 11:36:10 -0700 (PDT) Received: from [192.168.122.1] ([151.49.194.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3997f9a345fsm3021188f8f.24.2025.03.21.11.36.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 11:36:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 02/24] rust: Kconfig: Factor out whether HPET is Rust or C Date: Fri, 21 Mar 2025 19:35:34 +0100 Message-ID: <20250321183556.155097-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250321183556.155097-1-pbonzini@redhat.com> References: <20250321183556.155097-1-pbonzini@redhat.com> MIME-Version: 1.0 Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Currently we require everywhere that wants to know if there is an HPET device to check for "CONFIG_HPET || CONFIG_X_HPET_RUST". Factor out whether the HPET device is Rust or C into a separate Kconfig stanza, so that CONFIG_HPET means "there is an HPET", and whether this has pulled in CONFIG_X_HPET_RUST or CONFIG_HPET_C is something the rest of QEMU can ignore. Signed-off-by: Peter Maydell Link: https://lore.kernel.org/r/20250319193110.1565578-3-peter.maydell@linaro.org Signed-off-by: Paolo Bonzini --- configs/devices/i386-softmmu/default.mak | 1 - hw/i386/fw_cfg.c | 2 +- hw/i386/pc.c | 2 +- hw/timer/Kconfig | 8 +++++++- hw/timer/meson.build | 2 +- rust/hw/timer/Kconfig | 1 - tests/qtest/meson.build | 3 +-- 7 files changed, 11 insertions(+), 8 deletions(-) diff --git a/configs/devices/i386-softmmu/default.mak b/configs/devices/i386-softmmu/default.mak index 9ef343cace0..4faf2f0315e 100644 --- a/configs/devices/i386-softmmu/default.mak +++ b/configs/devices/i386-softmmu/default.mak @@ -6,7 +6,6 @@ #CONFIG_APPLESMC=n #CONFIG_FDC=n #CONFIG_HPET=n -#CONFIG_X_HPET_RUST=n #CONFIG_HYPERV=n #CONFIG_ISA_DEBUG=n #CONFIG_ISA_IPMI_BT=n diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c index a7f1b60b98c..5c0bcd5f8a9 100644 --- a/hw/i386/fw_cfg.c +++ b/hw/i386/fw_cfg.c @@ -26,7 +26,7 @@ #include CONFIG_DEVICES #include "target/i386/cpu.h" -#if !defined(CONFIG_HPET) && !defined(CONFIG_X_HPET_RUST) +#if !defined(CONFIG_HPET) struct hpet_fw_config hpet_fw_cfg = {.count = UINT8_MAX}; #endif diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 63a96cd23f8..01d0581f62a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1704,7 +1704,7 @@ static void pc_machine_initfn(Object *obj) pcms->sata_enabled = true; pcms->i8042_enabled = true; pcms->max_fw_size = 8 * MiB; -#if defined(CONFIG_HPET) || defined(CONFIG_X_HPET_RUST) +#if defined(CONFIG_HPET) pcms->hpet_enabled = true; #endif pcms->fd_bootchk = true; diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig index 9ac00845340..b3d823ce2c3 100644 --- a/hw/timer/Kconfig +++ b/hw/timer/Kconfig @@ -11,7 +11,13 @@ config A9_GTIMER config HPET bool - default y if PC && !HAVE_RUST + default y if PC + # The HPET has both a Rust and a C implementation + select HPET_C if !HAVE_RUST + select X_HPET_RUST if HAVE_RUST + +config HPET_C + bool config I8254 bool diff --git a/hw/timer/meson.build b/hw/timer/meson.build index f5f9eed2d0a..178321c029c 100644 --- a/hw/timer/meson.build +++ b/hw/timer/meson.build @@ -13,7 +13,7 @@ system_ss.add(when: 'CONFIG_DIGIC', if_true: files('digic-timer.c')) system_ss.add(when: 'CONFIG_EXYNOS4', if_true: files('exynos4210_mct.c')) system_ss.add(when: 'CONFIG_EXYNOS4', if_true: files('exynos4210_pwm.c')) system_ss.add(when: 'CONFIG_GRLIB', if_true: files('grlib_gptimer.c')) -system_ss.add(when: 'CONFIG_HPET', if_true: files('hpet.c')) +system_ss.add(when: 'CONFIG_HPET_C', if_true: files('hpet.c')) system_ss.add(when: 'CONFIG_I8254', if_true: files('i8254_common.c', 'i8254.c')) system_ss.add(when: 'CONFIG_IMX', if_true: files('imx_epit.c')) system_ss.add(when: 'CONFIG_IMX', if_true: files('imx_gpt.c')) diff --git a/rust/hw/timer/Kconfig b/rust/hw/timer/Kconfig index 42e421317a5..afd98033503 100644 --- a/rust/hw/timer/Kconfig +++ b/rust/hw/timer/Kconfig @@ -1,3 +1,2 @@ config X_HPET_RUST bool - default y if PC && HAVE_RUST diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 5a8c1f102c2..3136d15e0f8 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -103,8 +103,7 @@ qtests_i386 = \ config_all_devices.has_key('CONFIG_VIRTIO_PCI') and \ slirp.found() ? ['virtio-net-failover'] : []) + \ (unpack_edk2_blobs and \ - (config_all_devices.has_key('CONFIG_HPET') or \ - config_all_devices.has_key('CONFIG_X_HPET_RUST')) and \ + config_all_devices.has_key('CONFIG_HPET') and \ config_all_devices.has_key('CONFIG_PARALLEL') ? ['bios-tables-test'] : []) + \ qtests_pci + \ qtests_cxl + \ From patchwork Fri Mar 21 18:35:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 875261 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp1023597wrb; Fri, 21 Mar 2025 11:38:29 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVDHIpCKTbzL+tCDDP69XCL/mVs2DkG425QJstGD/46/GPx+AxLRb0ZZu12+mhFbujj+uCtfg==@linaro.org X-Google-Smtp-Source: AGHT+IHLXN9gFXFQGxh0omyPbqtIQncOUpfbxtmQ/HTq1HgTZ9+RG6p4QeS/qK3veV6d+nGHWv5k X-Received: by 2002:a05:622a:1144:b0:476:fd69:ccb with SMTP id d75a77b69052e-4771dd93d43mr76175491cf.27.1742582309198; Fri, 21 Mar 2025 11:38:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742582309; cv=none; d=google.com; s=arc-20240605; b=Gt3JnYFfejlrb88As/FD/YkEH4oNvhJuGwS76sFAxWyxIcasyBtiyTabdn/8eVyl3X gDBsXCTGDgh+WwEWGGgBnuW4gvGnpgKasbYblocluhiVP9EFv+WczorCO1NC3KmD/ZcO Z9f0spa7GPTMkL0Aj1q5cTJ9qpSncxru8NkfqEN1U7B2sfd2Dyd8aAVSYOQDuCItecoK mWdiRW4hNE7RAxrQIUcCVhLE4Fc1wOTvCfy7wHQPF65mjgHaZgs6mbYptmFC9bvKE/Rs 7ONTcKZIJGGde5tfeMNI5/Z9Fq5+ej2+VR6gDLkcpzkEy1pwzwyL4WZTmH+ylOP4rNHp UMdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kmzz+Z10cF8s6oKBzeZDluVa8sEBlKEmjUCkAgJ5/6I=; fh=TOmzLkIg3Avn3G6XrS0Tvpz93AMau8AeCcR3WyPrFlg=; b=PcDQkTHOooH1F/FTzadZji8yP3aa5AhRcPIkVGJmnGg9M3rfl6F3lTLNH5VCiKBv1r 7yLIHYOJqPobmOJkS0B/YP/728gSJmBALBxyuqkgWioVjOyV2g6taxgL57CVl0jrtXy8 uwAByBMYI1okeScTt45qWqhDu4wmnaA+7kp9yakAaK3xpLxBGIK1OY7Qy/KdELwiZ2gy baSsQn9HHNpCA8rgEUUnrYmRGEoAsCmfeW3ems9TfEAo8/zOLSGpzKrT5E/vF5nOEez9 nUIr/OgoRgWvtDvmqpWWOmeOo3T/jFpIiinOd9FBWgrUIq5yR3vazbYondGOKXKzZNzL qJNA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=H8B92rHV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4771d1817c3si22508301cf.143.2025.03.21.11.38.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Mar 2025 11:38:29 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=H8B92rHV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvhEK-00025s-OV; Fri, 21 Mar 2025 14:36:29 -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 1tvhEE-0001c7-My for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:22 -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 1tvhED-000726-4y for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742582180; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kmzz+Z10cF8s6oKBzeZDluVa8sEBlKEmjUCkAgJ5/6I=; b=H8B92rHV6umBp2kGbM9xxYqLLXz+0Gk7CKfnPJqOefFUaZbOIPXTPHb5SjKGLZd80pbOwF 85SDOJOO5bJwZK2jGSu4X8DVPdWMXJ8++42LYvD5iWPuId6H5ch6j8u5oL+1jprXjQ0/1W F8dHeBZtYLjx20HBNkzTNC0CFQZz15g= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-594-o1X-onHtN9O72CbQe23b0g-1; Fri, 21 Mar 2025 14:36:19 -0400 X-MC-Unique: o1X-onHtN9O72CbQe23b0g-1 X-Mimecast-MFC-AGG-ID: o1X-onHtN9O72CbQe23b0g_1742582178 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ac25852291cso195405666b.2 for ; Fri, 21 Mar 2025 11:36:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742582176; x=1743186976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kmzz+Z10cF8s6oKBzeZDluVa8sEBlKEmjUCkAgJ5/6I=; b=mPw1hpo9OqD5OFH8J2X4X72WNwHreGMGprx8VZHaAwM5f9S0OxELUnLPeubiBMysOd csKxSr9GURtM4y9/smosz7gn4megV3VDCYTyqUmXyT9FB0xIlskn6X725vc1D3FsG4fr 0ko4xUQ0NPqDfCRT1F+WAT9wZq9PS9Age3Zu11S2A14hrOEVzxSmjjH6T9rrpicRBHv5 uKGbb7qKpUxm++/gvlC7fDwKfh3/M2gGKNGGlRK7x/qYtbfNMM1fHxoHT5w4Wq2H48AJ DICq23XTcRoZSJ1s60vjf8RiGjZzinJJf9elWLxDPmnytj+VEUMsA29+vzvL9WTRfVAh X0Cw== X-Gm-Message-State: AOJu0YzabG//H28ZR5nvYCWoebjcX8eivHo3GHsfGJbuI1vHFDAE85+m mZjLoOMtjkzNYUITfBO850CWMNNIhD056sqTo55gjMBxDxrqjQdTyDvNVMkU8M6gh4wLGvu5mCy Cb61XQEdL5klrEswzOfEnD2UkHZZlk1TiDdez4LUnREqTZiUTbct08qfjX0kV3Pgb//NXSmydJE bF6DWD/oRqal0TkjA2YMEgZufPyDlSTdAth9zm X-Gm-Gg: ASbGncv4IucfjgCcYdv0COjQqxuPKIyQl3h9OHZhUywxqpzJ9StqXmon/MZmvUTA+5T qbuAtSFHy/MGG9oaYSQxdmTCeMhVteudHFgvLI00KBpkl3RZhTkpmiEv1iF5LklUpW+1ge6/Sw1 lsjpneE9stA0/Q3gysp2i16slnwPE+3k9o/EFYBTY4bb2R3fgz6hogEGeHcTaxD4q+EKBHv1oOD 4PGWIGABoeyzkkP7A1nbzJh8jW2keWy9C6/E9gKkZAZzvq6Y3Rn8BJIdH1djpUbzag0XUuQBSqe aLtZwWDSF7J+3Ez68RhV X-Received: by 2002:a17:907:3ea2:b0:ac2:baab:681c with SMTP id a640c23a62f3a-ac3f22b2bddmr421988166b.28.1742582176360; Fri, 21 Mar 2025 11:36:16 -0700 (PDT) X-Received: by 2002:a17:907:3ea2:b0:ac2:baab:681c with SMTP id a640c23a62f3a-ac3f22b2bddmr421983866b.28.1742582175873; Fri, 21 Mar 2025 11:36:15 -0700 (PDT) Received: from [192.168.122.1] ([151.49.194.153]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac3efb51cebsm194768966b.107.2025.03.21.11.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 11:36:14 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Peter Maydell , Zhao Liu Subject: [PULL 05/24] hw/char/pl011: Pad PL011State struct to same size as Rust impl Date: Fri, 21 Mar 2025 19:35:37 +0100 Message-ID: <20250321183556.155097-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250321183556.155097-1-pbonzini@redhat.com> References: <20250321183556.155097-1-pbonzini@redhat.com> MIME-Version: 1.0 Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell We have some users of the PL011 struct which embed it directly into their own state structs. This means that the Rust version of the device must have a state struct that is the same size or smaller than the C struct. In commit 9b642097d6b7 ("rust: pl011: switch to safe chardev operation") the Rust PL011 state struct changed from having a bindings::CharBackend to a chardev::CharBackend, which made it grow larger than the C version. This results in an assertion at startup when QEMU was built with Rust enabled: $ qemu-system-arm -M raspi2b -display none ERROR:../../qom/object.c:562:object_initialize_with_type: assertion failed: (size >= type->instance_size) The long-term better approach to this problem would be to move our C device code patterns away from "embed a struct" and (back) to "have a pointer to the device", so we can make the C PL011State struct a private implementation detail rather than exposed to its users. For the short term, add a padding field at the end of the C struct so it's big enough that the Rust state struct can fit. Fixes: 9b642097d6b7 ("rust: pl011: switch to safe chardev operation") Reviewed-by: Zhao Liu Signed-off-by: Peter Maydell Link: https://lore.kernel.org/r/20250321112523.1774131-3-peter.maydell@linaro.org Signed-off-by: Paolo Bonzini --- include/hw/char/pl011.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/hw/char/pl011.h b/include/hw/char/pl011.h index 4fcaf3d7d30..299ca9b18bb 100644 --- a/include/hw/char/pl011.h +++ b/include/hw/char/pl011.h @@ -52,6 +52,11 @@ struct PL011State { Clock *clk; bool migrate_clk; const unsigned char *id; + /* + * Since some users embed this struct directly, we must + * ensure that the C struct is at least as big as the Rust one. + */ + uint8_t padding_for_rust[16]; }; DeviceState *pl011_create(hwaddr addr, qemu_irq irq, Chardev *chr); From patchwork Fri Mar 21 18:35:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 875262 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp1024172wrb; Fri, 21 Mar 2025 11:39:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWrBxDjkLYQj8T2HMxQtBapcz9fCzizW4iom98Yta8OapJaxgTUsyJ4BPKmdJpuMUIUwDG5eQ==@linaro.org X-Google-Smtp-Source: AGHT+IFxHbCxUlC4JMSwUO/njll6ae+pFAJiiIfjuTbhRolZkAbOHtytb0i5QB451OLoXa2rwQUw X-Received: by 2002:a05:620a:1a91:b0:7c5:5d9b:b626 with SMTP id af79cd13be357-7c5ba1ee90emr635792885a.36.1742582391084; Fri, 21 Mar 2025 11:39:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742582391; cv=none; d=google.com; s=arc-20240605; b=OuOuMrrsaLDpGROyytQuzjR7rAr5XBYRMQJwtB6BhSa6HIuCs2daFvrwRkbC783Fci RQf7ddqK6/El/i0bhxTRhmLsOZYC9iraYz+juwtQouSg3jmgfeegE9wbiDwE7mhCK6SI osXJ8/K5FK2L9ln3fGYMRzM/6dsNAQv7KN8NOV+wdCNQxpqiAiJFVvmgZvgqRSQStS/J JFye6svLNziaioXdIu8r6AdYjHuQSI0VNtHKWeS6ttNNaVBcACqNJp/nCTiQMjFGBua5 985RpiwJpPMJmrm4cXBgJNwg2QVvcWSa+Cno2EeHYV24gHzvp93AlkhbcOQKfJc0yTBf o8pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GxdsFjP0x5vh9Jd/1Uxx3cGM8EOg2J+L3U1w2scPDrQ=; fh=TOmzLkIg3Avn3G6XrS0Tvpz93AMau8AeCcR3WyPrFlg=; b=UNZwILe2Wlk1P5L2LmXj4+Pe6liHv/gBSo+Y3IwSlvFDwA7hcfbITD4rsqBUOWj1ZV 9HDNzj8WYyFjO2/opj9f7z4/Ydj6jLP+REQKpVs8LN6IvsEc3iueIWzE3lDHE6DegnaA R4ViV+/AQwvAslTFPl8xxBc97tHn54YlAzUpVxBcbmyh778h24pFj6z0+vs6frLeBHqX hHt9l1LnPGkN0eSwV6S6Fxhmo152kqVh46vL3zXT1a+1mrfEKNqaFzHJ8iy95qY7b8UD aGo3Xh+y71Ds+rBWh90Kyv36C+LF4llXq5+fbUd2r5SphQqlkQrfWzcQGOKu0/V4DYkp 56ew==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="dy/5Nynk"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c5b92b275esi230907385a.18.2025.03.21.11.39.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Mar 2025 11:39:51 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="dy/5Nynk"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvhEM-0002Ge-9t; Fri, 21 Mar 2025 14:36:30 -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 1tvhEG-0001kB-Oy for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:24 -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 1tvhEF-00072K-2g for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742582182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GxdsFjP0x5vh9Jd/1Uxx3cGM8EOg2J+L3U1w2scPDrQ=; b=dy/5NynkW1Fa0ic4di4zTGv0GGi8GhLqC4D65l2ns/Y8aJwSPnz4yrskMixv9y9QGgfrSv a93PKmywl1aKnASLDhvzJtwQ4vf1NCt71mHp/3ZGSllItc/pAEmGou1ahZWHjBdHjRkUXN zoPWNgV/kdIv68EjnDVetN5VHcr2tGg= Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-269-7TWddNuRNiO5sNoKOvbR4g-1; Fri, 21 Mar 2025 14:36:20 -0400 X-MC-Unique: 7TWddNuRNiO5sNoKOvbR4g-1 X-Mimecast-MFC-AGG-ID: 7TWddNuRNiO5sNoKOvbR4g_1742582180 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-ac2db121f95so188796966b.1 for ; Fri, 21 Mar 2025 11:36:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742582178; x=1743186978; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GxdsFjP0x5vh9Jd/1Uxx3cGM8EOg2J+L3U1w2scPDrQ=; b=M5RXweMCqA1aY9xZkugS5gK0NPRbO9Xzsj3R856cfi0NITeoHjZDueF/G6gR+vbvMA MQShFXpTRrx7MPoBgpLCmFM20rB/I82O5/PKpqjRapC4+nVwcNq85TTX2j/oAkAkhGGn 16tFrx0WrYNvarBPIhZxlcYv2z2/e0XNMOw2BWTIPqt/7de94bjWZBC77XQ6SIpfEW6J jWXSeRYET9369ijlcxJPUI7G4OGazwbUxCFlC+uEHNkwJsWFl9ur5eTFR46/JWeNnKRJ VuVwgjEdalFQFQSZFNL4Z8l8/MayWiUfgBWytzGLHNOtCXkctAzN+ijG3fN1lQUf++Ij u6kw== X-Gm-Message-State: AOJu0YzoEwo+6K28hp0KEWFr2nNydQ6yADxVbyK1wHL7UKxs1aVfC5JC mWSD2tT/r6pgVBiez/TpJOeII8DDcE1k8yDiCH6n+rWEdE1pNcFqm8O4lhNlIOFLUHlHe70WpoK MTfK4Ea7Mo5CDv3amHDpXOqSD/pdKaA8BAEVORbNoroyOvEhAt0xcdi37iUQ2Cl2l0UVhqbYnbb w2jiJN9Q5AsdJBmfw13b768THRUdfvb2ZupLJd X-Gm-Gg: ASbGncsUJpl38MsZ8AEWh4WbCN2F6kZ/XPPczQ2RkzZ5mSirsxX6gnl+jrInKCHE16o MGPdNHT1wq71DmUYM88k2uU04HvONXSVVS2G3lw1dzBihsYGBaLWUXt8vFJ02XVNOcAVDgYgvzw 3MIoIhEis/89ihgZbBWUwW3F81vWKiWN06wiqTXVLVUlz18XHpKSOTIgw14sy1mBjay8s38iOsq DcReLfFIKAMLUGMMNjqrXmC4HExyD3L7uf6JGfQqanGqaOm/HVPq2Ei4Hv4ZAXOJfAIqr5+zoX7 hJE+nHawYelxZTGddHa/ X-Received: by 2002:a17:907:d26:b0:ac3:45b5:f4cc with SMTP id a640c23a62f3a-ac3f25032d1mr453261666b.44.1742582177688; Fri, 21 Mar 2025 11:36:17 -0700 (PDT) X-Received: by 2002:a17:907:d26:b0:ac3:45b5:f4cc with SMTP id a640c23a62f3a-ac3f25032d1mr453258666b.44.1742582177106; Fri, 21 Mar 2025 11:36:17 -0700 (PDT) Received: from [192.168.122.1] ([151.49.194.153]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5ebcd0c7737sm1766637a12.49.2025.03.21.11.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 11:36:16 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Peter Maydell , Zhao Liu Subject: [PULL 06/24] rust: pl011: Check size of state struct at compile time Date: Fri, 21 Mar 2025 19:35:38 +0100 Message-ID: <20250321183556.155097-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250321183556.155097-1-pbonzini@redhat.com> References: <20250321183556.155097-1-pbonzini@redhat.com> MIME-Version: 1.0 Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell The PL011 device's C implementation exposes its PL011State struct to users of the device, and one common usage pattern is to embed that struct into the user's own state struct. (The internals of the struct are technically visible to the C user of the device, but in practice are treated as implementation details.) This means that the Rust version of the state struct must not be larger than the C version's struct; otherwise it will trip a runtime assertion in object_initialize_type() when the C user attempts to in-place initialize the type. Add a compile-time assertion on the Rust side, so that if we accidentally make the Rust device state larger we know immediately that we need to expand the padding in the C version of the struct. Reviewed-by: Zhao Liu Signed-off-by: Peter Maydell Link: https://lore.kernel.org/r/20250321112523.1774131-4-peter.maydell@linaro.org Signed-off-by: Paolo Bonzini --- rust/wrapper.h | 1 + rust/hw/char/pl011/src/device.rs | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rust/wrapper.h b/rust/wrapper.h index d927ad6799d..d4fec546571 100644 --- a/rust/wrapper.h +++ b/rust/wrapper.h @@ -65,3 +65,4 @@ typedef enum memory_order { #include "exec/memattrs.h" #include "qemu/timer.h" #include "exec/address-spaces.h" +#include "hw/char/pl011.h" diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs index f137b49feaf..bf88e0b00a0 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -2,7 +2,7 @@ // Author(s): Manos Pitsidianakis // SPDX-License-Identifier: GPL-2.0-or-later -use std::{ffi::CStr, ptr::addr_of_mut}; +use std::{ffi::CStr, mem::size_of, ptr::addr_of_mut}; use qemu_api::{ chardev::{CharBackend, Chardev, Event}, @@ -12,6 +12,7 @@ prelude::*, qdev::{Clock, ClockEvent, DeviceImpl, DeviceState, Property, ResetType, ResettablePhasesImpl}, qom::{ObjectImpl, Owned, ParentField}, + static_assert, sysbus::{SysBusDevice, SysBusDeviceImpl}, vmstate::VMStateDescription, }; @@ -124,6 +125,12 @@ pub struct PL011State { pub migrate_clock: bool, } +// Some C users of this device embed its state struct into their own +// structs, so the size of the Rust version must not be any larger +// than the size of the C one. If this assert triggers you need to +// expand the padding_for_rust[] array in the C PL011State struct. +static_assert!(size_of::() <= size_of::()); + qom_isa!(PL011State : SysBusDevice, DeviceState, Object); #[repr(C)] From patchwork Fri Mar 21 18:35:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 875263 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp1024498wrb; Fri, 21 Mar 2025 11:40:37 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX/6vlETSdWXe0oGXT1HfNcYJysF2R172vm5Mw4LlBAsE9mkc7BlA6DK7zmwEqQOrOK/vCEdQ==@linaro.org X-Google-Smtp-Source: AGHT+IFq8ZQLap7WPVZAmDQnZ1VN3fYXqwap/Q1ZWmwJ15Y0aA8Klhpvrl6YdJDFwvkUzb80w9f9 X-Received: by 2002:a05:622a:5c9a:b0:476:5fd5:4de6 with SMTP id d75a77b69052e-4771de31d7cmr60982761cf.40.1742582437337; Fri, 21 Mar 2025 11:40:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742582437; cv=none; d=google.com; s=arc-20240605; b=PrjxzIx5h05y0r5kU657NvS+m9zFmVTs7o0RppOQonEMDiswdehnZicG0NlyAH/ym7 wlF7V0WKz1Vg9KwHIoHapoB1HDjpZmhOwRjyl9JxAxLUTv3BcyDVwhTiK5iCIJRwECdt aj3ProE5Hh5GcrwHR5C9Y5LTbgOciaDDlWSGQlTZIsbB+Xp7raI6QA+ty7F5B2SfVsps sUbl8ditdv1hMAtsOUVPOFGIB4xk0VhDSSNW+sj6YSCqv1c0m+4NgJgds4j+DLeAGuFF ROiPjyMeOJMV+MXNicLOTs+wvnj0120ymJUGzFWJCh80dMFBo00O3MvbKd5bpt/LdOdu a6fA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ARwQvT1yfemKSMVduMIcuJwWl7QM1d9mutRu5Jpdvbc=; fh=vm85eyWrvOAHduw3sqEA+cYBqvHB7M0MHFcRJg7VWOo=; b=GKAK+2fBu627DAjpdARe0/GedGYVe2cRHVDdbRRKaPRG30jDv8+skl5LzN+4YHVwlz W5G+4TH9bnpZZhNarOXtaGDH+5Kr1EcRS6QYvZoJsNByykFq8HOvBWNThlhxFNmmHKjc NzsqVvXHVBhr2BxYy7Ai2MBOBRjSWuBd1AALcrLKgj1v9APgpWJiWvU4m8fUAU4U3XLB 1S+bFkiAZOBhlbeAxxexFxsBVas7Yc+sscpLByGKctSQWQrtQhX9zUdcdbu0i3me56Mg j4leeqtD4OPoSn4OMbS6pjv0Zs9n/UruikT/EJWcvgJJMA3fSkJobsVPx4cwMRyghKv+ lcsQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ha3Acsru; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4771d4fe5b4si23183291cf.239.2025.03.21.11.40.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 21 Mar 2025 11:40:37 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ha3Acsru; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=redhat.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvhEV-0002fJ-ET; Fri, 21 Mar 2025 14:36:39 -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 1tvhEN-0002Nl-Bs for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:31 -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 1tvhEL-000732-6u for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:36:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742582188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ARwQvT1yfemKSMVduMIcuJwWl7QM1d9mutRu5Jpdvbc=; b=ha3Acsru2kMEegsAo7IhiRlA4KsrkNdfjbQg2tscmW8LBsaIIeP+OeSRkZBgtJTOGm9h8R i9KuE0vuptrVYqJgXeAKtD+oDP0BykM+yAMSwsk4GxfeXlBjrus8mZj6q3lYdPnHAy/aC2 anbRiwSasqtcJGiLVagQ/bCdEdtNmGc= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-120-agGpQ4-mOYa3yLLE6PuHtA-1; Fri, 21 Mar 2025 14:36:26 -0400 X-MC-Unique: agGpQ4-mOYa3yLLE6PuHtA-1 X-Mimecast-MFC-AGG-ID: agGpQ4-mOYa3yLLE6PuHtA_1742582185 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-43cf172ffe1so16791975e9.3 for ; Fri, 21 Mar 2025 11:36:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742582184; x=1743186984; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ARwQvT1yfemKSMVduMIcuJwWl7QM1d9mutRu5Jpdvbc=; b=gESUC63ObrCJF68W+plpmEqVYMLFYW+dVgZZ8xma7Ac14cQjKYLFM+mQ1Swp+4zxwX NaCXLSPRW/l7ft3+uOYwuRgsdT/6Pj+QpU8INYmiLjLxijx35M8f8bfwmG8GsIxvyyue d1pmz+HYmgmof/8Ml86SGY7d6Z5OJGnHp5AO8i0uTB3ONLxB79bqz95en8JcU99JGw65 BjOgUVp+fpsKgKilTtwchYeodwgExs6CYa0+aHykgqvztcSLRG3vCUf3GePdfSElvoHC zE2DTb6PqmS1e7FN7SsatgtRdOCOHoRpzesPtD74/lq0snRy3QiXqYHAK9KRy5kERBuP +7gA== X-Gm-Message-State: AOJu0YzjTRJCblAUfG6IvMyeZw/6a7XIGMmzZrdekiMiTqGnRJRD+ojJ jtlG7GSP//ZjTZ3AwbmCWENTrU+qm5vmcl69NFb4ilPyMHtvseUOY1yNcMjHaTNyfB+/nHZN9iq e6QPYolgEVeEDv6+gC+Sd3NnIZ8cq1rh5TOH6v+W0KGLQPY5Bg8fcFy+1rqvCBW7gNCIAm0KCpM qtAnBbklJ+EUIWsZcIG1XDki/7W17BizMUr0do X-Gm-Gg: ASbGncsLf5Cl3clRE4LEzDSAEABP/gWfGMxNxIYatF3VZDBDmwYluNZoAMVjQ0NpK33 Q3AScxz68IBCjc5OJEaxy5EtDRM/wgIgKkxvMQqbCiRq43ko30eWyFq4d84o8tCheuH3DORm/NH nx3ReWFhwraVJw7nccxVZ8ox+jNnztMPlDi6VevON2Duwrz0DsDbMvdJoRG25BmUvUoFXWGup2H bbkide9/+RmReAhHM1Mw0y2vPhW/+N3EqAkzlZEf2dAD1vY45v4Fg2MXacJEhmKWGeCTtEbuerH LLkCLNHNMG4RGGC7WoXs X-Received: by 2002:a05:600c:c07:b0:43d:45a:8fc1 with SMTP id 5b1f17b1804b1-43d509e4640mr41408395e9.4.1742582184450; Fri, 21 Mar 2025 11:36:24 -0700 (PDT) X-Received: by 2002:a05:600c:c07:b0:43d:45a:8fc1 with SMTP id 5b1f17b1804b1-43d509e4640mr41408115e9.4.1742582183861; Fri, 21 Mar 2025 11:36:23 -0700 (PDT) Received: from [192.168.122.1] ([151.49.194.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3997f9a3a10sm3012109f8f.28.2025.03.21.11.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 11:36:23 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Pierrick Bouvier Subject: [PULL 08/24] exec/cpu-all: remove BSWAP_NEEDED Date: Fri, 21 Mar 2025 19:35:40 +0100 Message-ID: <20250321183556.155097-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250321183556.155097-1-pbonzini@redhat.com> References: <20250321183556.155097-1-pbonzini@redhat.com> MIME-Version: 1.0 Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.332, 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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Pierrick Bouvier This identifier is poisoned, so it can't be used from common code anyway. We replace all occurrences with its definition directly. Signed-off-by: Pierrick Bouvier Link: https://lore.kernel.org/r/20250320223002.2915728-2-pierrick.bouvier@linaro.org Signed-off-by: Paolo Bonzini --- include/exec/cpu-all.h | 12 ------------ include/exec/poison.h | 1 - linux-user/syscall_defs.h | 2 +- bsd-user/elfload.c | 6 +++--- linux-user/elfload.c | 8 ++++---- 5 files changed, 8 insertions(+), 21 deletions(-) diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index 8cd6c00cf89..47b14446b8f 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -26,18 +26,6 @@ #include "exec/tswap.h" #include "hw/core/cpu.h" -/* some important defines: - * - * HOST_BIG_ENDIAN : whether the host cpu is big endian and - * otherwise little endian. - * - * TARGET_BIG_ENDIAN : same for the target cpu - */ - -#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN -#define BSWAP_NEEDED -#endif - /* Target-endianness CPU memory access functions. These fit into the * {ld,st}{type}{sign}{size}{endian}_p naming scheme described in bswap.h. */ diff --git a/include/exec/poison.h b/include/exec/poison.h index 8ed04b31083..2c151fd1e0c 100644 --- a/include/exec/poison.h +++ b/include/exec/poison.h @@ -37,7 +37,6 @@ #pragma GCC poison TARGET_NAME #pragma GCC poison TARGET_SUPPORTS_MTTCG #pragma GCC poison TARGET_BIG_ENDIAN -#pragma GCC poison BSWAP_NEEDED #pragma GCC poison TARGET_LONG_BITS #pragma GCC poison TARGET_FMT_lx diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 86d773add75..5d227599924 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -462,7 +462,7 @@ typedef struct { abi_ulong sig[TARGET_NSIG_WORDS]; } target_sigset_t; -#ifdef BSWAP_NEEDED +#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN static inline void tswap_sigset(target_sigset_t *d, const target_sigset_t *s) { int i; diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c index 833fa3bd057..3bca0cc9ede 100644 --- a/bsd-user/elfload.c +++ b/bsd-user/elfload.c @@ -44,7 +44,7 @@ static inline void memcpy_fromfs(void *to, const void *from, unsigned long n) memcpy(to, from, n); } -#ifdef BSWAP_NEEDED +#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN static void bswap_ehdr(struct elfhdr *ehdr) { bswap16s(&ehdr->e_type); /* Object file type */ @@ -111,7 +111,7 @@ static void bswap_note(struct elf_note *en) bswap32s(&en->n_type); } -#else /* ! BSWAP_NEEDED */ +#else static void bswap_ehdr(struct elfhdr *ehdr) { } static void bswap_phdr(struct elf_phdr *phdr, int phnum) { } @@ -119,7 +119,7 @@ static void bswap_shdr(struct elf_shdr *shdr, int shnum) { } static void bswap_sym(struct elf_sym *sym) { } static void bswap_note(struct elf_note *en) { } -#endif /* ! BSWAP_NEEDED */ +#endif /* HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN */ #include "elfcore.c" diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 8799e4ea27d..fa83d78667c 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2121,7 +2121,7 @@ static inline void memcpy_fromfs(void * to, const void * from, unsigned long n) memcpy(to, from, n); } -#ifdef BSWAP_NEEDED +#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN static void bswap_ehdr(struct elfhdr *ehdr) { bswap16s(&ehdr->e_type); /* Object file type */ @@ -3143,7 +3143,7 @@ static bool parse_elf_properties(const ImageSource *src, * The contents of a valid PT_GNU_PROPERTY is a sequence of uint32_t. * Swap most of them now, beyond the header and namesz. */ -#ifdef BSWAP_NEEDED +#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN for (int i = 4; i < n / 4; i++) { bswap32s(note.data + i); } @@ -3999,7 +3999,7 @@ struct target_elf_prpsinfo { char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */ }; -#ifdef BSWAP_NEEDED +#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN static void bswap_prstatus(struct target_elf_prstatus *prstatus) { prstatus->pr_info.si_signo = tswap32(prstatus->pr_info.si_signo); @@ -4038,7 +4038,7 @@ static void bswap_note(struct elf_note *en) static inline void bswap_prstatus(struct target_elf_prstatus *p) { } static inline void bswap_psinfo(struct target_elf_prpsinfo *p) {} static inline void bswap_note(struct elf_note *en) { } -#endif /* BSWAP_NEEDED */ +#endif /* HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN */ /* * Calculate file (dump) size of given memory region.