From nobody Sun Feb 8 12:31:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmx.de ARC-Seal: i=1; a=rsa-sha256; t=1657223326; cv=none; d=zohomail.com; s=zohoarc; b=QqhmUUfe61R9ED3EoJcufFK4Jb+yyFxvgkSOmGpXQ8tytBuC3QCB7wl9IawNOQEtdCcr32pxQKq9PUA3BiwuU2F+BgURogpyt3FbEvqpZmpoPESbZGJ/jIp2u6Ejhg/ambuJZ98dBcWsYGkTNB5VEaI8YV9GisbbTwrhLSrfWko= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657223326; h=Content-Type:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=n59266nXvpqQMb8Ocb0BN+Y5EmTjZ6McgOhWwOK9R+E=; b=Q6DLBA+RUDtwnDH7morUkhvCZD5ptAzgjW15y/8fjXl5jCxFOKktZdzlSDOjP4CZYBeVMmKw6UBZki6G6ozkNU84rz7ZdQIeeHsLSMGFxynmF216k0sZQICZAFpqOJPx7PlmatLdB8Sd1Fq41F4b/FfXl+pIgEamWqVoLF9gWi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1657223326909450.21271272859894; Thu, 7 Jul 2022 12:48:46 -0700 (PDT) Received: from localhost ([::1]:43772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9XUT-0002sr-Km for importer@patchew.org; Thu, 07 Jul 2022 15:48:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9XR8-0000af-6x for qemu-devel@nongnu.org; Thu, 07 Jul 2022 15:45:18 -0400 Received: from mout.gmx.net ([212.227.15.19]:33185) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9XR6-0004lT-H0 for qemu-devel@nongnu.org; Thu, 07 Jul 2022 15:45:17 -0400 Received: from p100 ([92.116.141.48]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MhU9Z-1ne21s2fvn-00ecGF; Thu, 07 Jul 2022 21:45:03 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1657223103; bh=sUgEt7NqMVHa/clUS2/sZFOTZ5VURvEV1QtcjoUQ3KA=; h=X-UI-Sender-Class:Date:From:To:Subject; b=XFc3BT35IA7mLrSWkjh1wnQQRgIzWL0mesixfUX38FRxviriFR9N+Oyr22rxeXQ8h l9O1qeKCqmlaPQh+Oi70lIw44hdQzij0KxUSiOxTqWx3liwU4MgR9KuSKBVOcMEqGL RmDH+nNLQvsZqkbjR3qwLukbqJXqkPM/HLoBH3SA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Date: Thu, 7 Jul 2022 21:45:01 +0200 From: Helge Deller To: Laurent Vivier , Richard Henderson , qemu-devel@nongnu.org, Philippe =?iso-8859-15?Q?Mathieu-Daud=E9?= Subject: [PATCH] linux-user/hppa: Fix segfaults on page zero Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Provags-ID: V03:K1:YT9mMpdZbDYf+fhgSYMd1VicVfaMbd02dQKlDXL2ucz9qpVSlSB G2hKDpN5zaDnHNetfmqQ6cPVWdjOD4DgG/3xSi93MpYNBg1k6IdXzFrmqxb19b/EH3opoz/ 5gEk4H5Dzm2qHRHVkA/xzNzjFJsk+XcGeojoQTLyyWxQXp5uMUVRhzSmgrESxIRuVl029Qn 0aT6GvZnrO8MBbucAFaAA== X-UI-Out-Filterresults: notjunk:1;V03:K0:zqKCV1zjkOY=:lLq0Qp6+K5vcskWh6Oi4eu ZwmYn00Iceh65Hn6UFCl9DXDxzEzbvxOxPlaY7BTRdwle/BsPr9MORSVhUKpiK7lVuKPfZlzu Y4CxaHUGP6N0Jupn+ja/q4/x+HcaJE8I8kSOiKvsHw0bkyltCXvX2mwQnb9grJpTyS2k/sTEr W6iEtpppDj6Id4u6fZQN7rLGlehbCkdVObR+Typoi5biFWum2c5Wd0dru7vrjxGfDEy5+okNH fi2IyKHhExahUwqUGVTJT3Jxf2VVVzYjScuUu+zKvKZdKqs3V64rQm6dgN1gffmU5uOYoITQL zBPMmj3LqQgbQlSaZuhCsN99IdkKs8YK1Y/P2KVxTBlPa7YamGYeA2XYQk0kS2pYq4ipLe70q ltHGwzzLmCjvsdtoUSrIP4YBVDpjNzdwjk/MtsVLCjvwbllr5d7RwQHktuonSALI+bZwD1Hye 5ArK92YpF53nj+ezsCDPpf/WnwEpiNuW/Cu5LqkXniK54YucwRiA6axOKLcbscmJaN5i/CjMu QsNrYjvkm/GPlr5cs/0/EEmrXOHgXeF2s5fa/exRSZBiQYrd+mwUD/LlzeFT98H+aoL959IL4 QqI5W6aLLPm6a+UFaVNT2HQF3pNBlYIhyfCRS8HayiExk1WJXgvrlHNqY8JOxqd1HAY0ZmiIq VqNTuJNcbmYGNLVpwlEGCFx1XR6fA3fIZoG7YFfnXbApvxb/sFQxwCj1wiINojeXUgDsRZHYz /AbFpWM+VhdGG5bR1uZyiRreQaiTyiAsneq/lG/ThJmuaHRVoxb1IHTSVReiMNXniWfFJZ7cZ DIAynlt1P/mGkH9tArl15l9+X0ggYATlvdGnVU6Wzuic2jdsdys96fd4mZruQryEnDxfPtyjM LfoJieSOqDZa31bebnls897yhV9Ocs0zEghv9F9rYQ1iPGo9nWapjbvZtxeGwrAqDPH/Lhktm D4AOG26veTxyY9K2BdJioF0o8ZhtAQnFEDcakwK/ZGjpkEeVMz7t6hY/12BS9lhXeFFIl3q19 sWyzTJqrmsJ7WTbk12VvEPQLTVmcrvgMmtS5I+tq+YBpF4WhezxbH00TbhSeVJFSZdtubrZ+g TEMfOLSyqs+Jkj7gB+6KfyhsS5LkrCwCa6Pex3mXmKTEFZBUV6bcrDAgg== Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.19; envelope-from=deller@gmx.de; helo=mout.gmx.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmx.net) X-ZM-MESSAGEID: 1657223329231100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This program: int main(void) { asm("bv %r0(%r0)"); return 0; } produces on real hardware the expected segfault: Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- SIGSEGV {si_signo=3DSIGSEGV, si_code=3DSEGV_MAPERR, si_addr=3D0x3} --- +++ killed by SIGSEGV +++ Segmentation fault But when run on linux-user you get instead internal qemu errors: ERROR: linux-user/hppa/cpu_loop.c:172:cpu_loop: code should not be reached Bail out! ERROR: linux-user/hppa/cpu_loop.c:172:cpu_loop: code should not b= e reached ERROR: accel/tcg/cpu-exec.c:933:cpu_exec: assertion failed: (cpu =3D=3D cur= rent_cpu) Bail out! ERROR: accel/tcg/cpu-exec.c:933:cpu_exec: assertion failed: (cpu = =3D=3D current_cpu) Fix it by adding the missing case for the EXCP_IMP trap in cpu_loop() and raise a segfault. Signed-off-by: Helge Deller diff --git a/linux-user/hppa/cpu_loop.c b/linux-user/hppa/cpu_loop.c index a576d1a249..8f374aeef6 100644 --- a/linux-user/hppa/cpu_loop.c +++ b/linux-user/hppa/cpu_loop.c @@ -143,6 +143,9 @@ void cpu_loop(CPUHPPAState *env) env->iaoq_f =3D env->gr[31]; env->iaoq_b =3D env->gr[31] + 4; break; + case EXCP_IMP: + force_sig_fault(TARGET_SIGSEGV, TARGET_SEGV_MAPERR, env->iaoq_= f); + break; case EXCP_ILL: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPN, env->iaoq_f); break;