[{"id":3675527,"web_url":"http://patchwork.ozlabs.org/comment/3675527/","msgid":"<4303E81D-5539-4666-BBE8-BA58E3F72B6F@unpredictable.fr>","list_archive_url":null,"date":"2026-04-09T22:12:54","subject":"Re: [PATCH v6 6/6] target/arm/hvf,\n whpx: wire ISV=0 emulation for data\n aborts","submitter":{"id":91318,"url":"http://patchwork.ozlabs.org/api/people/91318/","name":"Mohamed Mediouni","email":"mohamed@unpredictable.fr"},"content":"> On 10. Apr 2026, at 00:06, Lucas Amaral <lucaaamaral@gmail.com> wrote:\n> \n> When a data abort with ISV=0 occurs during MMIO emulation, the\n> syndrome register does not carry the access size or target register.\n> Previously this hit an assert(isv) and killed the VM.\n> \n> Replace the assert with instruction fetch + decode + emulate using the\n> shared library in target/arm/emulate/.  The faulting instruction is read\n> from guest memory via cpu_memory_rw_debug(), decoded by the decodetree-\n> generated decoder, and emulated against the vCPU register file.\n> \n> Both HVF (macOS) and WHPX (Windows Hyper-V) use the same pattern:\n>  1. cpu_synchronize_state() to flush hypervisor registers\n>  2. Fetch 4-byte instruction at env->pc\n>  3. arm_emul_insn(env, insn)\n>  4. On success, advance PC past the emulated instruction\n> \n> If the instruction is unhandled or a memory error occurs, a synchronous\n> external abort is injected into the guest via syn_data_abort_no_iss()\n> with fnv=1 and fsc=0x10, matching the syndrome that KVM uses in\n> kvm_inject_arm_sea().  The guest kernel's fault handler then reports\n> the error through its normal data abort path.\n> \n> WHPX adds a whpx_inject_data_abort() helper and adjusts the\n> whpx_handle_mmio() return convention so the caller skips PC advancement\n> when an exception has been injected.\n> \n> Signed-off-by: Lucas Amaral <lucaaamaral@gmail.com>\n> ---\n> target/arm/hvf/hvf.c       | 46 ++++++++++++++++++++++++++--\n> target/arm/whpx/whpx-all.c | 61 +++++++++++++++++++++++++++++++++++++-\n> 2 files changed, 103 insertions(+), 4 deletions(-)\n> \n> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c\n> index 5fc8f6bb..000e54bd 100644\n> --- a/target/arm/hvf/hvf.c\n> +++ b/target/arm/hvf/hvf.c\n> @@ -32,6 +32,7 @@\n> #include \"arm-powerctl.h\"\n> #include \"target/arm/cpu.h\"\n> #include \"target/arm/internals.h\"\n> +#include \"emulate/arm_emulate.h\"\n> #include \"target/arm/multiprocessing.h\"\n> #include \"target/arm/gtimer.h\"\n> #include \"target/arm/trace.h\"\n> @@ -2175,10 +2176,49 @@ static int hvf_handle_exception(CPUState *cpu, hv_vcpu_exit_exception_t *excp)\n>         assert(!s1ptw);\n> \n>         /*\n> -         * TODO: ISV will be 0 for SIMD or SVE accesses.\n> -         * Inject the exception into the guest.\n> +         * ISV=0: syndrome doesn't carry access size/register info.\n> +         * Fetch and emulate via target/arm/emulate/.\n>          */\n> -        assert(isv);\n> +        if (!isv) {\n> +            ARMCPU *arm_cpu = ARM_CPU(cpu);\n> +            CPUARMState *env = &arm_cpu->env;\n> +            uint32_t insn;\n> +            ArmEmulResult r;\n> +\n> +            cpu_synchronize_state(cpu);\n> +\n> +            if (cpu_memory_rw_debug(cpu, env->pc,\n> +                                    (uint8_t *)&insn, 4, false) != 0) {\nHello,\n\nHaving a version of mem_access exported and used there too to read the instruction\nto get rid of cpu_memory_rw_debug there too\n\n(For both WHPX and HVF)\n\n> +                bool same_el = arm_current_el(env) == 1;\n> +                uint32_t esr = syn_data_abort_no_iss(same_el,\n> +                    1, 0, 0, 0, iswrite, 0x10);\n> +\n> +                error_report(\"HVF: cannot read insn at pc=0x%\" PRIx64,\n> +                             (uint64_t)env->pc);\n> +                env->exception.vaddress = excp->virtual_address;\n> +                hvf_raise_exception(cpu, EXCP_DATA_ABORT, esr, 1);\n> +                break;\n> +            }\n> +\n> +            r = arm_emul_insn(env, insn);\n> +            if (r == ARM_EMUL_UNHANDLED || r == ARM_EMUL_ERR_MEM) {\n> +                bool same_el = arm_current_el(env) == 1;\n> +                uint32_t esr = syn_data_abort_no_iss(same_el,\n> +                    1, 0, 0, 0, iswrite, 0x10);\n> +\n> +                error_report(\"HVF: ISV=0 %s insn 0x%08x at \"\n> +                             \"pc=0x%\" PRIx64 \", injecting data abort\",\n> +                             r == ARM_EMUL_UNHANDLED ? \"unhandled\"\n> +                                                     : \"memory error\",\n> +                             insn, (uint64_t)env->pc);\n> +                env->exception.vaddress = excp->virtual_address;\n> +                hvf_raise_exception(cpu, EXCP_DATA_ABORT, esr, 1);\n> +                break;\n> +            }\n> +\n> +            advance_pc = true;\n> +            break;\n> +        }\n> \n>         /*\n>          * Emulate MMIO.\n> diff --git a/target/arm/whpx/whpx-all.c b/target/arm/whpx/whpx-all.c\n> index 513551be..0c04073e 100644\n> --- a/target/arm/whpx/whpx-all.c\n> +++ b/target/arm/whpx/whpx-all.c\n> @@ -29,6 +29,7 @@\n> #include \"syndrome.h\"\n> #include \"target/arm/cpregs.h\"\n> #include \"internals.h\"\n> +#include \"emulate/arm_emulate.h\"\n> \n> #include \"system/whpx-internal.h\"\n> #include \"system/whpx-accel-ops.h\"\n> @@ -352,6 +353,27 @@ static void whpx_set_gp_reg(CPUState *cpu, int rt, uint64_t val)\n>     whpx_set_reg(cpu, reg, reg_val);\n> }\n> \n> +/*\n> + * Inject a synchronous external abort (data abort) into the guest.\n> + * Used when ISV=0 instruction emulation fails.  Matches the syndrome\n> + * that KVM uses in kvm_inject_arm_sea().\n> + */\n> +static void whpx_inject_data_abort(CPUState *cpu, bool iswrite)\n> +{\n> +    ARMCPU *arm_cpu = ARM_CPU(cpu);\n> +    CPUARMState *env = &arm_cpu->env;\n> +    bool same_el = arm_current_el(env) == 1;\n> +    uint32_t esr = syn_data_abort_no_iss(same_el, 1, 0, 0, 0, iswrite, 0x10);\n> +\n> +    cpu->exception_index = EXCP_DATA_ABORT;\n> +    env->exception.target_el = 1;\n> +    env->exception.syndrome = esr;\n> +\n> +    bql_lock();\n> +    arm_cpu_do_interrupt(cpu);\n> +    bql_unlock();\n> +}\n> +\n> static int whpx_handle_mmio(CPUState *cpu, WHV_MEMORY_ACCESS_CONTEXT *ctx)\n> {\n>     uint64_t syndrome = ctx->Syndrome;\n> @@ -366,7 +388,40 @@ static int whpx_handle_mmio(CPUState *cpu, WHV_MEMORY_ACCESS_CONTEXT *ctx)\n>     uint64_t val = 0;\n> \n>     assert(!cm);\n> -    assert(isv);\n> +\n> +    /*\n> +     * ISV=0: syndrome doesn't carry access size/register info.\n> +     * Fetch and decode the faulting instruction via the emulation library.\n> +     */\n> +    if (!isv) {\n> +        ARMCPU *arm_cpu = ARM_CPU(cpu);\n> +        CPUARMState *env = &arm_cpu->env;\n> +        uint32_t insn;\n> +        ArmEmulResult r;\n> +\n> +        cpu_synchronize_state(cpu);\n> +\n> +        if (cpu_memory_rw_debug(cpu, env->pc,\n> +                                (uint8_t *)&insn, 4, false) != 0) {\n> +            error_report(\"WHPX: cannot read insn at pc=0x%\" PRIx64,\n> +                         (uint64_t)env->pc);\n> +            whpx_inject_data_abort(cpu, iswrite);\n> +            return 1;\n> +        }\n> +\n> +        r = arm_emul_insn(env, insn);\n> +        if (r == ARM_EMUL_UNHANDLED || r == ARM_EMUL_ERR_MEM) {\n> +            error_report(\"WHPX: ISV=0 %s insn 0x%08x at \"\n> +                         \"pc=0x%\" PRIx64 \", injecting data abort\",\n> +                         r == ARM_EMUL_UNHANDLED ? \"unhandled\"\n> +                                                 : \"memory error\",\n> +                         insn, (uint64_t)env->pc);\n> +            whpx_inject_data_abort(cpu, iswrite);\n> +            return 1;\n> +        }\n> +\n> +        return 0;\n> +    }\n> \n>     if (iswrite) {\n>         val = whpx_get_gp_reg(cpu, srt);\n> @@ -451,6 +506,10 @@ int whpx_vcpu_run(CPUState *cpu)\n>             }\n> \n>             ret = whpx_handle_mmio(cpu, &vcpu->exit_ctx.MemoryAccess);\n> +            if (ret > 0) {\n> +                advance_pc = false;\n> +                ret = 0;\n> +            }\n>             break;\n>         case WHvRunVpExitReasonCanceled:\n>             cpu->exception_index = EXCP_INTERRUPT;\n> -- \n> 2.52.0\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=unpredictable.fr header.i=@unpredictable.fr\n header.a=rsa-sha256 header.s=sig1 header.b=NrsDYl2r;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsDjl2rjhz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 08:14:01 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wAxcm-0003r2-AI; Thu, 09 Apr 2026 18:13:20 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wAxck-0003qf-Kv\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 18:13:18 -0400","from p-east2-cluster5-host9-snip4-10.eps.apple.com ([57.103.79.113]\n helo=outbound.st.icloud.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mohamed@unpredictable.fr>)\n id 1wAxci-0001zA-2V\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 18:13:18 -0400","from outbound.st.icloud.com (unknown [127.0.0.2])\n by p00-icloudmta-asmtp-us-east-1a-100-percent-7 (Postfix) with ESMTPS id\n 4CB5F1800ADE; Thu, 09 Apr 2026 22:13:08 +0000 (UTC)","from smtpclient.apple (unknown [17.42.251.67])\n by p00-icloudmta-asmtp-us-east-1a-100-percent-7 (Postfix) with ESMTPSA id\n 084991800AC7; Thu, 09 Apr 2026 22:13:06 +0000 (UTC)"],"Dkim-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=unpredictable.fr;\n s=sig1; t=1775772792; x=1778364792;\n bh=0D1d/QKolzA1KrfQvkROrKknGQUn6IWPvj5l8EVojLs=;\n h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To:x-icloud-hme;\n b=NrsDYl2rbJX9PCckh48N5+N7V9uz7AKWkNbR2L4569rM2SefPVby4n9KNjgXHQKhVe0WNKN1mzr+7rjBaiGmJe09y2M9/uwvBi/IiyNsDs3tozj4+nzwZnsdBQGEYugr5E3IbYWJdyknsE/CPulMsi6eiuvXZFIy7UYow0I+Z8a5YYvm76SI8mzJGxSjahVd8afjc+EhJ1ZAcK/3YLhUz8W5R474DDs3OuOOtkZybBhVmqB2fucyXOKdjHwauT6lQPYhjx4pNWPvGrlIs7q3C2zkfchdzxyzKbW4FnHG3agMpSeK1YMDLLe2o/78UluKf4SsNvV/FaAAlBCsYkmFLw==","mail-alias-created-date":"1752046281608","Content-Type":"text/plain;\n\tcharset=us-ascii","Mime-Version":"1.0 (Mac OS X Mail 16.0 \\(3864.500.181\\))","Subject":"Re: [PATCH v6 6/6] target/arm/hvf,\n whpx: wire ISV=0 emulation for data\n aborts","In-Reply-To":"<20260409220614.65558-7-lucaaamaral@gmail.com>","Date":"Fri, 10 Apr 2026 00:12:54 +0200","Cc":"qemu-devel@nongnu.org, qemu-arm@nongnu.org, agraf@csgraf.de,\n peter.maydell@linaro.org, alex.bennee@linaro.org,\n richard.henderson@linaro.org","Content-Transfer-Encoding":"quoted-printable","Message-Id":"<4303E81D-5539-4666-BBE8-BA58E3F72B6F@unpredictable.fr>","References":"<20260409220614.65558-1-lucaaamaral@gmail.com>\n <20260409220614.65558-7-lucaaamaral@gmail.com>","To":"Lucas Amaral <lucaaamaral@gmail.com>","X-Mailer":"Apple Mail (2.3864.500.181)","X-Authority-Info-Out":"v=2.4 cv=KYjfcAYD c=1 sm=1 tr=0 ts=69d82476\n cx=c_apl:c_pps:t_out a=YrL12D//S6tul8v/L+6tKg==:117\n a=YrL12D//S6tul8v/L+6tKg==:17 a=kj9zAlcOel0A:10 a=A5OVakUREuEA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=pGLkceISAAAA:8 a=9fa6GIJ-UKfugACyS8kA:9\n a=CjuIK1q_8ugA:10","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA5MDIwNSBTYWx0ZWRfX/sYw40ZcMmya\n 3IhVKuVS21B3OHnmBJckRQaS5qzP57cyedlP1W03Dl2Tj4evvs9Q+KKSxEcGJOqVui2YFNi6Gdo\n aDsYThqbN407HE8OvDuOgrCyLu6jUR8PckqE7VlBabeYZU6g1NewybAwd5cvJPai75lrKb49cM9\n 1ruqo3KUatube6dUgaAyWiFrMdG9h3aLUMVYgjNIbnfE2eEtfp52mCsQ0JftD6ELCq2gG1EhNTC\n HIiV+BxL+xQwp++dDzXZWJGuspE7XTRLuQ0f023p4EsEamADxYq1Lws4olGUC2szIfjAhtQzFZg\n /61KSXYFapCxwLbVb8fS5g5mhaSx7OLh8uW1OMhiM4sl5ycsT2L23aKMUFTgYY=","X-Proofpoint-GUID":"xV5HHaqicpl0eow_j9KwY7Kn4p3apvcx","X-Proofpoint-ORIG-GUID":"xV5HHaqicpl0eow_j9KwY7Kn4p3apvcx","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-09_04,2026-04-09_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=notspam policy=default score=0 bulkscore=0\n malwarescore=0 mlxlogscore=620 spamscore=0 clxscore=1030 mlxscore=0\n adultscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 classifier=spam\n authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000\n definitions=main-2604090205","Received-SPF":"pass client-ip=57.103.79.113;\n envelope-from=mohamed@unpredictable.fr; helo=outbound.st.icloud.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Reply-to":"Mohamed Mediouni <mohamed@unpredictable.fr>","From":"Mohamed Mediouni via qemu development <qemu-devel@nongnu.org>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3675660,"web_url":"http://patchwork.ozlabs.org/comment/3675660/","msgid":"<20260410052004.79395-1-lucaaamaral@gmail.com>","list_archive_url":null,"date":"2026-04-10T05:20:04","subject":"Re: [PATCH v6 0/6] target/arm: ISV=0 data abort emulation library","submitter":{"id":92822,"url":"http://patchwork.ozlabs.org/api/people/92822/","name":"Lucas Amaral","email":"lucaaamaral@gmail.com"},"content":"Hi Mohamed,\n\nThanks for the thorough review and the Reviewed-by tags on all six\npatches.\n\nOn the observations:\n\n> [1/6] Perhaps having a common version of this for fetching the\n> instruction\n\nGood point. The ISV=0 wiring in target/arm/hvf/hvf.c and\ntarget/arm/whpx/whpx-all.c still uses cpu_memory_rw_debug() to fetch\nthe faulting instruction at env->pc — Henderson flagged this for the\nlibrary code in v5, but the wiring code was out of scope for v6. I'll\ninvestigate factoring out a common get_phys_addr() + address_space_rw\nhelper covering both call sites and send it as a follow-up.\n\n> [4/6] Do people actually use [exclusive load/store on MMIO]? And if\n> so I wonder if that's an application bug...\n\nI had the impression that virglrenderer hit this early on, but I'm\nnot 100% sure of the exact case anymore. The v4 emulation library\ntried to cover the most likely ISV=0 triggers — load/store pair,\nregister-offset, exclusives, atomics, CAS — without fully exhausting\nthe ISA. I might double-check what actually exercises this path in\npractice.\n\n> [5/6] Maybe there should be a restriction to put a warning message\n> somewhere if an op happens on a non-MMIO range...\n\nAgreed, that would help debug guest issues. I'll look into adding a\nwarn_report_once() when get_phys_addr() resolves to a RAM region (vs\nMMIO/Device).\n\nI'll send these as a follow-up series once v6 lands.\n\nThanks,\nLucas","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=E0pG1cCh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsQBH1XDGz1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 15:20:53 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wB4Hw-0006Ml-UN; Fri, 10 Apr 2026 01:20:16 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <lucaaamaral@gmail.com>)\n id 1wB4Hw-0006MR-1x\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 01:20:16 -0400","from mail-dy1-x1329.google.com ([2607:f8b0:4864:20::1329])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <lucaaamaral@gmail.com>)\n id 1wB4Hu-0005NU-7n\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 01:20:15 -0400","by mail-dy1-x1329.google.com with SMTP id\n 5a478bee46e88-2cfd69b564dso2303702eec.0\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 22:20:13 -0700 (PDT)","from localhost.localdomain ([2804:7f4:c030:bb40:195d:78fd:ecba:d45])\n by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2d561bde70csm3407253eec.15.2026.04.09.22.20.07\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Thu, 09 Apr 2026 22:20:11 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775798412; x=1776403212; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=JeRb9OZMxqyROpUwNt/lYm+VexS0qBiKUzLUseP2hEs=;\n b=E0pG1cChPFA6hbxntZsky+61GpXVY3abNlia298RJmWrugP1f5yb9IhEHyV+DKyeY6\n 3+v3Cnjqw3ZQJy2xzJXQ1FQcSlQHq2/5jdeteofVVqc06kSUY1YIYCCxH6TX0VGo12nT\n s9bt7Yhi8LCPG5/r/Ce8hL2xko7Jj1hFJVpU9ZJpYjf5EjPzAEkLHAH59Zr8H+2yQbxs\n 8MnUI72f5V/iGDz3VDe6KsFAifTcdoEZc/kajQ2RwcpoL3VclYulVH9mcUJxCZDQMgpp\n EpbWPIgPvqDKyypZug55xdH42hx8z8JXUkAHCW8sChJhINXdGdWdASwYSepb1IIAIwPe\n KQlw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775798412; x=1776403212;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=JeRb9OZMxqyROpUwNt/lYm+VexS0qBiKUzLUseP2hEs=;\n b=IQqeBsbL/3g1t2dP57CNOf96IqhstcID+N4OAg7FUlE+pW8dldzioHLa0Uv1iRqcf6\n 1BlyQdwj2Xb5Wr5LHJ4IjfzP4jUpE93eO3cdrdRQo4kuA++8q4Tn0gfr9869+fzvZuDH\n NEiXefc9jRWuA4aF8BJ1JrwtgHFo3MQcEBSphs7xQJ4zfVPeBFyjTElEUj1ZxMpw0DhO\n /VFQSPgeUY2JeLm9KeAzx8WCFTGLRhS7kzbmv+sxWZ8DAGsYqVKLO9nvrFpEOJ8Zr3hd\n dyV8LHqGvBalzQ99spGM/I/IGu1oG6SrSa5O1ovqsefOUvYjS5xn0yE7bZpGU72qBlrg\n RiXw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXJzlN6BHv3Jwk/4Lquzsddr/TogQqMEwmsjV4VKOCln5AQuoldWXi868SqPGsXPGpZa32es6tmNnd/@nongnu.org","X-Gm-Message-State":"AOJu0YzVcuvM2rqi0/kk4G/tFjDW0bwQRaWkcfUl3d4oC6aYB72MNZFg\n CPxAENZZkyfuzDo/OAzuKzBkqxxTIKPooWzOqvbS9gAvl21rMZCU9vSP","X-Gm-Gg":"AeBDiev+Nd16s0aJbdWG2usaBdqQHkN+URLb0th1jLSmhngQozIXYIMySJgalpOWxag\n Z7vt9NFbGhEQuNWiHvkUF4ELMTaofobkABtEW1Edbix9doRRLXNbhDgPVYRz01QZYJ7F09MgcL7\n FNCj1PKEDCE3+JE+nHyo7DWm1NZyLNExgj1j6WI0ppq1Ipw9RBYSZA4U/6PSUw4W43s1VzGuMyX\n 95FnD8Rp1rshXfLqaVleD5q6rNYWSfqMi0IDb8T5NIQcmNEmQvIAZHlIMwwKUXYQrQDRxW3dzVQ\n 8sA9jMxZ6WiPkjwJxNa0OxMRc8JoDtC+m/PEds0m+jVuLPDv428eCXzVOq5hBVJaRN2zhcvA9g3\n 5/FhTy52FLNd+YMpMpEi8mGF0dnG7T1zb/DDqycMW0y1+Edwj8OjDNHuzMr/cyRI82KbFwX3Ch+\n NlqXLfaFuTwWjvKiPKIp69PDWlDa80y9jobCk2/6rMMwIiNpEp2tyorDJ2OECQQg==","X-Received":"by 2002:a05:7300:e82b:b0:2d2:129a:1682 with SMTP id\n 5a478bee46e88-2d5881ad24emr1107412eec.16.1775798412080;\n Thu, 09 Apr 2026 22:20:12 -0700 (PDT)","From":"Lucas Amaral <lucaaamaral@gmail.com>","To":"Mohamed Mediouni <mohamed@unpredictable.fr>","Cc":"Lucas Amaral <lucaaamaral@gmail.com>, qemu-devel@nongnu.org,\n qemu-arm@nongnu.org, agraf@csgraf.de, peter.maydell@linaro.org,\n alex.bennee@linaro.org, richard.henderson@linaro.org","Subject":"Re: [PATCH v6 0/6] target/arm: ISV=0 data abort emulation library","Date":"Fri, 10 Apr 2026 02:20:04 -0300","Message-ID":"<20260410052004.79395-1-lucaaamaral@gmail.com>","X-Mailer":"git-send-email 2.52.0","In-Reply-To":"<4303E81D-5539-4666-BBE8-BA58E3F72B6F@unpredictable.fr>","References":"<20260409220614.65558-1-lucaaamaral@gmail.com>\n <4303E81D-5539-4666-BBE8-BA58E3F72B6F@unpredictable.fr>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::1329;\n envelope-from=lucaaamaral@gmail.com; helo=mail-dy1-x1329.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n 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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]