From patchwork Wed May 14 12:57:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889860 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2606062wrr; Wed, 14 May 2025 05:59:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXi0MiN0hsp/dFqzeFzybDx5kgWyKle4NXajS4jVdCe5tREptLlEEw71V9CevQPlS24pGPQ4A==@linaro.org X-Google-Smtp-Source: AGHT+IEGz3MIF1Agjfm0PTzrusJUdyY/ZredfvA5+NkJMkAHBZUdoAGi/IFmOwu1L8CsFTgIBoDv X-Received: by 2002:a05:6214:da3:b0:6e8:9866:7398 with SMTP id 6a1803df08f44-6f896e339e3mr50124506d6.22.1747227598581; Wed, 14 May 2025 05:59:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747227598; cv=none; d=google.com; s=arc-20240605; b=TD0xsxNgWRPapNEte5Q2CBlPym0t5XwR9faQfzojD/QHM/X9d+gI3VNHjqt3fSIO99 Tq9pqQrZTqniWzsC1alvwXXZeEv0+uPlPE3gvFWbjFGHBJWQHOMuNpi4uhfxKKi2Q8XQ /RZrhR+aRvHpgRW/xh6eF4PvNoKvE/vmqw+WJSS/BB/pQJRFEhfh/KcV5w8Uw7GeaTpj CBBj8+RWxZb9Gl21+FY0+P8GvaqDG2v7oynrkzy3M4XpADpY2PcFDhHeK7VVsmB6Rp93 Odil2SFutXEFG1Em3GWGqFdAoCaSRrin9Sffj2+kDgBXtjlkJS3GrbTa290p+ud/wwBk m97w== 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; bh=vqOvmyc818rCwB0qnjhagXg8AoKuxuVGyleGtCk2Y6Q=; fh=waOOaCAHGkGAvDtriDX2L95bU3DxXm/8McTidG/7GXg=; b=Mcf1mANSQvw1gMjUjjrA3n/I3HMsxgNZ2mQzXznLXYdSTXfr7+FgZEVYN5XPagj4eh 9yKHatIZab1dX8LKfg2Scs4Nu1jQwXDB8oN3bFiCJR+OAEmg2KmNuFXtUVoEPGTNK/Gv TRbEvD2Zu9NA9ZwDTvUQKTsBEnmmDb/4ZIHyudcvbpvBIKOpsKbrhMdbXRvCu2Q6Yl6w 6erFkLmB+Pb6QvSVbjtGSWmlg9oOF4Ei1v+GRVOrzSPvh1cLLnDnyLHqm1K86RZSq7rM vYrD+ouXBria8OeUWfyVdG4ye+xtckiWTeFHiY3SKr1v9jo+okI1kFQqLNuW1CO951G+ 8Qxg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f6e3a4bd3dsi141315356d6.332.2025.05.14.05.59.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 05:59:58 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBhC-0003fl-Gn; Wed, 14 May 2025 08:58:54 -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 1uFBgs-000356-P2; Wed, 14 May 2025 08:58:30 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBgq-0007qz-HI; Wed, 14 May 2025 08:58:30 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 1CE5C121AE1; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id B2BC920B84F; Wed, 14 May 2025 15:57:58 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Joey , Gustavo Romero , Michael Tokarev Subject: [Stable-9.2.4 03/34] hw/pci-host/designware: Fix ATU_UPPER_TARGET register access Date: Wed, 14 May 2025 15:57:25 +0300 Message-Id: <20250514125758.92030-3-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Philippe Mathieu-Daudé Fix copy/paste error writing to the ATU_UPPER_TARGET register, we want to update the upper 32 bits. Cc: qemu-stable@nongnu.org Reported-by: Joey Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2861 Fixes: d64e5eabc4c ("pci: Add support for Designware IP block") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Gustavo Romero Message-Id: <20250331152041.74533-2-philmd@linaro.org> (cherry picked from commit 04e99f9eb7920b0f0fcce65686c3bedf5e32a1f9) Signed-off-by: Michael Tokarev diff --git a/hw/pci-host/designware.c b/hw/pci-host/designware.c index c3fc37b904..cc3ff0a45a 100644 --- a/hw/pci-host/designware.c +++ b/hw/pci-host/designware.c @@ -362,7 +362,7 @@ static void designware_pcie_root_config_write(PCIDevice *d, uint32_t address, case DESIGNWARE_PCIE_ATU_UPPER_TARGET: viewport->target &= 0x00000000FFFFFFFFULL; - viewport->target |= val; + viewport->target |= (uint64_t)val << 32; break; case DESIGNWARE_PCIE_ATU_LIMIT: From patchwork Wed May 14 12:57:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889869 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2611045wrr; Wed, 14 May 2025 06:07:08 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU+Zzl5sCRnZfSKqRy7mL4M/lZ69pw6iL+AdMawoY7+EQIfL2cwKSLViRDgwEdhmV6ac3aTtQ==@linaro.org X-Google-Smtp-Source: AGHT+IGXaRXlFxvf3HQ/mX9LvAcqVQ8V6uoQTi+MQ9GCVOHYfmvOzr6Ru7RiQjeNLTtiEUopqg5C X-Received: by 2002:ad4:4152:0:b0:6f8:9b75:a62f with SMTP id 6a1803df08f44-6f89b75a760mr14631286d6.24.1747228028126; Wed, 14 May 2025 06:07:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228028; cv=none; d=google.com; s=arc-20240605; b=ZFl1ChY5kxrgXRsL/G4j4dtJZbiRHtCx94bPadEeZ1JqDAX6mPzaLnxVv84yQM6HQv gQ068nMD8XIMrjIyJZgNvpf/5N0PY18nA7OEGvHF4YeAQL2KHpcuW9Y9gfGTqWkLz3Ot FtngJhGTKLST/kwitWYfb/no0PTL3PO3z4gHH517UFjPKnOxoBkNxtZ0C0I4Kk/Nk7ij cDCILIXLqhGN3UINFbdfiOxCz37Oi4m0MJOpdV0XAd47/dGfJOdGScHntYI2BsJA9zfs n4irMdbBlm7TB1NdKB3fav9wcivum5M0M8d9B8HDF8LcJh8pDmywyfSFuYmfnWT/supl wWHQ== 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; bh=mvrVQf+lQpw1wUiePLwBgjQ2iZQIjfECqzfRMtWOsVA=; fh=AgmXo2+zLpyt0lWz/ekZ8kEoo1qvR6yygj195zlOVQE=; b=CC4/A88u57SmVXm8mYc0//eyEyDMe1KxPi/wN5iAM96YGPkqDZ7ea3trTpyKFwcJBi PHSh8A6U/KsaN5trHkKk7fQU+O9czhpNAjqnivRg3/ejny6TQd21CJpXW/4TYJFUurcF L8DHHJfI46qj8u+ru/41tw+ByixQEbaiP6x+h1jgsKzEU9p400jw7ruLJrbib/5rYtMo nDjM8Ae+jtvbK2LwgnU2+3n6CxmiDYUjWtgy22l/P0KkyLG//qq/kjagb81JmHmikYwd gVGEuMEZertuMk1s7yChTjPA9101MSjj4k/P+uu2oMtjOW/WEOlSkWrBJImRK+Ovbrf3 Zbfw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f6e3a597fbsi134946206d6.446.2025.05.14.06.07.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:07:08 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBi4-0004nb-Jp; Wed, 14 May 2025 08:59:45 -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 1uFBgv-0003Fy-9a; Wed, 14 May 2025 08:58:33 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBgt-0007rC-6W; Wed, 14 May 2025 08:58:32 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 286FF121AE2; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id C786B20B850; Wed, 14 May 2025 15:57:58 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , Pierrick Bouvier , =?utf-8?q?Philippe_Mathieu-?= =?utf-8?q?Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 04/34] target/avr: Fix buffer read in avr_print_insn Date: Wed, 14 May 2025 15:57:26 +0300 Message-Id: <20250514125758.92030-4-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson Do not unconditionally attempt to read 4 bytes, as there may only be 2 bytes remaining in the translator cache. Cc: qemu-stable@nongnu.org Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20250325224403.4011975-2-richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit 070a500cc0da70c1b4c62a6c95e41f0a1b19dc0b) Signed-off-by: Michael Tokarev diff --git a/target/avr/disas.c b/target/avr/disas.c index b7689e8d7c..d341030174 100644 --- a/target/avr/disas.c +++ b/target/avr/disas.c @@ -68,28 +68,35 @@ static bool decode_insn(DisasContext *ctx, uint16_t insn); int avr_print_insn(bfd_vma addr, disassemble_info *info) { - DisasContext ctx; + DisasContext ctx = { info }; DisasContext *pctx = &ctx; bfd_byte buffer[4]; uint16_t insn; int status; - ctx.info = info; - - status = info->read_memory_func(addr, buffer, 4, info); + status = info->read_memory_func(addr, buffer, 2, info); if (status != 0) { info->memory_error_func(status, addr, info); return -1; } insn = bfd_getl16(buffer); - ctx.next_word = bfd_getl16(buffer + 2); - ctx.next_word_used = false; + + status = info->read_memory_func(addr + 2, buffer + 2, 2, info); + if (status == 0) { + ctx.next_word = bfd_getl16(buffer + 2); + } if (!decode_insn(&ctx, insn)) { output(".db", "0x%02x, 0x%02x", buffer[0], buffer[1]); } - return ctx.next_word_used ? 4 : 2; + if (!ctx.next_word_used) { + return 2; + } else if (status == 0) { + return 4; + } + info->memory_error_func(status, addr + 2, info); + return -1; } From patchwork Wed May 14 12:57:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889867 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2609998wrr; Wed, 14 May 2025 06:05:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU47/5SpVvr+rV32B0H7jAWiBIWhqRFcWuIz2I0tCBytvnwtVtr1Kr8QIQiXCxtfcZIp1jYtA==@linaro.org X-Google-Smtp-Source: AGHT+IFNN5ZLxDuPNGGxD7rUnzOdoVJPTzKQNQEgkaQqvFlMN3dqXDcDAZSDhOzwPcZF0Jjws3T2 X-Received: by 2002:a05:622a:1f90:b0:494:9d34:fca5 with SMTP id d75a77b69052e-4949d34fcf2mr13279011cf.13.1747227932634; Wed, 14 May 2025 06:05:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747227932; cv=none; d=google.com; s=arc-20240605; b=jamuuLnpgoYEIFtrfevCyySGzBfP0b3gOZAuvdV/PTAa/BOpJFKkx0NOau3SMzadSt q51KyeZXTNPP/PE7Cd+oRlJM2wRxxzhSfnQY6U90m43tDn2CoxlKeysdRDFazgKwoaEl x25tr+UWacvFYcXTQczn4ipd2/AHh+EH2WJ6FWvNtulR3d+ve+d02EdBwq0kV5nxCgaH xfWUoM6FSnnjf8oNs1Gy+QFfc2mHOag++7C1RLeXwZreYDFtek/qMxH/qA3LDJgDZlr7 9tCIULIgqJ7RHxVlP07Y7Ul9GUShl8H6skOG9gUCK6q60ZbsBu3OEvQuVWjF1V3F6TN3 hK2A== 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; bh=voeE3E5Kn6VlXNTxxkeK18g4ua9NzHZphZvdTzSd4VA=; fh=K4abbxCgZAPvqzOXA+PZ7RIZh+KufMVJze7rXLOwES0=; b=CKUX7kogH1nywSYMgQQYDU1qp8ICreewtV2gwJJnIn9Mt69ta9NOWVnjBKM/237nKB AA3hg5sbdaYxgVs5TJtw2gE5wDMjY3iBRYP1Y1VJSwXXbN0puZHVnqWJMHA2zJcnjQGR p+eeAAAdca+QcLYPOQL+mKrwXfA39pP0KAoR+c/bjsCvZbxffY/OtukdVVqARGSDaTvn 0A9a4x5ddhxuuQB6tMm/L5/C1L1Yb1p6ruyIFlW7xsv+eXTY4ssGRbtDrf2QLHVhAn5+ oy1YrNcr09rTLowKZb5zC7EyFEgoSyVZrNT4tTjIWHFVnQS5dBps0zsj9xyojVr5qUvB BjeA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4945259b9c0si136219691cf.555.2025.05.14.06.05.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:05:32 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBhh-0004NN-Dr; Wed, 14 May 2025 08:59: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 1uFBhG-0003lJ-L9; Wed, 14 May 2025 08:58:57 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBhE-0007rW-Hq; Wed, 14 May 2025 08:58:54 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 33483121AE3; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id D31F620B851; Wed, 14 May 2025 15:57:58 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 05/34] target/mips: Revert TARGET_PAGE_BITS_VARY Date: Wed, 14 May 2025 15:57:27 +0300 Message-Id: <20250514125758.92030-5-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson Revert ee3863b9d41 and a08d60bc6c2b. The logic behind changing the system page size because of what the Loongson kernel "prefers" is flawed. In the Loongson-2E manual, section 5.5, it is clear that the cpu supports a 4k page size (along with many others). Similarly for the Loongson-3 series CPUs, the 4k page size is mentioned in the section 7.7 (PageMask Register). Therefore we must continue to support a 4k page size. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250328175526.368121-2-richard.henderson@linaro.org> [PMD: Mention Loongson-3 series CPUs] Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit fca2817fdcb00e65020c2dcfcb0b23b2a20ea3c4) Signed-off-by: Michael Tokarev diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c index 7fd8296ccb..7124f1893f 100644 --- a/hw/mips/fuloong2e.c +++ b/hw/mips/fuloong2e.c @@ -333,7 +333,6 @@ static void mips_fuloong2e_machine_init(MachineClass *mc) mc->default_cpu_type = MIPS_CPU_TYPE_NAME("Loongson-2E"); mc->default_ram_size = 256 * MiB; mc->default_ram_id = "fuloong2e.ram"; - mc->minimum_page_bits = 14; machine_add_audiodev_property(mc); } diff --git a/hw/mips/loongson3_virt.c b/hw/mips/loongson3_virt.c index f3b6326cc5..bb8e1ab2e5 100644 --- a/hw/mips/loongson3_virt.c +++ b/hw/mips/loongson3_virt.c @@ -670,7 +670,6 @@ static void loongson3v_machine_class_init(ObjectClass *oc, void *data) mc->max_cpus = LOONGSON_MAX_VCPUS; mc->default_ram_id = "loongson3.highram"; mc->default_ram_size = 1600 * MiB; - mc->minimum_page_bits = 14; mc->default_nic = "virtio-net-pci"; } diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h index f3a37e2dbe..26b7e4ceba 100644 --- a/target/mips/cpu-param.h +++ b/target/mips/cpu-param.h @@ -23,12 +23,7 @@ # define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif #endif -#ifdef CONFIG_USER_ONLY #define TARGET_PAGE_BITS 12 -#else -#define TARGET_PAGE_BITS_VARY -#define TARGET_PAGE_BITS_MIN 12 -#endif #define TCG_GUEST_DEFAULT_MO (0) diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/cp0_helper.c index 79a5c833ce..fb394bf0ed 100644 --- a/target/mips/tcg/sysemu/cp0_helper.c +++ b/target/mips/tcg/sysemu/cp0_helper.c @@ -877,18 +877,13 @@ void update_pagemask(CPUMIPSState *env, target_ulong arg1, int32_t *pagemask) if ((mask >> maskbits) != 0) { goto invalid; } - /* We don't support VTLB entry smaller than target page */ - if ((maskbits + TARGET_PAGE_BITS_MIN) < TARGET_PAGE_BITS) { - goto invalid; - } env->CP0_PageMask = mask << CP0PM_MASK; return; invalid: /* When invalid, set to default target page size. */ - mask = (~TARGET_PAGE_MASK >> TARGET_PAGE_BITS_MIN); - env->CP0_PageMask = mask << CP0PM_MASK; + env->CP0_PageMask = 0; } void helper_mtc0_pagemask(CPUMIPSState *env, target_ulong arg1) diff --git a/target/mips/tcg/sysemu/tlb_helper.c b/target/mips/tcg/sysemu/tlb_helper.c index e98bb95951..62a3a86d80 100644 --- a/target/mips/tcg/sysemu/tlb_helper.c +++ b/target/mips/tcg/sysemu/tlb_helper.c @@ -874,7 +874,7 @@ refill: break; } } - pw_pagemask = m >> TARGET_PAGE_BITS_MIN; + pw_pagemask = m >> TARGET_PAGE_BITS; update_pagemask(env, pw_pagemask << CP0PM_MASK, &pw_pagemask); pw_entryhi = (address & ~0x1fff) | (env->CP0_EntryHi & 0xFF); { From patchwork Wed May 14 12:57:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889868 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2610965wrr; Wed, 14 May 2025 06:07:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX5L1PZHRZOJ/Z7NV1lEDuOSQbIoyuZkrcz7E7KigV1MuWIfxPup80KOBNN15VcEXEqlQ3Qvg==@linaro.org X-Google-Smtp-Source: AGHT+IFyeKIjxbvqC/Xq8I9uVtzpU5tDJ7nsZ4s4U5zPjVm5AHEGqVBOeDbAaPE/YEO8lp56Dvyk X-Received: by 2002:a05:620a:1985:b0:7c8:c9c:2a8a with SMTP id af79cd13be357-7cd288636ebmr619067985a.49.1747228020980; Wed, 14 May 2025 06:07:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228020; cv=none; d=google.com; s=arc-20240605; b=WZKs8ScD46W+wCPKbMSlVfsHhLckV6O262BKfRe3hZEzrKIF3uVMYbZ43rP4URGacz MT4ElDXdrHdXVgpKY/DHbELgBL2BtfB8km3K0M4kZ8zHniq+3uCiEgm+iayeq/10QmaM y9+8YjZZhnzm4N4dNsdrH27z1GyOKRplF7Iz8eYWVHGIdINVEsAq8gL9mLp8YMdOsdTV HHhnHCgOVgTUrPkFXNWEZFH2+kvULZuBbwBjZXVI3072kkNZWUxSjiAHnb/BZiKePeGs Q0aqxlZ/TQ8eeC4llRubn9KGNmL9NMLvsS6xsnXP0QDb9JCnQ7/t8K4OSFOU0DGf10xM qchA== 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; bh=X23sGOVJfbiiCDYmDHxWJrZ5bvm22GuNyvp4S2Vzq8M=; fh=K4abbxCgZAPvqzOXA+PZ7RIZh+KufMVJze7rXLOwES0=; b=KJ20LCC3qXE0F+aAxqCD/p8CuZe+eXYb08MkKrdQnOjwkYtQ3qU/TVnn/iWIgfbZUa /px0tugwOSCt/YHKhO//o/XVWSUn96Ki1FaDEH9ZAeAn5hJtR/ef0wlPdsG5QahSUBZp MtGlLqgz8OQdE/333pEGTVnx9i3dT0YajA1emwLm3T7ecW1kTW7rZJzvZYsV1WcppLsJ y2WkGT2DTCnSHwQBFgRf7IQmBqUeaE3z1CuTv8uvmuFo+GsKzKOHu9nyoqw1N5T05qNE lqRvDWWU2jF/DEv72+14ho/TVXaEDXdgFF4rrGHhYyX3MOkTjgCDBiqmJRpbXN6Ec9B3 jBWA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cd00fe31b6si1332493085a.427.2025.05.14.06.07.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:07:00 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBiG-0005sZ-KO; Wed, 14 May 2025 08:59:56 -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 1uFBhL-0003pR-2a; Wed, 14 May 2025 08:58:59 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBhI-0007rp-JN; Wed, 14 May 2025 08:58:58 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 3DE34121AE4; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id DD76E20B852; Wed, 14 May 2025 15:57:58 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 06/34] target/mips: Require even maskbits in update_pagemask Date: Wed, 14 May 2025 15:57:28 +0300 Message-Id: <20250514125758.92030-6-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson The number of bits set in PageMask must be even. Fixes: d40b55bc1b86 ("target/mips: Fix PageMask with variable page size") Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250328175526.368121-3-richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé Cc: qemu-stable@nongnu.org (cherry picked from commit d89b9899babcc01d7ee75f2917da861dc2afbc27) Signed-off-by: Michael Tokarev diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/cp0_helper.c index fb394bf0ed..4796638126 100644 --- a/target/mips/tcg/sysemu/cp0_helper.c +++ b/target/mips/tcg/sysemu/cp0_helper.c @@ -866,24 +866,17 @@ void helper_mtc0_memorymapid(CPUMIPSState *env, target_ulong arg1) void update_pagemask(CPUMIPSState *env, target_ulong arg1, int32_t *pagemask) { - uint32_t mask; - int maskbits; - /* Don't care MASKX as we don't support 1KB page */ - mask = extract32((uint32_t)arg1, CP0PM_MASK, 16); - maskbits = cto32(mask); + uint32_t mask = extract32((uint32_t)arg1, CP0PM_MASK, 16); + int maskbits = cto32(mask); - /* Ensure no more set bit after first zero */ - if ((mask >> maskbits) != 0) { - goto invalid; + /* Ensure no more set bit after first zero, and maskbits even. */ + if ((mask >> maskbits) == 0 && maskbits % 2 == 0) { + env->CP0_PageMask = mask << CP0PM_MASK; + } else { + /* When invalid, set to default target page size. */ + env->CP0_PageMask = 0; } - env->CP0_PageMask = mask << CP0PM_MASK; - - return; - -invalid: - /* When invalid, set to default target page size. */ - env->CP0_PageMask = 0; } void helper_mtc0_pagemask(CPUMIPSState *env, target_ulong arg1) From patchwork Wed May 14 12:57:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889870 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2612215wrr; Wed, 14 May 2025 06:08:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXwH9vUGK4it+F+li/2Y2XTJW55GF8ulpQkwRe8Qh5vMJY1C9hkUUmDti+Rt9avQDlXIwdE7Q==@linaro.org X-Google-Smtp-Source: AGHT+IEXCMG8IuBTbD65JYKXmYQ8DPegqx2niGRBw2Zuf+psJHNfUYmk2CkaJ+QHUtTuBrZOvcxv X-Received: by 2002:a05:690c:7004:b0:703:b278:db3b with SMTP id 00721157ae682-70c7f26faf6mr49577807b3.30.1747228121303; Wed, 14 May 2025 06:08:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228121; cv=none; d=google.com; s=arc-20240605; b=Zc68HhGVyrA+Wz3HZ4mSPFicQwdrpU8q33MmPQeekOO1f2sDPM6PLwcU7WT85JmB2q XLOrxU9Ofy/sn01mpq0aqdjtjaMR0Fv9YAakhRUX/Sl4iG8fUKDZB3IDtTt4AUTGDlC7 MZ4+T+rZxqOWfS1GLVmb5ywQqtGIOdPbnxYEJrTA/aTVjJfPTAGWjazK0L1AjbtltAKA UbuQ4NYoBo/fin2IUGhu2Fux/Z9RcftUVT/kC7gZCfmrYo5191uKvQRH02icxPDDbmzt cwRNbSZ8LLPz1SZWSyKr2S6uvtN8MsaAywPozb2Pc5Dsrtw1RpwLcYDUKfJc7u/82We9 /EyA== 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; bh=ebup8p0CaNX50IjaXqooMAjT1J0VppIRi151F3LQfho=; fh=K4abbxCgZAPvqzOXA+PZ7RIZh+KufMVJze7rXLOwES0=; b=lko2EZnMyy5SZTvxNGZ/CxvJZYDfeBeSqaO0hTIZ0CU8Reg9ylddyKiBfUMmci6mBS QEmDsk5Mw24RNaw3PSpSkfRAkmfYD7CCra8YmVSyEj14+UjWZv4XwooOTm0LIlevj5s5 KbkKvmi0JeAZ5IcoeFCbIQBpz5r8Udp4pSUBMNq7t2mXBP/0X9WlMJsAu876F6MQlgnH UVjLZyJqaJ5DbPLy3lHZNpw+Al4WxXCcMQ26y8aOSfTOcOfLjYLawSTPX2+6gboCgkeM JeMsZgpbsLM4KcOG/Akvmp/OePRpi9/EbAXVWMMJMXhR6q6N4Yy/JiYOCBl3kJ0nj4Py mwbA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a1e0cc1a2514c-879f6197d6asi4763462241.8.2025.05.14.06.08.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:08:41 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBiO-0006Rx-Rt; Wed, 14 May 2025 09:00:09 -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 1uFBhM-0003tJ-4i; Wed, 14 May 2025 08:59:00 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBhJ-0007t1-DX; Wed, 14 May 2025 08:58:59 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 47381121AE5; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id E7C3A20B853; Wed, 14 May 2025 15:57:58 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 07/34] target/mips: Simplify and fix update_pagemask Date: Wed, 14 May 2025 15:57:29 +0300 Message-Id: <20250514125758.92030-7-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson When update_pagemask was split from helper_mtc0_pagemask, we failed to actually write to the new parameter but continue to write to env->CP0_PageMask. Thus the use within page_table_walk_refill modifies cpu state and not the local variable as expected. Simplify by renaming to compute_pagemask and returning the value directly. No need for either env or pointer return. Fixes: 074cfcb4dae ("target/mips: Implement hardware page table walker for MIPS32") Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250328175526.368121-4-richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé Cc: qemu-stable@nongnu.org (cherry picked from commit 256ba7715b109c080c0c77a3923df9e69736ba17) Signed-off-by: Michael Tokarev diff --git a/target/mips/tcg/sysemu/cp0_helper.c b/target/mips/tcg/sysemu/cp0_helper.c index 4796638126..3bfb6edbd0 100644 --- a/target/mips/tcg/sysemu/cp0_helper.c +++ b/target/mips/tcg/sysemu/cp0_helper.c @@ -864,24 +864,24 @@ void helper_mtc0_memorymapid(CPUMIPSState *env, target_ulong arg1) } } -void update_pagemask(CPUMIPSState *env, target_ulong arg1, int32_t *pagemask) +uint32_t compute_pagemask(uint32_t val) { /* Don't care MASKX as we don't support 1KB page */ - uint32_t mask = extract32((uint32_t)arg1, CP0PM_MASK, 16); + uint32_t mask = extract32(val, CP0PM_MASK, 16); int maskbits = cto32(mask); /* Ensure no more set bit after first zero, and maskbits even. */ if ((mask >> maskbits) == 0 && maskbits % 2 == 0) { - env->CP0_PageMask = mask << CP0PM_MASK; + return mask << CP0PM_MASK; } else { /* When invalid, set to default target page size. */ - env->CP0_PageMask = 0; + return 0; } } void helper_mtc0_pagemask(CPUMIPSState *env, target_ulong arg1) { - update_pagemask(env, arg1, &env->CP0_PageMask); + env->CP0_PageMask = compute_pagemask(arg1); } void helper_mtc0_pagegrain(CPUMIPSState *env, target_ulong arg1) diff --git a/target/mips/tcg/sysemu/tlb_helper.c b/target/mips/tcg/sysemu/tlb_helper.c index 62a3a86d80..56b1e8a36e 100644 --- a/target/mips/tcg/sysemu/tlb_helper.c +++ b/target/mips/tcg/sysemu/tlb_helper.c @@ -875,7 +875,7 @@ refill: } } pw_pagemask = m >> TARGET_PAGE_BITS; - update_pagemask(env, pw_pagemask << CP0PM_MASK, &pw_pagemask); + pw_pagemask = compute_pagemask(pw_pagemask << CP0PM_MASK); pw_entryhi = (address & ~0x1fff) | (env->CP0_EntryHi & 0xFF); { target_ulong tmp_entryhi = env->CP0_EntryHi; diff --git a/target/mips/tcg/tcg-internal.h b/target/mips/tcg/tcg-internal.h index aef032c48d..be398665e6 100644 --- a/target/mips/tcg/tcg-internal.h +++ b/target/mips/tcg/tcg-internal.h @@ -45,7 +45,7 @@ bool mips_cpu_exec_interrupt(CPUState *cpu, int int_req); void mmu_init(CPUMIPSState *env, const mips_def_t *def); -void update_pagemask(CPUMIPSState *env, target_ulong arg1, int32_t *pagemask); +uint32_t compute_pagemask(uint32_t val); void r4k_invalidate_tlb(CPUMIPSState *env, int idx, int use_extra); uint32_t cpu_mips_get_random(CPUMIPSState *env); From patchwork Wed May 14 12:57:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889866 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2608911wrr; Wed, 14 May 2025 06:04:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVnfVjm2K6VsBctDvjUrbhjDr/j0TTHXzCPO9D7y2aGAKd6eUjr5sLG2Fyi60ZIryYi4vXxAA==@linaro.org X-Google-Smtp-Source: AGHT+IHGCXVnfGratvgBzJn0QDhFgqJPYb60CSjcn+nRTSsumXmfHCKBb1x4lCJUJR84maunLOkD X-Received: by 2002:a05:6512:6097:b0:549:912a:d051 with SMTP id 2adb3069b0e04-550d5eb304dmr1170012e87.0.1747227845411; Wed, 14 May 2025 06:04:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747227845; cv=none; d=google.com; s=arc-20240605; b=Vj811bOwpfr8LBPSruZP4WkUJmNrLM4KT1MHwW/mBbnL3e+cwpWqpml7fQsZHN6o6c eT3eTwGatdrRnixMR6kTPnQjppo/n3w0rnr/qeMPoBPKug2nAc3k30zwteDdjKNkq3Mm y5Dg6frWMwzeYlo1u7ivo8AYEBN4J63zztiBGXjK8ahfPCfUvFm0jgDNif681IoVsxRy tFuQ+f57O5I1PkQ85LTpfOf/s2z8hPqWy9TmX8EXVwwHHgFXc7bwSpaMo5RWsZpt7J9j Rq4FE2oLvf9MJnBVkeWJ9/N21E6X/j114an1LyeG8Oim5JL5+KtT/bmLmVTdeuI4pc+K tDTA== 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; bh=RYLcqRxB22/B2ayhmY3IwDn+KvBL874XWf1dKV/QjnA=; fh=4fQO1wudac9ZpXezHMLxWQgYFFXrK5Uma31GLpyv85E=; b=FVv9xQBeMNCVWM6ykY2T1nfnbXF+/cihG9/x7zithBTrWlFiVCH9OFvIXpj23/kU0z 5rRrGP1ENLyt+KrG5UfO1I/MO65MZoCNEPYuWN3BSWOPAE5M1+rqT9F7MEffCEzyGz67 dH62fLMXKCfnoTxkkEcAdpUTKNW4KfztAen4Iu/VccoB1AL7BNp+yAcLvsiKUxDHQuMa KdyLFjYS8kggmOYee5M2FO1hNYVQJLiooSkaTtRQ0FXg6QjJh4Cka6Kyw4wrPxtPHJCe 2V2Yhzqc7sLlH4ugyW73ri+8E1WQQ4VEo4YPglq22ynzvNPghQtevPkJhjrgpnpF8YKZ idJw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 2adb3069b0e04-54fc650a9absi5525443e87.300.2025.05.14.06.04.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:04:05 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBiB-0005U5-ND; Wed, 14 May 2025 08:59:52 -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 1uFBhu-0004jB-KC; Wed, 14 May 2025 08:59:38 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBhr-0007uT-NX; Wed, 14 May 2025 08:59:34 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 871D9121AE9; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id 31FE520B857; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Michael Tokarev , Helge Konetzka , Richard Henderson Subject: [Stable-9.2.4 11/34] tcg: Allocate TEMP_VAL_MEM frame in temp_load() Date: Wed, 14 May 2025 15:57:33 +0300 Message-Id: <20250514125758.92030-11-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Philippe Mathieu-Daudé Be sure to allocate the temp frame if it wasn't. In the resolved issues, incomplete dead code elimination left a load at the top of an unreachable loop. We simply need to allocate the stack slot to avoid crashing. Fixes: c896fe29d6c ("TCG code generator") Reported-by: Michael Tokarev Reported-by: Helge Konetzka Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2891 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2899 Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250401144332.41615-1-philmd@linaro.org> (cherry picked from commit e139bc4b1772575e1f2dcf8e3dbe1df2b684ef1f) Signed-off-by: Michael Tokarev diff --git a/tcg/tcg.c b/tcg/tcg.c index 4578b185be..13f735b246 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -4461,6 +4461,9 @@ static void temp_load(TCGContext *s, TCGTemp *ts, TCGRegSet desired_regs, ts->mem_coherent = 0; break; case TEMP_VAL_MEM: + if (!ts->mem_allocated) { + temp_allocate_frame(s, ts); + } reg = tcg_reg_alloc(s, desired_regs, allocated_regs, preferred_regs, ts->indirect_base); tcg_out_ld(s, ts->type, reg, ts->mem_base->reg, ts->mem_offset); From patchwork Wed May 14 12:57:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889875 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2616026wrr; Wed, 14 May 2025 06:15:34 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXf69E1p23vQ79PGPhzZzUn2R3ZTjQJSe8PvQjEW0tp0zjXZBguaiOroRnJWJEdP6LERK3ggw==@linaro.org X-Google-Smtp-Source: AGHT+IFulx9STU3JRIVrn+czdBpKXIHH9ONIG8oTubaB4rA6l6zGUs4CgfqJrp1av4SiWtQHYqyV X-Received: by 2002:a05:622a:6187:b0:490:8ffd:8f02 with SMTP id d75a77b69052e-49495d0fe2fmr61256231cf.37.1747228533975; Wed, 14 May 2025 06:15:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228533; cv=none; d=google.com; s=arc-20240605; b=L69a1vCbuQB9o0auSV+BvJhY1sd0kyOTLpxhfs5TOzrmiHOoIZkEh2RyfFSCXSJE/B TxjXTEBDIUFnQAZV7wlbNP/gQHYJ1/iKrTnetnsY+qKLDCkxOk6s+qUwOM8h+KiXgktq EPAsm2jpSwNRIvsREXTc+D76/mWwIOJ+8jEeGTfrmgPwu1a/TrHagOCh/CjvL6XJ6onw vcOsboTQhecpWVVxYMrPtrN5LJwDNC71RV0rdE1RAMDRIualR44tlUCIHei4JmSds0zZ ZSw9O2RWF9Im2g9kC0KZcOFdKxd+thX7JdB7h1EqPEacglP3NAXP02jKinbufej53lFx pvig== 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; bh=BXeVq4ra/XTi5EPsEmdhTmb0mTQdWNBMpcdhPIDYt0U=; fh=+wMSfnX4fxTfXW1DjiavKR9uTGsY3qwogeIuG15zSmg=; b=YsMPUucM9jYTOb/AHfDPCnXxU6uBsm+uPhpiFS1xO/mb+afkG/vVAZ1P2om5NNUKDc tLQDDVJIJF69h9yMgQDEIMpno4DxcMYzj5FVaRCkFNkMTmN/ntGHcvHDC/9tYGOopRiy Yz2s6bzsHXdZ4jWZ1cShqBoRkhLXGwIpwa6dpptaVIAKrv6X6JKu+Ac8uZWKfMVjGNFg z/jWsC7RvBe/yrvfN5eeGlsB+bMZizxHdbxuW5T2a6AhqypAF6QzSnfBLtbVgs8xOCkV 6upjsRE9heV1ozoXsNOP3kdiLA5FzrDk4M1V6LgKuVcjdfk1gdG9f6QrZ/i/8uP5vSyS rqNw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-494772b318bsi72101161cf.427.2025.05.14.06.15.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:15:33 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBlA-0000ri-4p; Wed, 14 May 2025 09:03:06 -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 1uFBiN-0006Sc-Qo; Wed, 14 May 2025 09:00:04 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBiL-0007x2-KQ; Wed, 14 May 2025 09:00:03 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id D095C121AEE; Wed, 14 May 2025 15:57:49 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id 7113C20B85C; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Pierrick Bouvier , =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philippe_M?= =?utf-8?q?athieu-Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 16/34] plugins/loader: fix deadlock when resetting/uninstalling a plugin Date: Wed, 14 May 2025 15:57:38 +0300 Message-Id: <20250514125758.92030-16-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 Reported and fixed by Dmitry Kurakin. Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2901 Signed-off-by: Pierrick Bouvier Message-Id: <20250404032027.430575-2-pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé (cherry picked from commit c07cd110a1824e2d046581af7375f16dac26e96f) Signed-off-by: Michael Tokarev diff --git a/plugins/loader.c b/plugins/loader.c index ebc01da9c6..3070fe52ab 100644 --- a/plugins/loader.c +++ b/plugins/loader.c @@ -379,7 +379,7 @@ static void plugin_reset_destroy(struct qemu_plugin_reset_data *data) { qemu_rec_mutex_lock(&plugin.lock); plugin_reset_destroy__locked(data); - qemu_rec_mutex_lock(&plugin.lock); + qemu_rec_mutex_unlock(&plugin.lock); } static void plugin_flush_destroy(CPUState *cpu, run_on_cpu_data arg) From patchwork Wed May 14 12:57:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889873 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2614813wrr; Wed, 14 May 2025 06:13:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVmo/ulI2LcB2WqBYGk3KGpXLIJADqtxf1ZSkNo34JrnPLMeARoFu1XoReVUtm+9x8eQV1FBg==@linaro.org X-Google-Smtp-Source: AGHT+IGlaDnNoFLhhTfNpUDT7qIOB1D8gFkyQwUA2ejATjAAku686QJ/09qHUxucuXB077CQ5lMM X-Received: by 2002:a05:620a:2a01:b0:7ca:c5a4:f7b with SMTP id af79cd13be357-7cd28800d8dmr590879885a.15.1747228397685; Wed, 14 May 2025 06:13:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228397; cv=none; d=google.com; s=arc-20240605; b=Xm7NeJjrq6GKnAcR/RbmRQ5WFd0RQgcBy5tBMXGHIGpdY15wEMPNVCMQKiBNY5E7+a aE0MNkdVQYf5CGmCBSe+7xS4CDCADLNdRH6VDd5upE8vhpps7aGFVIdCTLpm9OveOgLj oiANaU6OV2xIT4s5seMn2Jn/U8h/px/xVDot/O6abuM2ywKsu36Tb+lhYEDgQtheTqni N3ySWqdLbFuJE0Di61ak3YC41DV5zNyctBjpHarQIbI3XdRx77UxbqA6OV3//QqTUb2e OkUSPa1KKJnODQBSH+tRwlJ19gvaJ+OKOu24rMS2uP3kzJhn5eiIjtRUzSBSIZ7jtX07 kkBA== 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; bh=Vhg5qHSFST6oh6col2iHU8gb5me1yHBJyqf2gaCO5qg=; fh=slBUHiphGZf68YtXAZoDwMwGT4RM1dtceEFytJ1qTrs=; b=fJLnba4QlbszxMqn3NyNDgZp/Tsp9LIOTAJDlqoAb4mU09qG7JPw3/I2FJWIozLti8 rqAcXq87/Ro8jvc7jpOSPFggQdiqYZ/PNDaU5J2xrcBARGuEyqN5ZT5BC413Q1ZqXNXC cFYTxYdrtdI6M1NzSuVfCT0A7zsR8DFQcT4fN3vAh9UxU9tBBbNg4W4j4ZoqXMklhcHX q0wt9YcxLWYaO5BFH5zAwc8Ko58N5UAqzgDHA4Lt183sxs7pCJ8jMuFgJpLTxlA+J9nj Bms7fAFbr7/Xgqq2beVj/SeF3PqRzFawkAE/4PIDIxFF6zUbI0ew6vjh9oUD6xQ3Trpg 5TOQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cd00fed640si1343896585a.493.2025.05.14.06.13.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:13:17 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBkl-0000KP-Ak; Wed, 14 May 2025 09:02:32 -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 1uFBid-0007IP-2i; Wed, 14 May 2025 09:00:22 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBiV-0008Ap-Cl; Wed, 14 May 2025 09:00:18 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 11F74121AF2; Wed, 14 May 2025 15:57:50 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id B23CB20B860; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , Pierrick Bouvier , Michael Tokarev Subject: [Stable-9.2.4 20/34] target/avr: Improve decode of LDS, STS Date: Wed, 14 May 2025 15:57:42 +0300 Message-Id: <20250514125758.92030-20-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson The comment about not being able to define a field with zero bits is out of date since 94597b6146f3 ("decodetree: Allow !function with no input bits"). This fixes the missing load of imm in the disassembler. Cc: qemu-stable@nongnu.org Fixes: 9d8caa67a24 ("target/avr: Add support for disassembling via option '-d in_asm'") Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson (cherry picked from commit 6b661b7ed7cd02c54a78426d5eb7dd8543b030ed) Signed-off-by: Michael Tokarev diff --git a/target/avr/insn.decode b/target/avr/insn.decode index 482c23ad0c..cc302249db 100644 --- a/target/avr/insn.decode +++ b/target/avr/insn.decode @@ -118,11 +118,8 @@ BRBC 1111 01 ....... ... @op_bit_imm @io_rd_imm .... . .. ..... .... &rd_imm rd=%rd imm=%io_imm @ldst_d .. . . .. . rd:5 . ... &rd_imm imm=%ldst_d_imm -# The 16-bit immediate is completely in the next word. -# Fields cannot be defined with no bits, so we cannot play -# the same trick and append to a zero-bit value. -# Defer reading the immediate until trans_{LDS,STS}. -@ldst_s .... ... rd:5 .... imm=0 +%ldst_imm !function=next_word +@ldst_s .... ... rd:5 .... imm=%ldst_imm MOV 0010 11 . ..... .... @op_rd_rr MOVW 0000 0001 .... .... &rd_rr rd=%rd_d rr=%rr_d diff --git a/target/avr/translate.c b/target/avr/translate.c index 2d51892115..e8279a18df 100644 --- a/target/avr/translate.c +++ b/target/avr/translate.c @@ -1577,7 +1577,6 @@ static bool trans_LDS(DisasContext *ctx, arg_LDS *a) TCGv Rd = cpu_r[a->rd]; TCGv addr = tcg_temp_new_i32(); TCGv H = cpu_rampD; - a->imm = next_word(ctx); tcg_gen_mov_tl(addr, H); /* addr = H:M:L */ tcg_gen_shli_tl(addr, addr, 16); @@ -1782,7 +1781,6 @@ static bool trans_STS(DisasContext *ctx, arg_STS *a) TCGv Rd = cpu_r[a->rd]; TCGv addr = tcg_temp_new_i32(); TCGv H = cpu_rampD; - a->imm = next_word(ctx); tcg_gen_mov_tl(addr, H); /* addr = H:M:L */ tcg_gen_shli_tl(addr, addr, 16); From patchwork Wed May 14 12:57:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889877 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2618135wrr; Wed, 14 May 2025 06:19:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXmfpeUNhS4BPFqhvmAVv5V9QpH4CXFwmLmY8LVhlaUWeraOnq/tiL66JgSA7NgT1cWynQvCQ==@linaro.org X-Google-Smtp-Source: AGHT+IERus31TK8Wk1fy27zvpin3OGzdkIwoY9el79eG6ImDubAV0Z912PdIz+9DiLazmq7SplU7 X-Received: by 2002:a05:6102:149b:b0:4c1:b0ad:a0bd with SMTP id ada2fe7eead31-4df7dde837bmr2539455137.23.1747228764573; Wed, 14 May 2025 06:19:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228764; cv=none; d=google.com; s=arc-20240605; b=BqdBJVEPL4RXJjXBzn8APq7tTcGqni673w6E0v8NJKi+pAnHwo8/XV4/hkKFLz8tbp xN75YsYnsRE8EgBffIKvA+ByXjgsjy0pI4bnd52gKFv6nP5QtxLjgY6tsGv9+KFPCqmn VvhttNqc7jj021N7pfWksu9PuSKj99CKa3gIS5PSh7jyBeEW/4gxcuo1VP3eZITgObmw XumKvC9xKMMYLE5BYntMtWpetSG3XMCYD8a9Hhv0YDvETZYWjjaStb6GlMsFgJ59gCzs QW6x655cw5zreEvxiLE+v5NdMCWVPjix/BU3lS3Rxi1MJTDfJ2ZQkusvWhclAw27s+V1 kYqQ== 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; bh=ulB0zC4diLWmGaXERWS70aG45i+4VoTP/L/jWk7asCg=; fh=Ceclp5Tst4XVmXzYZe8xLQpUs//cYv+jjhxWuShhOvI=; b=ZUBLMTZ3Cg/ZP9UCWkUAIC8zsK2mLZEQwg6R/fc3xorYgQQj9mYA48a6O75czlQNa8 1hCZH7TDGxMf/JPwn0FMtS//O32LR3VS/RKob93da1tW0te6auYNEzFV9oWNes0c1TiY k3K9H3BMyo7MyqVMPJxg4CO0tsGrrnSr1I26JQKndKoXzc/iSceJvFINPbK2OQcN6qJr COTUvF9cegDFW8/5TroIPDY34FHLLGoCxa8TdilSBNlDjjQMchXUVmlO5yJHVclgDfhn v9gEU3BrBacM6zdgQnMkFREn2Qyzc/KiYe9zCtu5VgjbMQ4EeZc2OkoQ4VUuphuQNuCq mSow==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4deb200b5b3si5057822137.364.2025.05.14.06.19.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:19:24 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBlj-0002Fx-Hq; Wed, 14 May 2025 09:03:32 -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 1uFBiy-0007VH-2G; Wed, 14 May 2025 09:00:55 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBit-0008BU-Fb; Wed, 14 May 2025 09:00:37 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 1E5D7121AF3; Wed, 14 May 2025 15:57:50 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id BBDAF20B861; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Richard Henderson , Pierrick Bouvier , Zhao Liu , Michael Tokarev Subject: [Stable-9.2.4 21/34] hw/core: Get default_cpu_type calling machine_class_default_cpu_type() Date: Wed, 14 May 2025 15:57:43 +0300 Message-Id: <20250514125758.92030-21-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Philippe Mathieu-Daudé Since commit 62b4a227a33 the default cpu type can come from the valid_cpu_types[] array. Call the machine_class_default_cpu_type() instead of accessing MachineClass::default_cpu_type field. Cc: qemu-stable@nongnu.org Fixes: 62b4a227a33 ("hw/core: Add machine_class_default_cpu_type()") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Reviewed-by: Pierrick Bouvier Reviewed-by: Zhao Liu Message-Id: <20250422084114.39499-1-philmd@linaro.org> (cherry picked from commit d5f241834be1b323ea697a469ff0f1335a1823fe) Signed-off-by: Michael Tokarev diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c index 130217da8f..ea59acb224 100644 --- a/hw/core/machine-qmp-cmds.c +++ b/hw/core/machine-qmp-cmds.c @@ -72,6 +72,7 @@ MachineInfoList *qmp_query_machines(bool has_compat_props, bool compat_props, for (el = machines; el; el = el->next) { MachineClass *mc = el->data; + const char *default_cpu_type = machine_class_default_cpu_type(mc); MachineInfo *info; info = g_malloc0(sizeof(*info)); @@ -90,8 +91,8 @@ MachineInfoList *qmp_query_machines(bool has_compat_props, bool compat_props, info->numa_mem_supported = mc->numa_mem_supported; info->deprecated = !!mc->deprecation_reason; info->acpi = !!object_class_property_find(OBJECT_CLASS(mc), "acpi"); - if (mc->default_cpu_type) { - info->default_cpu_type = g_strdup(mc->default_cpu_type); + if (default_cpu_type) { + info->default_cpu_type = g_strdup(default_cpu_type); } if (mc->default_ram_id) { info->default_ram_id = g_strdup(mc->default_ram_id); diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index b68a9cb9b4..ca9cf56aa4 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7034,7 +7034,7 @@ ObjectClass *ppc_cpu_class_by_name(const char *name) if (strcmp(name, "max") == 0) { MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); if (mc) { - return object_class_by_name(mc->default_cpu_type); + return object_class_by_name(machine_class_default_cpu_type(mc)); } } #endif From patchwork Wed May 14 12:57:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889878 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2618701wrr; Wed, 14 May 2025 06:20:28 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV4Bm4Luxj/N6VDZe7Qm9Z748YWoD4D/llzGvuXZiQ/DVIEsB3f6nirPohlmTKgCjQhaTSHCQ==@linaro.org X-Google-Smtp-Source: AGHT+IHSq2Jj4mIfYovCGU2vClFGQGUuLd+rgo0bnLMHssLsWDQkWl/MEqSg+zmsl8rD/ihDOC5u X-Received: by 2002:a05:620a:45a5:b0:7c3:d711:6ffb with SMTP id af79cd13be357-7cd2887804dmr528393485a.41.1747228827741; Wed, 14 May 2025 06:20:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228827; cv=none; d=google.com; s=arc-20240605; b=YM3tVLwNzeAoOFHzQZU3UDX8oxmKT96XUB3eV9CyFAq/x3tgeO8HN8RctkArUFD+eJ PT3+Ti+OlyhjkEMRXbJCDv7T57LROCtdJkrxz3FldbAoL2PckF2B5nuzcgLP73wis4WG lWXp5o6ShIAFORTlsIuenlPh1YuvAE9xJObpcb4vCZBUSldaJEjm9z+w+wWlzhCHCzyR /8em1rJp29B6rc+WFojpAaTJw2yIG2cc9LoemXzFyDH2jy5RjE99+O9H8SunxYDMezTW TTT8Xn8t1YysF4moEV9d8ALnAoy2Vdy8V231dCJHMKzxX5jt9mPIWKMTK1GG7CTIBl42 gUuA== 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; bh=QGSSxTVTvIadJfnRlVmW90dgW15MiLs8beOcvM12YVw=; fh=oWLcPJxnKq4dSYKEL252oFvFAim14Gy59aQ+WFb//EY=; b=fFiwzXuZAqZdLrHXfluCD/w5QlD1sD2IguHFZgm26yTaib0conB7M9XTMJDHKVCKl9 3iJcL1USHi1ellGZn0LV41aWnFc+SZVY+/t3WlQqIOiK2geGGuZz6bb3SKJHpMmx+cqe TZMAO9Fv1ZAsi/8J4LTK7MNjJffWlJp+kufz3amPoAgSzcUXCwzJxKSnKgH9gHKqKO3i UzwV6Ple0G7mkGcjr+0QTnevd5tKJz1DbqOXeGrwybizIQSku+XhOF2Anbmx/HADoXyM G3SjR2p4GvnYEN9UN5kp6HnkB/8i1dDBgb6VYXUW95U2fAkUQqsEFNxEtQnjaUS6Vq6/ eJHQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7cd00fd4be7si1408512985a.308.2025.05.14.06.20.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:20:27 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBn9-0003x2-3S; Wed, 14 May 2025 09:04:59 -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 1uFBj7-0007Xy-Uw; Wed, 14 May 2025 09:00:59 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBiy-0008Cv-UJ; Wed, 14 May 2025 09:00:44 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 29158121AF4; Wed, 14 May 2025 15:57:50 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id C822E20B862; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Peter Maydell , =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Philippe_M?= =?utf-8?q?athieu-Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 22/34] hw/core/cpu: gdb_arch_name string should not be freed Date: Wed, 14 May 2025 15:57:44 +0300 Message-Id: <20250514125758.92030-22-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 documentation for the CPUClass::gdb_arch_name method claims that the returned string should be freed with g_free(). This is not correct: in commit a650683871ba728 we changed this method to instead return a simple constant string, but forgot to update the documentation. Make the documentation match the new semantics. Fixes: a650683871ba728 ("hw/core/cpu: Return static value with gdb_arch_name()") Signed-off-by: Peter Maydell Reviewed-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250317142819.900029-2-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit 56a9f0d4c4a483ce217e5290db69cb1788586787) Signed-off-by: Michael Tokarev diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index c3ca0babcb..0e4d6f1c98 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -134,7 +134,8 @@ struct SysemuCPUOps; * @gdb_stop_before_watchpoint: Indicates whether GDB expects the CPU to stop * before the insn which triggers a watchpoint rather than after it. * @gdb_arch_name: Optional callback that returns the architecture name known - * to GDB. The caller must free the returned string with g_free. + * to GDB. The returned value is expected to be a simple constant string: + * the caller will not g_free() it. * @disas_set_info: Setup architecture specific components of disassembly info * @adjust_watchpoint_address: Perform a target-specific adjustment to an * address before attempting to match it against watchpoints. From patchwork Wed May 14 12:57:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889879 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2618871wrr; Wed, 14 May 2025 06:20:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVsttKJmp0taNOi4dDxjNhEzbs5CnOCAmRSwMfopMprA7uT3UovhuIJHjtX6cAJR2YTl8GSRg==@linaro.org X-Google-Smtp-Source: AGHT+IHmYx7ziO6rJU2whRK+vPbd/nwOPnHNDIaGkNcddLAYB3M+eDMk4Kibp9cd2G7/HOZ40BYS X-Received: by 2002:a05:622a:4295:b0:472:133f:93ae with SMTP id d75a77b69052e-49495cf642fmr48097101cf.48.1747228837149; Wed, 14 May 2025 06:20:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228837; cv=none; d=google.com; s=arc-20240605; b=d6WNMv6+7NJNSbeXMa+tWKj1b3ReSTGxPfBnE3asvJV9t07KfNNVJiEKDueiM2mukO 78lDz3rti1aYC1GZJ18Cc60cUr2Mm6mWGNJC4EkqAKIn92GvVpO8SXxu5dyGmOYKLAg7 a7qxtcnGwL+avexKQU21sRdlLnkeKRZfUtu82QdRzZCly5/+0f7Ru9H1TRvVhYOvJdrK +CEeDI6XvYahXUx6DI2nGI0OvUcq1rz6s7R87sG5LgVN2sW9iIJ6XjZuTHxuU85lhwfS x2sI7FORrt+WrvIREOvDYX0eG9Avz7naT/rhRlUYqn2RcsdbJLH8HEiclqxLp7Z2LnCI LDAw== 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; bh=9LbNUhQQtD8a4LVRYzfG8nQgCp/8duaQz/t1oq+AgcM=; fh=AgmXo2+zLpyt0lWz/ekZ8kEoo1qvR6yygj195zlOVQE=; b=k+Uyshw5DjMLBwTRC90uUXMJKld8rMUyLHEF+uYqPRd/gF/xOViwKfGLg9yw9C1M3U CY+okmCSqjhgjzxrzXTYy1MdvPxfJrympDB2Gs3T7xmybH66GL6PIv+SCFwBU7RgBAim 1QRhTPLS3Oaipx6Iupc9h8VCb9PtYFOSBeSSQJaimoLfoj0ID7Z9/cw4TV98ThLVlP6q t4+bWtAcuQBrvqZzsqx0m+w1HoxlGTIyh7t2H3mz5n1OPVr6aHBcLKb+azhmR/WAyOf1 8MpkR+xgvHaTCaIDSclF8rd6xKGmd4htKIPmO4BaFmGuQiy8Xho2UIzEChDJsHr0Y4TJ Fj7g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-494525b2ba6si134584321cf.631.2025.05.14.06.20.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:20: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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBmD-0002lr-SW; Wed, 14 May 2025 09:04:02 -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 1uFBjO-0007dE-T0; Wed, 14 May 2025 09:01:15 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBjK-0008GK-IV; Wed, 14 May 2025 09:01:05 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 5B726121AF8; Wed, 14 May 2025 15:57:50 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id F10D320B866; Wed, 14 May 2025 15:57:59 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , Pierrick Bouvier , =?utf-8?q?Philippe_Mathieu-?= =?utf-8?q?Daud=C3=A9?= , Michael Tokarev Subject: [Stable-9.2.4 26/34] accel/tcg: Don't use TARGET_LONG_BITS in decode_sleb128 Date: Wed, 14 May 2025 15:57:48 +0300 Message-Id: <20250514125758.92030-26-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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: Richard Henderson When we changed decode_sleb128 from target_long to int64_t, we failed to adjust the shift limit. Cc: qemu-stable@nongnu.org Fixes: c9ad8d27caa ("tcg: Widen gen_insn_data to uint64_t") Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson (cherry picked from commit 9401f91b9b0c46886388735b3f2033a9c254895a) Signed-off-by: Michael Tokarev diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index fdf6d8ac19..8531a27f1e 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -105,7 +105,7 @@ static int64_t decode_sleb128(const uint8_t **pp) val |= (int64_t)(byte & 0x7f) << shift; shift += 7; } while (byte & 0x80); - if (shift < TARGET_LONG_BITS && (byte & 0x40)) { + if (shift < 64 && (byte & 0x40)) { val |= -(int64_t)1 << shift; } From patchwork Wed May 14 12:57:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 889876 Delivered-To: patch@linaro.org Received: by 2002:adf:fd8a:0:b0:3a1:f579:ae88 with SMTP id d10csp2616755wrr; Wed, 14 May 2025 06:16:44 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUw9S4eIOWEfdtPy4qfo3J8GHOeTWpPcW8JSjLS73B5NxUC62MjmJJNb1VPy0psDCyToNBrEA==@linaro.org X-Google-Smtp-Source: AGHT+IH83thWlC02WA0wJzJXZLCDAu7N3fOnUi4YkV960UNd/i102fn6CMJYv3F87mdTQQMJWmmM X-Received: by 2002:a05:6214:500d:b0:6f0:e2e1:52a7 with SMTP id 6a1803df08f44-6f896ec06femr53033106d6.42.1747228604392; Wed, 14 May 2025 06:16:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1747228604; cv=none; d=google.com; s=arc-20240605; b=cf695Re6G8aiyaQqMBHziBu6TUIaG5c2tQ1EcCAZF4bXYORrJ4OIdNUIWs44dUrzLt dURxKr/2VjrGAy1lPx3U1Z+9JjOJldJNHVk1tc1jUBUYn7DpoUUx74ZBtiLUjCgZK9gk FUHPNSjg3FvMjM//Uh+0eBc0NNpjSwQ/R9E0IxORF3ZPQYMsNdrfDu2RZwjT35H92F0X sSIWAV/6VF/LogFOPEj6+VKTJoUb6JgxxFy0heRnAEyb8fzewOej7OJo0n+YwTiFmABl cHlSBN8eZGoIj8xgyww64djt2deBomNsprHLNuI16e/djWabwTM1wqETzfi3AlZmH2mO cRMA== 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; bh=qNpFEoNumO0jacQ2gJDDjnCDDNXUtGthfIRs4BZT0IU=; fh=xJ1URYKcMN3TM0/XAv5v+aCN+5tIbzAdcfBx5UNgoLw=; b=N815NiWl13m52gweFQdbWAD7oej+EkjHUmge77uIFDBuuGOgzZ/9tneGDrJp5CRTsy q3hFt06P2j6ISxV/U4TQXSbH3JBYx5p/AljHXV6bgSlDKOAfAqC65e/Lcg89t0KxcRbP Wangc0JYme0L48MF0rBd5S+jrcCJ6nfJrAeQG/vRGp9Kqd5q+q0P5R6WBIp17hu2Cf2m Zn+gYAI36y60wHId/s8lfwbTYVEKGoCsPoHNRnN2u5TbXsrx6QM7Fp3GUwxSuZPhGWwX cLneb6OVWR7DoZPf9XrQA3MWZZewUFCSFCiguLDOwkgLV1noBkRpj6k6h81RD/+b3qWl RbJw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6f6e3a58e91si141682096d6.433.2025.05.14.06.16.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 14 May 2025 06:16:44 -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; 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" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uFBlR-0001O0-D5; Wed, 14 May 2025 09:03:13 -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 1uFBjO-0007dD-T0; Wed, 14 May 2025 09:01:15 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uFBjK-0008GM-Bx; Wed, 14 May 2025 09:01:06 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 64FB5121AF9; Wed, 14 May 2025 15:57:50 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id 10FA720B867; Wed, 14 May 2025 15:58:00 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Peter Maydell , Richard Henderson , Michael Tokarev Subject: [Stable-9.2.4 27/34] target/arm: Don't assert() for ISB/SB inside IT block Date: Wed, 14 May 2025 15:57:49 +0300 Message-Id: <20250514125758.92030-27-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 If the guest code has an ISB or SB insn inside an IT block, we generate incorrect code which trips a TCG assertion: qemu-system-arm: ../tcg/tcg-op.c:3343: void tcg_gen_goto_tb(unsigned int): Assertion `(tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0' failed. This is because we call gen_goto_tb(dc, 1, ...) twice: brcond_i32 ZF,$0x0,ne,$L1 add_i32 pc,pc,$0x4 goto_tb $0x1 exit_tb $0x73d948001b81 set_label $L1 add_i32 pc,pc,$0x4 goto_tb $0x1 exit_tb $0x73d948001b81 Both calls are in arm_tr_tb_stop(), one for the DISAS_NEXT/DISAS_TOO_MANY handling, and one for the dc->condjump condition-failed codepath. The DISAS_NEXT handling doesn't have this problem because arm_post_translate_insn() does the handling of "emit the label for the condition-failed conditional execution" and so arm_tr_tb_stop() doesn't have dc->condjump set. But for DISAS_TOO_MANY we don't do that. Fix the bug by making arm_post_translate_insn() handle the DISAS_TOO_MANY case. This only affects the SB and ISB insns when used in Thumb mode inside an IT block: only these insns specifically set is_jmp to TOO_MANY, and their A32 encodings are unconditional. For the major TOO_MANY case (breaking the TB because it would cross a page boundary) we do that check and set is_jmp to TOO_MANY only after the call to arm_post_translate_insn(); so arm_post_translate_insn() sees is_jmp == DISAS_NEXT, and we emit the correct code for that situation. With this fix we generate the somewhat more sensible set of TCG ops: brcond_i32 ZF,$0x0,ne,$L1 set_label $L1 add_i32 pc,pc,$0x4 goto_tb $0x1 exit_tb $0x7c5434001b81 (NB: the TCG optimizer doesn't optimize out the jump-to-next, but we can't really avoid emitting it because we don't know at the point we're emitting the handling for the condexec check whether this insn is going to happen to be a nop for us or not.) Cc: qemu-stable@nongnu.org Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2942 Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20250501125544.727038-1-peter.maydell@linaro.org (cherry picked from commit 8ed7c0b6488a7f20318d6ba414f1cbcd0ed92afe) Signed-off-by: Michael Tokarev diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index 4eba3d1c8d..72899c19fa 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -7770,7 +7770,8 @@ static bool arm_check_ss_active(DisasContext *dc) static void arm_post_translate_insn(DisasContext *dc) { - if (dc->condjmp && dc->base.is_jmp == DISAS_NEXT) { + if (dc->condjmp && + (dc->base.is_jmp == DISAS_NEXT || dc->base.is_jmp == DISAS_TOO_MANY)) { if (dc->pc_save != dc->condlabel.pc_save) { gen_update_pc(dc, dc->condlabel.pc_save - dc->pc_save); }