[{"id":3674408,"web_url":"http://patchwork.ozlabs.org/comment/3674408/","msgid":"<adUvBNdDiVYh1gpo@ZEVORN-PC.localdomain>","list_archive_url":null,"date":"2026-04-07T16:23:10","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":92265,"url":"http://patchwork.ozlabs.org/api/people/92265/","name":"Chao Liu","email":"chao.liu.zevorn@gmail.com"},"content":"On Tue, Apr 07, 2026 at 02:36:10PM +1000, alistair23@gmail.com wrote:\n> From: Alistair Francis <alistair.francis@wdc.com>\n> \n> The RISC-V spec states:\n> \n> \"For the purposes of memory protection, a failed SC.W may be treated\n> like a store.\"\n> \n> So if the comparison in sc.w fails we should still check for alignment\n> and do a probe access to check permissions.\n> \n> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n> ---\n>  target/riscv/helper.h                   |  3 +++\n>  target/riscv/op_helper.c                | 14 ++++++++++++++\n>  target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n>  3 files changed, 23 insertions(+)\n> \n> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n> index b785456ee0..af6cfcfc27 100644\n> --- a/target/riscv/helper.h\n> +++ b/target/riscv/helper.h\n> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n>  #ifndef CONFIG_USER_ONLY\n>  DEF_HELPER_1(ssamoswap_disabled, void, env)\n>  #endif\n> +\n> +/* Zalrsc\" SC write probe */\nstray `\"` after Zalrsc.\n\nother LGTM :)\n\nReviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>\n\nThanks,\nChao\n> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n> index 6ccc127c30..b569366369 100644\n> --- a/target/riscv/op_helper.c\n> +++ b/target/riscv/op_helper.c\n> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env, target_ulong address)\n>      /* We don't emulate the cache-hierarchy, so we're done. */\n>  }\n>  \n> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n> +                           target_ulong size)\n> +{\n> +    uintptr_t ra = GETPC();\n> +    int mmu_idx = riscv_env_mmu_index(env, false);\n> +\n> +    if (addr & (size - 1)) {\n> +        env->badaddr = addr;\n> +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n> +    }\n> +\n> +    probe_write(env, addr, size, mmu_idx, ra);\n> +}\n> +\n>  #ifndef CONFIG_USER_ONLY\n>  \n>  target_ulong helper_sret(CPURISCVState *env)\n> diff --git a/target/riscv/insn_trans/trans_rva.c.inc b/target/riscv/insn_trans/trans_rva.c.inc\n> index a7a3278d24..62c0fe673d 100644\n> --- a/target/riscv/insn_trans/trans_rva.c.inc\n> +++ b/target/riscv/insn_trans/trans_rva.c.inc\n> @@ -90,6 +90,12 @@ static bool gen_sc(DisasContext *ctx, arg_atomic *a, MemOp mop)\n>       */\n>      TCGBar bar_strl = (ctx->ztso || a->rl) ? TCG_BAR_STRL : 0;\n>      tcg_gen_mb(TCG_MO_ALL + a->aq * TCG_BAR_LDAQ + bar_strl);\n> +    /*\n> +     * \"For the purposes of memory protection, a failed SC.W may be treated\n> +     * like a store.\" so let's check the write access permissions\n> +     */\n> +    gen_helper_sc_probe_write(tcg_env, src1,\n> +                              tcg_constant_tl(memop_size(mop)));\n>      gen_set_gpr(ctx, a->rd, tcg_constant_tl(1));\n>  \n>      gen_set_label(l2);\n> -- \n> 2.53.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=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=RYFo+iD9;\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 (lists.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 4fqxCD6MXnz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 05:31:36 +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 1wABTk-0004ie-Mz; Tue, 07 Apr 2026 14:48:48 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <chao.liu.zevorn@gmail.com>)\n id 1wABS4-0002em-U9\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 14:47:04 -0400","from mail-qk1-x744.google.com ([2607:f8b0:4864:20::744])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <chao.liu.zevorn@gmail.com>)\n id 1wA9DD-0000Vm-4c\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 12:23:36 -0400","by mail-qk1-x744.google.com with SMTP id\n af79cd13be357-8d424af6282so501909285a.0\n for <qemu-devel@nongnu.org>; Tue, 07 Apr 2026 09:23:34 -0700 (PDT)","from ZEVORN-PC.localdomain ([162.244.208.119])\n by smtp.gmail.com with ESMTPSA id\n af79cd13be357-8d2a8c2a453sm1370549385a.47.2026.04.07.09.23.27\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Apr 2026 09:23:30 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775579012; x=1776183812; darn=nongnu.org;\n h=in-reply-to:content-disposition:mime-version:references:message-id\n :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;\n bh=IZHSAVKdJyuJt/gQRuSxcAt6hhuT+ixUxltGt6A/2FE=;\n b=RYFo+iD98I+IHWu0agbbD2U6HS6vaA01zzRsJlnjrkV5chjBU5uubT3nT9Rx8560kr\n M3CJFGWMMnEMeYU546w0a+o6GsUEb+Opyy2Zp1qiBrArNgRhjUmpf43hphJ/8A9k1cLg\n LBMhaiM32Oi7CWkbQic9jNfaMTL5DASurSGcmJv1O4T5dZXqh62FGcxAL99hNDzo6/Yk\n /Vcrv2Pa1bwHJXxeV+ZBlFdQlYdtRfI3EDRRncHoGjZgEJDyzHxAm+e1DyBwGyy9WJYN\n wZeesLah1iw6FaegMoUZ2Y1VVzMIagn+4S3MokzvukwhQ561CIIxBSBNRbERHhaLHTg5\n cNdQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775579012; x=1776183812;\n h=in-reply-to:content-disposition:mime-version:references:message-id\n :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=IZHSAVKdJyuJt/gQRuSxcAt6hhuT+ixUxltGt6A/2FE=;\n b=WlHknSfKfWzS6nyeZ5DB6J45z7ayN77VBQEgQidG5ZJGpDoPDkMuaol6Zta+f8V/ze\n 3L4dFXsMgAOuJuSSMOAGRrsZmvYEJJk9Lq/vsJy7jNXyietQlSb7DoH6CG71UwL9iEKW\n pBAe9qkuj/NDrA9S2SwfuSjfMStjb07eoxJeGQUplJ9REfv1tlA6SZhHBzjgqOxn2kPp\n oM2vsAMdkJ3yz5GSFh880ZbZuagZLN9azOTFamT/E/pYlakhP9vTM0s7vccpjzJT9rVr\n JJvCTimNrCDvbdeuaOV6K5XY931AbVlVJez3/d6Ptgv2A9hXpCf8AJfvswfwD1ZHAdFR\n V5gg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXXqplM7McIG8qqGjVgTJm225F4sz4Jsoz7Hq2XtajWxq5KTG6uxX53bRW96orj811rVy8iqE3toZ81@nongnu.org","X-Gm-Message-State":"AOJu0Yyoxlvl991AGyYMFZdceDkfJXqYusjcAs86BaPOAnuSE0ZOmO8G\n xQ9coUgNCInzxTG14XZZolBnkhoRLt2AJp6DfjzTEIOc5NBznRrsCksc","X-Gm-Gg":"AeBDievSNR14li+dRV4zVoXemLBH4ddHKVJPO9Qrj7EwSweUB4qzzWndD9kcDzLBf0G\n O8PzL3OILqDzsss8E9e1moQZjkDzZPDlFU7yFxH9KBv0F0bzYHsZ7exSG38OhatW55+IRttKQh5\n gOrtkPwB0cO4H4WQYipgE20MkmtP3mRwGyO+jPElpsnnZ41nJ22jRzKxosSRyBGC3hlg4+5SSnE\n lk3bRgUrcy5AiEbmFzr8chTQhhA2bQD6wYVZI+63Xefu+vshjVCyviiw2Aptr62fHLDCpm7fQk1\n cVANvMVWN/zyBZzFYAJOm8LIYo0U/1u1OwDaeihttwEyXqJrjg9JGNxXHEksAsnzoWShl4u1gm5\n plIQqGEw9y9y05RkOmYi/dEnsL5P6T9ieUaYULUPT9SXGm96Jmjileyv47z5kM2Hwi4kscuqLtO\n MmOBa60ywtvPyNqT27SvJjBpkykp3dMvD5yER4n8WhlWkxr/VoBp5poDlmf8HGUqbRrtAswm61","X-Received":"by 2002:a05:620a:444f:b0:8d6:7dc4:6906 with SMTP id\n af79cd13be357-8d67dc46e3bmr1560983785a.33.1775579011257;\n Tue, 07 Apr 2026 09:23:31 -0700 (PDT)","Date":"Wed, 8 Apr 2026 00:23:10 +0800","From":"Chao Liu <chao.liu.zevorn@gmail.com>","To":"alistair23@gmail.com","Cc":"palmer@dabbelt.com, liwei1518@gmail.com,\n daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com,\n qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Alistair Francis <alistair.francis@wdc.com>","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","Message-ID":"<adUvBNdDiVYh1gpo@ZEVORN-PC.localdomain>","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260407043614.372871-2-alistair.francis@wdc.com>","Received-SPF":"pass client-ip=2607:f8b0:4864:20::744;\n envelope-from=chao.liu.zevorn@gmail.com; helo=mail-qk1-x744.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"}},{"id":3674410,"web_url":"http://patchwork.ozlabs.org/comment/3674410/","msgid":"<ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-07T09:38:11","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":92288,"url":"http://patchwork.ozlabs.org/api/people/92288/","name":"Daniel Henrique Barboza","email":"daniel.barboza@oss.qualcomm.com"},"content":"On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n> From: Alistair Francis <alistair.francis@wdc.com>\n> \n> The RISC-V spec states:\n> \n> \"For the purposes of memory protection, a failed SC.W may be treated\n> like a store.\"\n> \n> So if the comparison in sc.w fails we should still check for alignment\n> and do a probe access to check permissions.\n> \n> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n\nTypo: \"Resoves\"\n\n\nAlso, IIRC the bug URL that automatically closes Gitlab issues when\nmerging the patch is on the format:\n\n\"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n\n\nMaybe this URL with \"work_items\" also works, but even with the regular\nURL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n\"work_items\" to \"issues\" in all those URLs to be safe.\n\n\nThat said,\n\n\nReviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n\n> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n> ---\n>   target/riscv/helper.h                   |  3 +++\n>   target/riscv/op_helper.c                | 14 ++++++++++++++\n>   target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n>   3 files changed, 23 insertions(+)\n> \n> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n> index b785456ee0..af6cfcfc27 100644\n> --- a/target/riscv/helper.h\n> +++ b/target/riscv/helper.h\n> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n>   #ifndef CONFIG_USER_ONLY\n>   DEF_HELPER_1(ssamoswap_disabled, void, env)\n>   #endif\n> +\n> +/* Zalrsc\" SC write probe */\n> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n> index 6ccc127c30..b569366369 100644\n> --- a/target/riscv/op_helper.c\n> +++ b/target/riscv/op_helper.c\n> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env, target_ulong address)\n>       /* We don't emulate the cache-hierarchy, so we're done. */\n>   }\n>   \n> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n> +                           target_ulong size)\n> +{\n> +    uintptr_t ra = GETPC();\n> +    int mmu_idx = riscv_env_mmu_index(env, false);\n> +\n> +    if (addr & (size - 1)) {\n> +        env->badaddr = addr;\n> +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n> +    }\n> +\n> +    probe_write(env, addr, size, mmu_idx, ra);\n> +}\n> +\n>   #ifndef CONFIG_USER_ONLY\n>   \n>   target_ulong helper_sret(CPURISCVState *env)\n> diff --git a/target/riscv/insn_trans/trans_rva.c.inc b/target/riscv/insn_trans/trans_rva.c.inc\n> index a7a3278d24..62c0fe673d 100644\n> --- a/target/riscv/insn_trans/trans_rva.c.inc\n> +++ b/target/riscv/insn_trans/trans_rva.c.inc\n> @@ -90,6 +90,12 @@ static bool gen_sc(DisasContext *ctx, arg_atomic *a, MemOp mop)\n>        */\n>       TCGBar bar_strl = (ctx->ztso || a->rl) ? TCG_BAR_STRL : 0;\n>       tcg_gen_mb(TCG_MO_ALL + a->aq * TCG_BAR_LDAQ + bar_strl);\n> +    /*\n> +     * \"For the purposes of memory protection, a failed SC.W may be treated\n> +     * like a store.\" so let's check the write access permissions\n> +     */\n> +    gen_helper_sc_probe_write(tcg_env, src1,\n> +                              tcg_constant_tl(memop_size(mop)));\n>       gen_set_gpr(ctx, a->rd, tcg_constant_tl(1));\n>   \n>       gen_set_label(l2);","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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=YsoDgAs3;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=GTUuDbBk;\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 (lists.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 4fqxCM1ZDVz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 05:31:43 +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 1wABX0-0008M0-PR; Tue, 07 Apr 2026 14:52:10 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <daniel.barboza@oss.qualcomm.com>)\n id 1wABTp-0003Pl-Oz\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 14:48:53 -0400","from mx0b-0031df01.pphosted.com ([205.220.180.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <daniel.barboza@oss.qualcomm.com>)\n id 1wA2t1-0003IY-FL\n for qemu-devel@nongnu.org; Tue, 07 Apr 2026 05:38:21 -0400","from pps.filterd (m0279870.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6376f8oL3402359\n for <qemu-devel@nongnu.org>; Tue, 7 Apr 2026 09:38:17 GMT","from mail-dy1-f199.google.com (mail-dy1-f199.google.com\n [74.125.82.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmrht2xh-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Tue, 07 Apr 2026 09:38:17 +0000 (GMT)","by mail-dy1-f199.google.com with SMTP id\n 5a478bee46e88-2c68a134df8so4571503eec.1\n for <qemu-devel@nongnu.org>; Tue, 07 Apr 2026 02:38:17 -0700 (PDT)","from [192.168.68.100] ([177.18.66.130])\n by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2cba5df5c24sm14048534eec.27.2026.04.07.02.38.13\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 07 Apr 2026 02:38:15 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n wY93mkuutKCGd+oRBLE++qvpS1/LodiZVWe0XmuFfF0=; b=YsoDgAs3o5JkX1G9\n jxYKFvm7B0WfLj/LFf/WeboPNngrXfKLUJy+BPO59ISnr02pCdkQMv8PbfmXZES/\n OTLcTROKuc3DvPB+9vLkhLsCsP1//XOurnR4JzTJqiT3s9RJ7b57GfhaqzHmj19U\n qPHusb03vmfg0Gq9MOvReKIIYxdD1W6DEs1zTWN1vksFn4Cl1lXKYiehjo3F2mjh\n Ki+pTz8Un9Byh4rja1kkA+hUFEiEr82VIxnHZt8sTr/R9F3AgZbJqEjdwNvDCNnn\n DPU+XgG9/srYTIU830TfhMUsnhFaOCBX2wzKaUZMfjzSRF4H9zShF+kHqfah0CeI\n Xv2Ahw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1775554697; x=1776159497; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=wY93mkuutKCGd+oRBLE++qvpS1/LodiZVWe0XmuFfF0=;\n b=GTUuDbBkZySDybGoJGAKFwntJbs11sGp2dLL83HTFHKcNevEqnlNoEzwP6neot6rdg\n 8ef9HDGDz7mfjGbo/eG0oHbiZPrF5Sx9L453TOtqcpa5JoVYpYCG9zddLcC8NfZAQ3Zh\n I9X6WeQiSF2Qyx7S1lPlRhfdFDNnR6jLhgo13In3khF/VByNLvxf9K3Ny0TPdJVkUhDh\n 7/dIbxgvq+3++NIoXNUbn5wuhwnuBbcrbtDvu5B2Dwl5ez/XX6cnofwVCK2DdEp+GmTw\n N1Owst2wwzsob8YAol14s/y3MJ0YvLpN5GtySdI1a/XAJIQJ7tC5QR3PE45gdQsyoV5I\n /tkA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775554697; x=1776159497;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=wY93mkuutKCGd+oRBLE++qvpS1/LodiZVWe0XmuFfF0=;\n b=pTmOn/cRDMZik5kn2mAcoMew88RqhMRcyY/y53ajdd4SxxBbyJnETuUifmogOGBOxy\n MLCOyuA8iW69e0yXtW96dGcoRwf3G5+/QEamzYzuZ+PoGy13vMad+wqqQpxr2SF3Sr8o\n 40bK7aJyYXcwOMa9BVdJV2TPYjYhmM0m+qJwMAdOkgIHOdGkC1kJJRg0YqS72/ZGWspk\n gXqhH47lxEwy4jGUcqvxYO8yIKmxHpSRDbySlHo7WAspvsV3NUVSXB0UTm3eOXW+6wBR\n gtpbFLHmGrvkN1YoF775+lcc81JzEzk7HJaujJVPCWH/OOIgqgGCPff4SeNexDNcde76\n hmxA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWDfsiZcAl/2dvM+pB6C3EuMc11vsP8UqG4glfCMVNVVtEcQcix+PBWvho5zw88PuiL0dI1n9cNIfkm@nongnu.org","X-Gm-Message-State":"AOJu0YzSRgOuzXi9E4KWWhHQteC/CO3B5TXj82lzGQeuKykkL2RcOE9B\n hZ/zSFF7dutCEttP+43H38/WDpUq5ULxm8zvne/ggIO2R8ycT27ZnOaAwda6S7EVH+jlp0zqNy8\n P0bwH2sfakLgf4Q/lRwfe+n9defdAhU8W+Erjd0ww9k2aw7qzbd5S5sk0mA==","X-Gm-Gg":"AeBDietEVCfb2/ET0YIDOF+bOuFzkn5sf47D97ZXrvoAP+jBXxdG6QU4OTqV6YhxEzQ\n WWM9M/wSz7ItqEpX2UqERWItZV10pDBTJvbg8+P2/e3Kve5tU3Cr2mM/Wuwap6Y/0ev0YqbfFc6\n We3Kp8AqZzqRsghQPU+EYf+zl6z9QLLq/d3sSkVxE/4n6uv1eulKZW8BjB0iNNGGxB2dNSf5p+Q\n ei8ur8WWHBhXoENYHM2yM5rEZWcbutlWWMSwi9XwQ4YRs+oMfxJFGQadi771v8KvcDcGY57PrTx\n vguWRpQxUNepwKWKNWJ3BJ0N/Qhd5seNdroUp9GghUb98AxkoQeihipLk36NA6tscMUorOk0t22\n ru4n8FZrttFYDNCmrkdg+6DjmkLLETC74csQtTHoge5Yd7FNhkmNShzpE","X-Received":["by 2002:a05:7301:1010:b0:2ba:a2fb:403f with SMTP id\n 5a478bee46e88-2cbfb995d49mr7331317eec.21.1775554696650;\n Tue, 07 Apr 2026 02:38:16 -0700 (PDT)","by 2002:a05:7301:1010:b0:2ba:a2fb:403f with SMTP id\n 5a478bee46e88-2cbfb995d49mr7331302eec.21.1775554696059;\n Tue, 07 Apr 2026 02:38:16 -0700 (PDT)"],"Message-ID":"<ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","Date":"Tue, 7 Apr 2026 06:38:11 -0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","To":"alistair23@gmail.com, palmer@dabbelt.com, liwei1518@gmail.com,\n zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com,\n qemu-riscv@nongnu.org, qemu-devel@nongnu.org","Cc":"Alistair Francis <alistair.francis@wdc.com>","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>","From":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Content-Language":"en-US","In-Reply-To":"<20260407043614.372871-2-alistair.francis@wdc.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA3MDA4OCBTYWx0ZWRfX+BfXsrxSBN/w\n HU+aCs1SYdU6noK9l6rPvTsgBBtjc0k4XOsBOPweudxk22UcIrOloLFpUSKA5YSmPQhMPtGGW0/\n yG0MgWmNiFuQYmlH22fYJqVDIX/alpl598sgBojnJcv0rI33lObO126+ZqzrdUFJKtuM5zAru3v\n 4BvMkfcErk9qNidnDFG7lutqHFbGHZLAXZ9zOUI2zyUILvywcoUYdTmrXEuKEIgbinJPj1EMgX4\n j+JkuViLxTSs4JeF7ITLhQiC2wdwKvlbK1BoqDCSnnK13a4bOllHnn6vFKG9YSTjpQQr57L3UZs\n 4OSvbeSYKUg14xESysN9VL37e5Hi8d9mkQeNPi5hFSm+pWqIr8k4gEvUL3HEDmyI1oMc6YtYS0F\n 4pJXYvIFyZ2nfdQmJpA/0rylIEeftaempFeXH7H6gclu871e8zv281SEsATcX0dY/zy9Ovs2252\n qZn+1i0WxwBwTJLDzjg==","X-Proofpoint-GUID":"_rc7IT3zOs2IPsg1jviTqMKQZRTvsvoJ","X-Authority-Analysis":"v=2.4 cv=XPUAjwhE c=1 sm=1 tr=0 ts=69d4d089 cx=c_pps\n a=cFYjgdjTJScbgFmBucgdfQ==:117 a=Wg2i10Q8swPuJs8jTFC2sw==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22\n a=p0WdMEafAAAA:8 a=pGLkceISAAAA:8 a=JF9118EUAAAA:8 a=EUspDBNiAAAA:8\n a=HP2WlKXDqiIK0ifKYkMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22\n a=xVlTc564ipvMDusKsbsT:22","X-Proofpoint-ORIG-GUID":"_rc7IT3zOs2IPsg1jviTqMKQZRTvsvoJ","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-07_02,2026-04-07_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n malwarescore=0 suspectscore=0 priorityscore=1501 impostorscore=0\n clxscore=1015 adultscore=0 phishscore=0 bulkscore=0 spamscore=0\n lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000\n definitions=main-2604070088","Received-SPF":"pass client-ip=205.220.180.131;\n envelope-from=daniel.barboza@oss.qualcomm.com;\n helo=mx0b-0031df01.pphosted.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_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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"}},{"id":3674937,"web_url":"http://patchwork.ozlabs.org/comment/3674937/","msgid":"<09cf72c9-7333-4f1f-bb2a-bc88b668b294@linaro.org>","list_archive_url":null,"date":"2026-04-08T08:48:14","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/people/85046/","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"content":"On 7/4/26 11:38, Daniel Henrique Barboza wrote:\n> \n> \n> On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n>> From: Alistair Francis <alistair.francis@wdc.com>\n>>\n>> The RISC-V spec states:\n>>\n>> \"For the purposes of memory protection, a failed SC.W may be treated\n>> like a store.\"\n>>\n>> So if the comparison in sc.w fails we should still check for alignment\n>> and do a probe access to check permissions.\n>>\n>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n>> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n> \n> Typo: \"Resoves\"\n> \n> \n> Also, IIRC the bug URL that automatically closes Gitlab issues when\n> merging the patch is on the format:\n> \n> \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n> \n> \n> Maybe this URL with \"work_items\" also works, but even with the regular\n> URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n> \"work_items\" to \"issues\" in all those URLs to be safe.\n\nFWIW I concur :)\n\n> \n> \n> That said,\n> \n> \n> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n> \n>> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n>> ---\n>>   target/riscv/helper.h                   |  3 +++\n>>   target/riscv/op_helper.c                | 14 ++++++++++++++\n>>   target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n>>   3 files changed, 23 insertions(+)\n>>\n>> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n>> index b785456ee0..af6cfcfc27 100644\n>> --- a/target/riscv/helper.h\n>> +++ b/target/riscv/helper.h\n>> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n>>   #ifndef CONFIG_USER_ONLY\n>>   DEF_HELPER_1(ssamoswap_disabled, void, env)\n>>   #endif\n>> +\n>> +/* Zalrsc\" SC write probe */\n>> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n>> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n>> index 6ccc127c30..b569366369 100644\n>> --- a/target/riscv/op_helper.c\n>> +++ b/target/riscv/op_helper.c\n>> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env, \n>> target_ulong address)\n>>       /* We don't emulate the cache-hierarchy, so we're done. */\n>>   }\n>> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n>> +                           target_ulong size)\n\nWe could directly use uint64_t for @size. Then after the release the\n@addr argument will be converted to vaddr type [*]. We could do that\ndirectly now:\n\n\nDEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, vaddr, i64)\n\nvoid helper_sc_probe_write(CPURISCVState *env, vaddr addr,\n                            uint64_t size)\n\n\n[*] \nhttps://lore.kernel.org/qemu-devel/20260401143456.79843-1-philmd@linaro.org/\n\n>> +{\n>> +    uintptr_t ra = GETPC();\n>> +    int mmu_idx = riscv_env_mmu_index(env, false);\n>> +\n>> +    if (addr & (size - 1)) {\n>> +        env->badaddr = addr;\n>> +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n>> +    }\n>> +\n>> +    probe_write(env, addr, size, mmu_idx, ra);\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=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=eFvAesbw;\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 4frY3g4SJQz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 05:27:11 +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 1wAYVk-0004Gv-4k; Wed, 08 Apr 2026 15:24:24 -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 <philmd@linaro.org>) id 1wAY51-0006fj-N8\n for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:56:47 -0400","from mail-wm1-x332.google.com ([2a00:1450:4864:20::332])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wAOaA-0004T0-35\n for qemu-devel@nongnu.org; Wed, 08 Apr 2026 04:48:19 -0400","by mail-wm1-x332.google.com with SMTP id\n 5b1f17b1804b1-488aa77a06eso50933065e9.0\n for <qemu-devel@nongnu.org>; Wed, 08 Apr 2026 01:48:17 -0700 (PDT)","from [192.168.69.228] (88-187-86-199.subs.proxad.net.\n [88.187.86.199]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887e822227sm700158125e9.4.2026.04.08.01.48.15\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Wed, 08 Apr 2026 01:48:15 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1775638096; x=1776242896; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=dvzBA4OHOr7PmSM301GToLUSw3BYcg9F+hkpHOOTPZM=;\n b=eFvAesbwk4LVUqtoBZ5OSDDv0DawfJ0vjXBJBNhO+Dnkb/4oagO0w4/mCvSeOpHeoL\n J/SSOvYL4ROW+jZuqZwP9AauPl9Y3rJeN2cB4Z4zU+DjW2kPJ4JUxlqbnT7RlE7h/Kub\n BHGW2wWHJzhvrAhXv3/dk190AGKBzkJa/XRfGm/Y+4HIk6sbsNtPYUVos/66yiQvztny\n GQRh5/SMwPq9ZE3IxL1UKZuXowYR5+XTK10HDisusvQOPaAWYQqeVLNlLbQE56RaAR5Q\n 7MWtY2uTLpyZfe1SedpdC3dyD8HjcltIV0BpJQSjWYDKFk1++qDD5JuhJfmMovYAIVV/\n Q7wA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775638096; x=1776242896;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=dvzBA4OHOr7PmSM301GToLUSw3BYcg9F+hkpHOOTPZM=;\n b=e4a7m8WXsR9LtPSr6xIbn7TKx2XTryCgQWcyl92mzetEWG/cYTt6x3X/oVw5o8K+A2\n a+b2IioFlNV3ubFrAhg1viQeerIjZmvCn4H9nuMsGX221EbY0uCxJwzZAGTUCttMLRDK\n 9ap3N//v/hwf2TYxgLbiPm48bV16efynRIDRZYHieYHEerZZ4D54Xhidr/mXjWTV0SnR\n BufS5MH/XfgrMwkzaENbzeZofYuP1rkkvG71a028slsjFp75sE6bEWgXxZN7+z8jYWql\n YLadfbJybbV8j1mYydQdEZr8i3t0EpUPOts7uzz1KuX560U1vhXH8A+Rl63kez71hjRS\n 6n6g==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXvrQazq36Ve8jGHn1Fqx/pdPwscCUaw/rYNyS50SwZ6alJ2nQ6xMasnrbV5SJpZQU/XrGxr9Y5tuUw@nongnu.org","X-Gm-Message-State":"AOJu0Yw1RPfFlVNq1/r6OxU4QtQxLrHkHU1ke+hCoe69goTqKOROl1l5\n 26tfuPHifNNPmF+oEaHxBF5iRzOqWiMqfIPfdF0n/BLzED4HetU+s3RQmCRwgDBCJQ0=","X-Gm-Gg":"AeBDiethm/IlPkrFPLTVKToxHmaA//mifeELnDIMO2KCGQTGZQcWXqkeTjXgTfD9s6c\n 0rZh+mCMYWjCEJFsQIWwJb3IfrOGycB9R9SxdhwpFqj291Y8HEvbTuEUcwjH3oYbz4jd0VTB/YN\n eUYCIG4zkvQBVn9nIEEI4XdVBlDTBXNFKoQsO2IhCM7sLW6jy47NhNMOfYynoZSOthB5nyLmdWH\n iZyFWrixrboHXeTuNpXUnNW9FXqZYk3qZxt5PVeXvIcm4BgFkLd4/8YCiqVrfjAV3x6XTLqNiqw\n syXa7YV1zOI4nrfhtRHoSZ7iYZhzBh9NYLr0IfYOg/YNPGr+C/aowqfwmiJlFtw4u08QpfubTKn\n JZXd+nvxk2ESs/cA26LuOHvBh0XDYzzApdq3vVCxtAcF6cBwh7J4gScSCZM1Iz9Vcmtbt+XSeg1\n /wfYfC9Ye9r8gIDU5zf/WAvJV6Okl0l/O69jMEcybOJMGy7XHro7/EkZ1F768krD9Zzq8Tvbsb4\n QXA","X-Received":"by 2002:a05:600c:15d2:b0:488:a14d:3d81 with SMTP id\n 5b1f17b1804b1-488a14d3ef0mr133441035e9.2.1775638096351;\n Wed, 08 Apr 2026 01:48:16 -0700 (PDT)","Message-ID":"<09cf72c9-7333-4f1f-bb2a-bc88b668b294@linaro.org>","Date":"Wed, 8 Apr 2026 10:48:14 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","Content-Language":"en-US","To":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n alistair23@gmail.com, palmer@dabbelt.com, liwei1518@gmail.com,\n zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com,\n qemu-riscv@nongnu.org, qemu-devel@nongnu.org","Cc":"Alistair Francis <alistair.francis@wdc.com>","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","In-Reply-To":"<ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::332;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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,\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"}},{"id":3675083,"web_url":"http://patchwork.ozlabs.org/comment/3675083/","msgid":"<CAKmqyKOg=mtUisSTA5+e9Hy2drnqesEZQEEv3XRyEty6N7rPNQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-09T05:38:04","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Tue, Apr 7, 2026 at 7:38 PM Daniel Henrique Barboza\n<daniel.barboza@oss.qualcomm.com> wrote:\n>\n>\n>\n> On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n> > From: Alistair Francis <alistair.francis@wdc.com>\n> >\n> > The RISC-V spec states:\n> >\n> > \"For the purposes of memory protection, a failed SC.W may be treated\n> > like a store.\"\n> >\n> > So if the comparison in sc.w fails we should still check for alignment\n> > and do a probe access to check permissions.\n> >\n> > Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n> > Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n>\n> Typo: \"Resoves\"\n>\n>\n> Also, IIRC the bug URL that automatically closes Gitlab issues when\n> merging the patch is on the format:\n>\n> \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n\nInterestingly trying to access\n\nhttps://gitlab.com/qemu-project/qemu/-/issues/3196\n\ntakes me to\n\nhttps://gitlab.com/qemu-project/qemu/-/work_items/3196\n\nSo I think Gitlab is changing from issues to work_items\n\n>\n>\n> Maybe this URL with \"work_items\" also works, but even with the regular\n> URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n> \"work_items\" to \"issues\" in all those URLs to be safe.\n\nMaybe using \"issues\" is the problem?\n\nI'm thinking of leaving these as-is, as issues seem to be replaced now.\n\nI even see https://docs.gitlab.com/development/work_items/#migration-strategy\nand https://gitlab.com/groups/gitlab-org/-/work_items/6033 with more\ndetails on this\n\nAlistair\n\n>\n>\n> That said,\n>\n>\n> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n>\n> > Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n> > ---\n> >   target/riscv/helper.h                   |  3 +++\n> >   target/riscv/op_helper.c                | 14 ++++++++++++++\n> >   target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n> >   3 files changed, 23 insertions(+)\n> >\n> > diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n> > index b785456ee0..af6cfcfc27 100644\n> > --- a/target/riscv/helper.h\n> > +++ b/target/riscv/helper.h\n> > @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n> >   #ifndef CONFIG_USER_ONLY\n> >   DEF_HELPER_1(ssamoswap_disabled, void, env)\n> >   #endif\n> > +\n> > +/* Zalrsc\" SC write probe */\n> > +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n> > diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n> > index 6ccc127c30..b569366369 100644\n> > --- a/target/riscv/op_helper.c\n> > +++ b/target/riscv/op_helper.c\n> > @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env, target_ulong address)\n> >       /* We don't emulate the cache-hierarchy, so we're done. */\n> >   }\n> >\n> > +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n> > +                           target_ulong size)\n> > +{\n> > +    uintptr_t ra = GETPC();\n> > +    int mmu_idx = riscv_env_mmu_index(env, false);\n> > +\n> > +    if (addr & (size - 1)) {\n> > +        env->badaddr = addr;\n> > +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n> > +    }\n> > +\n> > +    probe_write(env, addr, size, mmu_idx, ra);\n> > +}\n> > +\n> >   #ifndef CONFIG_USER_ONLY\n> >\n> >   target_ulong helper_sret(CPURISCVState *env)\n> > diff --git a/target/riscv/insn_trans/trans_rva.c.inc b/target/riscv/insn_trans/trans_rva.c.inc\n> > index a7a3278d24..62c0fe673d 100644\n> > --- a/target/riscv/insn_trans/trans_rva.c.inc\n> > +++ b/target/riscv/insn_trans/trans_rva.c.inc\n> > @@ -90,6 +90,12 @@ static bool gen_sc(DisasContext *ctx, arg_atomic *a, MemOp mop)\n> >        */\n> >       TCGBar bar_strl = (ctx->ztso || a->rl) ? TCG_BAR_STRL : 0;\n> >       tcg_gen_mb(TCG_MO_ALL + a->aq * TCG_BAR_LDAQ + bar_strl);\n> > +    /*\n> > +     * \"For the purposes of memory protection, a failed SC.W may be treated\n> > +     * like a store.\" so let's check the write access permissions\n> > +     */\n> > +    gen_helper_sc_probe_write(tcg_env, src1,\n> > +                              tcg_constant_tl(memop_size(mop)));\n> >       gen_set_gpr(ctx, a->rd, tcg_constant_tl(1));\n> >\n> >       gen_set_label(l2);\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=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=WNRCllf/;\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 4frpfn16Ynz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 15:40: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 1wAi6D-00059c-M8; Thu, 09 Apr 2026 01:38:41 -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 <alistair23@gmail.com>)\n id 1wAi66-00058I-TD\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 01:38:35 -0400","from mail-ej1-x633.google.com ([2a00:1450:4864:20::633])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wAi64-0002qz-Q9\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 01:38:34 -0400","by mail-ej1-x633.google.com with SMTP id\n a640c23a62f3a-b8d7f22d405so67739166b.0\n for <qemu-devel@nongnu.org>; Wed, 08 Apr 2026 22:38:32 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1775713111; cv=none;\n d=google.com; s=arc-20240605;\n b=CuuTHfQryYq0TQq/CJeO63AyynH+Yi/rrqgq1XXPqYBSKyzPzYbdk97KevoPLKtpZy\n QG6c4W+lqPpsQOqfrB+As4gPqLVr+z7cddG9pUtHOL0TY8b9SKmEeM6RUo1jy2UgX4dl\n qs0E9xRmXHreJbrWT5MmUxyYRNrK2OVaJQaR1WEmj/pLdWMiLnEcPHD+h8cGhRUUf7l2\n 27ZLd8+A1cmDFIyEnln0JC0yPfVnct9T+N9WQHuIEmSqj8rMI1ytvbdF8+VoHFiSDHd0\n tpqcgMaC+sB+NC4XtTDQPtEBfSmIHaNP+P4nh9FhbbJsayP6wQcaTZ9wMePy39m+KqgV\n I8gQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=q2WDs/N3FmYBogg8pYmgVJoLiFe1LAOOfDhScPeZ85I=;\n fh=Qd/ze66coMyOUagELzJHT65GZa6bS4Rhi3rjNufOSiw=;\n b=bnhRM8AK3zv+0vc24Nis7+BVmChO5Z/8GwkazlRdM/Q40xAjM0vL+WKzceo2Pwmi6y\n VY/lB5XzWsHdzOdb7R4br0SH+kAph+pe2NRmc26Eazo2ReRSzvLIPrL01N066xOio5mN\n y4nyhab5/Bo7yMPLCoC8LfxuykXpFvv5DsoD+WiVwZuNaak70RZdAgFPVXyUqPnvVcfr\n DGAXkAw6942A+C8eG2zWRRML6YdlgDmHqy6S4MaqN52Sd2CMNdyi0R61v0U2KM08f5Zc\n tzOxJ3cecD5A0l0mzYWleHRvrW/Sk4WffxNLr49JjB5CBJg2iSwiA4tUakNCyGgJ4ne5\n Tbsg==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775713111; x=1776317911; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=q2WDs/N3FmYBogg8pYmgVJoLiFe1LAOOfDhScPeZ85I=;\n b=WNRCllf/xQjQj49HkQfZCyLo48jonI6ruJdvkiq7Iu5INukUOB6SIex7oN8VyAAIi1\n SMzT4Ml1GX8vg+DaYxzE8yx859QL7k0DP098r9/lttNnxZO1NWI3cOXdDiwwQ1Hkt+IB\n GhpfW/+s6MKJURJIyPBVN1nxpY1sJIzN4/liASqJqx5xVzJ+x5qxR6suov3vA7E2MZ3k\n J+STJNL2nQJaetYmPl2e+ilcK4Yivzbm952afa4NNiadxwlqIKjPnnn9pXcqyYafiyXb\n zquhyuhnKzDp8jWRHBevqvuCVdUHpPK33MchYFtLnehsPGOVvxtLN/3692OnDMyS0FAm\n MUGQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775713111; x=1776317911;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=q2WDs/N3FmYBogg8pYmgVJoLiFe1LAOOfDhScPeZ85I=;\n b=KtJrb9ivHoXT3t6D76Vyo2+2lLkAdWwGhAPKroUhefjmrCOILw3nERHmAJ2UVryoPT\n O2UwJTt/kr3C4+dyXwpONkzw/Np/iQNt8pZU07brFj1OcEfoAlWbszEHXo02eHQbiSQP\n WcnlXX5PR7566J+bnZzvhqlyi7gfW0zeqZt9m99tHEXz8+TuWKsX25EGfSErbe9pFxlY\n xTH9c0emz4TZtWISsJiOE2Du/GD4fufUpxd9A49v37suvhIdD5I0GYyH/1GIT8W/UoXO\n cIz0xsz2CLrMgOUKsoigcEJ8s1tu5Hsq4GnLcoKslQ50I645mLKPVF1SuP3eE7Y9jXDZ\n BhUA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWWFn+Zr3RSHSlIKZ3swaQKe5vzPPo4O818iWDPSyqBO8xP6vA3EAav2ifdkz6ZevVuL1HHQ1eMLo1d@nongnu.org","X-Gm-Message-State":"AOJu0YxEI9pONceg8jE3/ehAWyAYQ3Z695RY9c44aP6tsvvxHZrN++qE\n 110qxDn7Sze7xDSMa7/aDcEUa8YNqeUA3je3cAiN+8gk4yh9BYI/HtvPBg738H67iQUCQ4cGVzO\n yoNK7jYg86IXNYvlSCNwayOhFFBjjEbI=","X-Gm-Gg":"AeBDiesbxI+L0/0f9yFjeZOwBJAE5zAuiw6GfJllj8rn6B6BXBOF6EAeB177dbWnfMB\n RLJmbgHNb1H8r8DzekBJcpaDODuWhLNBRbBk+6ABBtkNx3Jh6S3BINjY8EMR+3UqwzmY1tVubj9\n yi4xfLBiXcNiAJo3/WXwQSl3m4dsh5wpHUDKKoA37GzWOpeVXw+hu32pZekqC7SqqggKZbsgqdi\n jSWo+1Pv2xzXf6mqutSs1Hp/HnDIFCeN+xM6j+YJ+iEqnsFV8m2D2Yc+Nr8+nXp9dUPVNdetKVx\n bPMX+1Lxt4XilC/PU+t8zDV1i/npxP+rKykonw==","X-Received":"by 2002:a17:907:7fa6:b0:b9c:93f4:d8d9 with SMTP id\n a640c23a62f3a-b9c93f4da3dmr995755266b.33.1775713110786; Wed, 08 Apr 2026\n 22:38:30 -0700 (PDT)","MIME-Version":"1.0","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","In-Reply-To":"<ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Thu, 9 Apr 2026 15:38:04 +1000","X-Gm-Features":"AQROBzCsgrh6cwXnWWPGB8MOE00sfMkIKiBn1V43DbufBsVt28uHbObK2IFtcp0","Message-ID":"\n <CAKmqyKOg=mtUisSTA5+e9Hy2drnqesEZQEEv3XRyEty6N7rPNQ@mail.gmail.com>","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","To":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Cc":"palmer@dabbelt.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com,\n chao.liu.zevorn@gmail.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::633;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x633.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.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 FREEMAIL_ENVFROM_END_DIGIT=0.25, 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"}},{"id":3675093,"web_url":"http://patchwork.ozlabs.org/comment/3675093/","msgid":"<CAKmqyKOP-69j14DiaWUbZSL-_5nytjgsDhXA6tmTVvLBzrxgSQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-09T06:21:45","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Wed, Apr 8, 2026 at 6:48 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote:\n>\n> On 7/4/26 11:38, Daniel Henrique Barboza wrote:\n> >\n> >\n> > On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n> >> From: Alistair Francis <alistair.francis@wdc.com>\n> >>\n> >> The RISC-V spec states:\n> >>\n> >> \"For the purposes of memory protection, a failed SC.W may be treated\n> >> like a store.\"\n> >>\n> >> So if the comparison in sc.w fails we should still check for alignment\n> >> and do a probe access to check permissions.\n> >>\n> >> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n> >> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n> >\n> > Typo: \"Resoves\"\n> >\n> >\n> > Also, IIRC the bug URL that automatically closes Gitlab issues when\n> > merging the patch is on the format:\n> >\n> > \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n> >\n> >\n> > Maybe this URL with \"work_items\" also works, but even with the regular\n> > URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n> > \"work_items\" to \"issues\" in all those URLs to be safe.\n>\n> FWIW I concur :)\n>\n> >\n> >\n> > That said,\n> >\n> >\n> > Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n> >\n> >> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n> >> ---\n> >>   target/riscv/helper.h                   |  3 +++\n> >>   target/riscv/op_helper.c                | 14 ++++++++++++++\n> >>   target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n> >>   3 files changed, 23 insertions(+)\n> >>\n> >> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n> >> index b785456ee0..af6cfcfc27 100644\n> >> --- a/target/riscv/helper.h\n> >> +++ b/target/riscv/helper.h\n> >> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n> >>   #ifndef CONFIG_USER_ONLY\n> >>   DEF_HELPER_1(ssamoswap_disabled, void, env)\n> >>   #endif\n> >> +\n> >> +/* Zalrsc\" SC write probe */\n> >> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n> >> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n> >> index 6ccc127c30..b569366369 100644\n> >> --- a/target/riscv/op_helper.c\n> >> +++ b/target/riscv/op_helper.c\n> >> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env,\n> >> target_ulong address)\n> >>       /* We don't emulate the cache-hierarchy, so we're done. */\n> >>   }\n> >> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n> >> +                           target_ulong size)\n>\n> We could directly use uint64_t for @size. Then after the release the\n> @addr argument will be converted to vaddr type [*]. We could do that\n> directly now:\n>\n>\n> DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, vaddr, i64)\n>\n> void helper_sc_probe_write(CPURISCVState *env, vaddr addr,\n>                             uint64_t size)\n\nThat fails for RV32 linux-user\n\n../target/riscv/insn_trans/trans_rva.c.inc:97:40: error: passing\nargument 2 of ‘gen_helper_sc_probe_write’ from incompatible pointer\ntype [-Wincompatible-po\ninter-types]\n  97 |     gen_helper_sc_probe_write(tcg_env, src1,\n     |                                        ^~~~\n     |                                        |\n     |                                        TCGv {aka struct TCGv_i32_d *}\nIn file included from\n/var/mnt/scratch/alistair/software/qemu/include/qemu/osdep.h:53,\n                from ../target/riscv/translate.c:19:\n/var/mnt/scratch/alistair/software/qemu/include/exec/helper-head.h.inc:128:57:\nnote: expected ‘TCGv_i64’ {aka ‘struct TCGv_i64_d *’} but argument is\nof type\n‘TCGv’ {aka ‘struct TCGv_i32_d *’}\n 128 | #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)\n     |                                                         ^\n/var/mnt/scratch/alistair/software/qemu/include/qemu/compiler.h:29:21:\nnote: in definition of macro ‘xglue’\n  29 | #define xglue(x, y) x ## y\n     |                     ^\n/var/mnt/scratch/alistair/software/qemu/include/exec/helper-head.h.inc:128:52:\nnote: in expansion of macro ‘glue’\n 128 | #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)\n     |                                                    ^~~~\n/var/mnt/scratch/alistair/software/qemu/include/exec/helper-gen.h.inc:44:25:\nnote: in expansion of macro ‘dh_arg_decl’\n  44 |     dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3))         \\\n     |                         ^~~~~~~~~~~\n../target/riscv/helper.h:1294:1: note: in expansion of macro\n‘DEF_HELPER_FLAGS_3’\n1294 | DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, vaddr, i64)\n     | ^~~~~~~~~~~~~~~~~~\nIn file included from\n/var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op-common.h:11,\n                from\n/var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op.h:11,\n                from ../target/riscv/translate.c:22:\n/var/mnt/scratch/alistair/software/qemu/include/tcg/tcg.h:202:28:\nnote: ‘TCGv_i64’ declared here\n 202 | typedef struct TCGv_i64_d *TCGv_i64;\n     |                            ^~~~~~~~\n/var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op.h:32:18:\nnote: ‘TCGv’ declared here\n  32 | typedef TCGv_i32 TCGv;\n     |                  ^~~~\n\nAm I missing something?\n\nAlistair\n\n>\n>\n> [*]\n> https://lore.kernel.org/qemu-devel/20260401143456.79843-1-philmd@linaro.org/\n>\n> >> +{\n> >> +    uintptr_t ra = GETPC();\n> >> +    int mmu_idx = riscv_env_mmu_index(env, false);\n> >> +\n> >> +    if (addr & (size - 1)) {\n> >> +        env->badaddr = addr;\n> >> +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n> >> +    }\n> >> +\n> >> +    probe_write(env, addr, size, mmu_idx, ra);\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=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=gKXx4AT5;\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 4frqcR3HkCz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 16:23: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 1wAimS-0004QS-2r; Thu, 09 Apr 2026 02:22: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 <alistair23@gmail.com>)\n id 1wAimQ-0004Q2-SM\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 02:22:18 -0400","from mail-ej1-x629.google.com ([2a00:1450:4864:20::629])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wAimN-0001jQ-6p\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 02:22:18 -0400","by mail-ej1-x629.google.com with SMTP id\n a640c23a62f3a-b9c62fc8debso71931166b.0\n for <qemu-devel@nongnu.org>; Wed, 08 Apr 2026 23:22:13 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1775715732; cv=none;\n d=google.com; s=arc-20240605;\n b=Le/FOhtS/RuaN3lbU8xCDAfAdKfINXYX7mB6YMJCveSJ+I8Ag3hmmoKHGdaysTra6s\n xNVjoUSsNGz0lZhmbfZr8BKInTz/IeRcxfnsVCaOSIHJ14SSSu8hrfcf551884pyFUfx\n qgt2E90XwimdpjyyqttnbSVEkf/ir7JnSlIMBbm+yIXkDPj7TAEZ5fqDYYkUj6ITjzjc\n NEOpe/Q5pxP3xTqBQB5G0hITilHT3dySdXL/4L98uz49i+LEr6uFIMo2BaYsNuUeLJqZ\n rZN81i54WDkIesD2FC8lPtpkjff9fX+M8halgsq7Y6FZhOhmedDxYCfuCMGur0xxsxBm\n Yxzg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=8b0jRRyQRDVCpBwwEfzo+y0uMImwWFs5zaalBIgQABM=;\n fh=xT4R8q+AjyMPFvvOm6TQTX0erloV1XpqMDrcZhQnTKA=;\n b=gFLZ25y2y0WA0fhEQ5I+HSNAixmIrAMhf6vQeLXaxEv8kZd3xTOL/9STbCY3dk62UP\n dhOh+I6Gp62Vlya8tkNvKKFmUOQ/ey7+5y2MdepTUDH0k8Df7rlKkpPQYkZHNG1alPOQ\n 1ZUmcML4OKZun8qYdiCaRXL8ftilqS98HlbPtCgZ1GHzdBJT1Q4H3nIg9AlTLkQX54G8\n NufpoQVClENDXUfyUpO+6tPQ7ZS354QaHxq4XGDfEjjViwaOmthKYeB8p8arjLq9a9Hp\n oM4bznTqGInOXaTjN8JHc6jvY2NNDMZfMveWVbg3l+DrCQxSgn+a+lJhy4OR9A8JhmL5\n v7Og==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775715732; x=1776320532; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=8b0jRRyQRDVCpBwwEfzo+y0uMImwWFs5zaalBIgQABM=;\n b=gKXx4AT5a75dDpRerCyPf8fD6V6aTjl3VFFgWB5vJqW5h4qq/RdlLYcNlQ+KQUGday\n BZkBep73Z2pKqgS2Yo9HtIrtIg84X54owcmxdV/1NLGfNQTt3tdYv6j/UpCYtYq7OKt0\n HVDNRF5hhqn+ppWRjk1D72rjY8+lwj8vAmU7KELljGsRlGpi5iDzCVsO7a+wJz1F9jM7\n 8lDPwgxdmVwZon6vD3upxqPrfzTTeiLATDtxAxNjKmUOTQJZKTH0twuQ3iASncPMrMum\n oY2V24lHCJnZn1mBC5RxKAsGxSjqTuvl3LjSN8Ax0493WC9yxxYF+z49tQscrYjQ3DPT\n PFug==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775715732; x=1776320532;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=8b0jRRyQRDVCpBwwEfzo+y0uMImwWFs5zaalBIgQABM=;\n b=Ez4jkYrElWQFOnMpEEPia/0JGZtX8tcyUssBWsoVA3UF3k5qvbjCbnRt9Dd8PCyios\n XiM8ZCF7p5sFbzZFWM+1/D8qlXzq0ahVKbvMb+Gq5jf5Y5p51XruM9D/Sx/4P/ghuO9Y\n FGc2Y9ciQTpA5BOlv2ATtaZhw+7iKuCJQ7+Fu3eoAAs6GsFhW9y/BaOLEpQaU5zvFqLR\n Q+c/Q0/8jFPL4nFHCTBNUVlNH44T20hDt8aoz4ayiMFSbo8jz9jIZD1+3tlhSaB/Vi+e\n gUaxtY+2rIb2MVXVfTACgUt9Gtsx8Rx4yRg7Kr3ITIUjv4WeUCEz+aKa8WmdG8UwUIdG\n viCg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUOUQ1EmfKy/63qHeEWnLYbiGZd5zmAdfUbfvRQYAKbSv7xtz3w5mQX8FCtAOVf3IyKMXpYlkCIvTyB@nongnu.org","X-Gm-Message-State":"AOJu0Yw9lmN5ZDXy3/NYSrh8SFf3iEBAGUk5w6agSCxfD0WoQQl+Oy2L\n UkPQ89wYT0x7C1Vv4H6rVb+CPXuMhiy6g0ii6AZkqlamtBr+q0duBW0nx4qmUUL53tCbOkfABji\n glRiffpnKjzn0OSDKcXnvfkM9ZxUcxi4=","X-Gm-Gg":"AeBDies1sysFOMGFnrr43ImmgNjlqgI1rW5ftaOWunTGn5XKuK6hzbYbzPChtN4z8ZH\n x4AtydNMnFNrB7wJhpEJrYoZKOPjcnM0OjxfjfbDR3t5GTCffCioTf1rMGH1Rw7KXbUeNpii2sR\n +/NXYhG8JiSL3vB8Nd/VcFgNXOGRkPFpnfLgeTBddZfF891h2Ruq9ucHu8wKCWsHRIakJU5yevx\n nEDjyi3XbhgA+PXAiCnzNAYQ0ZuGBmprQQ6BMlvaaynAWIFacSy8ar30rbc46mm4GeYGo5L4Lvg\n NnE91wlG4oxr9h4Zn0cnEFHGMWD9xxRHSrN02w==","X-Received":"by 2002:a17:907:3d51:b0:b8f:e98b:4952 with SMTP id\n a640c23a62f3a-b9d476bfe96mr108133066b.41.1775715731954; Wed, 08 Apr 2026\n 23:22:11 -0700 (PDT)","MIME-Version":"1.0","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>\n <09cf72c9-7333-4f1f-bb2a-bc88b668b294@linaro.org>","In-Reply-To":"<09cf72c9-7333-4f1f-bb2a-bc88b668b294@linaro.org>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Thu, 9 Apr 2026 16:21:45 +1000","X-Gm-Features":"AQROBzCgW61uRy9XGxf1N5vGO5BALdj_f-tUsU_LqVhudpm7gEKjJM6n6PoYOOM","Message-ID":"\n <CAKmqyKOP-69j14DiaWUbZSL-_5nytjgsDhXA6tmTVvLBzrxgSQ@mail.gmail.com>","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","To":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Cc":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n palmer@dabbelt.com,\n liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com,\n qemu-riscv@nongnu.org, qemu-devel@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::629;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x629.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.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 FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable 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"}},{"id":3675222,"web_url":"http://patchwork.ozlabs.org/comment/3675222/","msgid":"<bcfbec03-1916-4181-a4ce-5775b39a0a91@linaro.org>","list_archive_url":null,"date":"2026-04-09T10:00:04","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/people/85046/","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"content":"On 9/4/26 08:21, Alistair Francis wrote:\n> On Wed, Apr 8, 2026 at 6:48 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote:\n>>\n>> On 7/4/26 11:38, Daniel Henrique Barboza wrote:\n>>>\n>>>\n>>> On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n>>>> From: Alistair Francis <alistair.francis@wdc.com>\n>>>>\n>>>> The RISC-V spec states:\n>>>>\n>>>> \"For the purposes of memory protection, a failed SC.W may be treated\n>>>> like a store.\"\n>>>>\n>>>> So if the comparison in sc.w fails we should still check for alignment\n>>>> and do a probe access to check permissions.\n>>>>\n>>>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n>>>> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n>>>\n>>> Typo: \"Resoves\"\n>>>\n>>>\n>>> Also, IIRC the bug URL that automatically closes Gitlab issues when\n>>> merging the patch is on the format:\n>>>\n>>> \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n>>>\n>>>\n>>> Maybe this URL with \"work_items\" also works, but even with the regular\n>>> URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n>>> \"work_items\" to \"issues\" in all those URLs to be safe.\n>>\n>> FWIW I concur :)\n>>\n>>>\n>>>\n>>> That said,\n>>>\n>>>\n>>> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n>>>\n>>>> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n>>>> ---\n>>>>    target/riscv/helper.h                   |  3 +++\n>>>>    target/riscv/op_helper.c                | 14 ++++++++++++++\n>>>>    target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n>>>>    3 files changed, 23 insertions(+)\n>>>>\n>>>> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n>>>> index b785456ee0..af6cfcfc27 100644\n>>>> --- a/target/riscv/helper.h\n>>>> +++ b/target/riscv/helper.h\n>>>> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n>>>>    #ifndef CONFIG_USER_ONLY\n>>>>    DEF_HELPER_1(ssamoswap_disabled, void, env)\n>>>>    #endif\n>>>> +\n>>>> +/* Zalrsc\" SC write probe */\n>>>> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n>>>> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n>>>> index 6ccc127c30..b569366369 100644\n>>>> --- a/target/riscv/op_helper.c\n>>>> +++ b/target/riscv/op_helper.c\n>>>> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env,\n>>>> target_ulong address)\n>>>>        /* We don't emulate the cache-hierarchy, so we're done. */\n>>>>    }\n>>>> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n>>>> +                           target_ulong size)\n>>\n>> We could directly use uint64_t for @size. Then after the release the\n>> @addr argument will be converted to vaddr type [*]. We could do that\n>> directly now:\n>>\n>>\n>> DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, vaddr, i64)\n>>\n>> void helper_sc_probe_write(CPURISCVState *env, vaddr addr,\n>>                              uint64_t size)\n> \n> That fails for RV32 linux-user\n> \n> ../target/riscv/insn_trans/trans_rva.c.inc:97:40: error: passing\n> argument 2 of ‘gen_helper_sc_probe_write’ from incompatible pointer\n> type [-Wincompatible-po\n> inter-types]\n>    97 |     gen_helper_sc_probe_write(tcg_env, src1,\n>       |                                        ^~~~\n>       |                                        |\n>       |                                        TCGv {aka struct TCGv_i32_d *}\n> In file included from\n> /var/mnt/scratch/alistair/software/qemu/include/qemu/osdep.h:53,\n>                  from ../target/riscv/translate.c:19:\n> /var/mnt/scratch/alistair/software/qemu/include/exec/helper-head.h.inc:128:57:\n> note: expected ‘TCGv_i64’ {aka ‘struct TCGv_i64_d *’} but argument is\n> of type\n> ‘TCGv’ {aka ‘struct TCGv_i32_d *’}\n>   128 | #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)\n>       |                                                         ^\n> /var/mnt/scratch/alistair/software/qemu/include/qemu/compiler.h:29:21:\n> note: in definition of macro ‘xglue’\n>    29 | #define xglue(x, y) x ## y\n>       |                     ^\n> /var/mnt/scratch/alistair/software/qemu/include/exec/helper-head.h.inc:128:52:\n> note: in expansion of macro ‘glue’\n>   128 | #define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)\n>       |                                                    ^~~~\n> /var/mnt/scratch/alistair/software/qemu/include/exec/helper-gen.h.inc:44:25:\n> note: in expansion of macro ‘dh_arg_decl’\n>    44 |     dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3))         \\\n>       |                         ^~~~~~~~~~~\n> ../target/riscv/helper.h:1294:1: note: in expansion of macro\n> ‘DEF_HELPER_FLAGS_3’\n> 1294 | DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, vaddr, i64)\n>       | ^~~~~~~~~~~~~~~~~~\n> In file included from\n> /var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op-common.h:11,\n>                  from\n> /var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op.h:11,\n>                  from ../target/riscv/translate.c:22:\n> /var/mnt/scratch/alistair/software/qemu/include/tcg/tcg.h:202:28:\n> note: ‘TCGv_i64’ declared here\n>   202 | typedef struct TCGv_i64_d *TCGv_i64;\n>       |                            ^~~~~~~~\n> /var/mnt/scratch/alistair/software/qemu/include/tcg/tcg-op.h:32:18:\n> note: ‘TCGv’ declared here\n>    32 | typedef TCGv_i32 TCGv;\n>       |                  ^~~~\n> \n> Am I missing something?\n\nOh, RISCV needs more work than :( Discard my suggestion then,\nthanks for trying it and sorry for the delay.\n\nRegards,\n\nPhil.","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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=zNZU07dJ;\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 4frwRp1QC4z1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 20:00:52 +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 1wAmBI-0000ce-KM; Thu, 09 Apr 2026 06:00:12 -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 <philmd@linaro.org>) id 1wAmBH-0000cE-8t\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 06:00:11 -0400","from mail-wm1-x330.google.com ([2a00:1450:4864:20::330])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wAmBF-0006hT-3Q\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 06:00:10 -0400","by mail-wm1-x330.google.com with SMTP id\n 5b1f17b1804b1-4887f49ec5aso9305025e9.1\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 03:00:08 -0700 (PDT)","from [192.168.69.228] (88-187-86-199.subs.proxad.net.\n [88.187.86.199]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488cd151cd7sm28775365e9.5.2026.04.09.03.00.04\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Thu, 09 Apr 2026 03:00:05 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1775728807; x=1776333607; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=mNMNL8feFzExP+rnObtMB2KrTgEpYRmiJuWGlbqUIy0=;\n b=zNZU07dJZvVl6lyiDOCyP/dEm6iLfZZe4W/FgcjLuDTIkthrP2PEcbeOHxEntbSkoX\n bazqkQX2drYMvHN3wuic1s8ezmM4l1+Iv7x5C1ZTrsqZ1aYF1haZSUQM9w8fv8gBp8jq\n +i+mx+THeQhtLlWPpwo3ior5Kq3kqej0u7ufF0mqbcm4pd4/hGnUVUJ6NKpFHRDsSJXn\n iduVIwdYVv+9edycciHIHreDqtsI8x2u2eBDJ1KzQSXKHaRausPYeJ6ed7Tn6CG121pc\n /mafu+eshfqU4265FV7KhffGU94MUeUHgXekyDNRmN5n75ITXI4kKt0AaI9Tm9eCWQHn\n obdQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775728807; x=1776333607;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=mNMNL8feFzExP+rnObtMB2KrTgEpYRmiJuWGlbqUIy0=;\n b=qmKvwKIHQjmwMZc20/Wjt6q4xbGmRsgx26NFL7UWivRz0S8aySs/y21ybYsOTh4Rn/\n XVKpmw3txCCwMn+OmeBy8Tcn9bId6sHbWttXgdw2GWBTtqJvO4t+FV3dyaZXdxcpGcDv\n 0dF7D/5kFwXRSLa2nYcsn+C1lrNnoNCmvfi9DQmz1vesLyyMKeoidCeV9wmaGLnvPG5D\n S/6ctEkOI6LUPVg8Vwiewfp2xFyNpWKMgPnNcBovHHuxQ13tUDwdAvk7sBzMWFHzKUk/\n bQ9kUiAB9AdNNO/YdodUIiCXeItmEXsb9nWMw2HHoQB/CUPww4mxhJqkX+f/cyCaRWXl\n 8mCA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWKa1Qnn221mtDBI9MtqPgi9dFQjCVAHJkLPHMh2FH2KqvdY/bfvE0Ozr9uLCo6oavZxd09miS/x9Ig@nongnu.org","X-Gm-Message-State":"AOJu0YwF+JpOuhgK0s+BAbnM/AJ9IMUDZqhIP5+AbnP1HmTiFSDE1OPB\n 7DkidffOVusgnKvPXmA3lWzZwqp+QIW4xqPtZTAn8JbybEqtZY27E388Ker1AyqWqtg=","X-Gm-Gg":"AeBDievvZ8WFJ5Bd+44cr1HK/X/Z6HAqeJqwB1gNxZso/8LxqQ+8yT4TpvfFaPMZIIp\n fWAZFfRq5i3M6gIykYovo1X/7YW7+FvfYtMUMBzHRcrtjIyM2J3dMMKN6QgnyUE75iIiYrjQ86c\n ffUOaK5K6PrvtR0CbJEwLhLFFlzgmChM0DSIsbOJnfiVManVZIo+d1+h3LVhM9v1eVEcJAGY/C1\n RpF1BIdc9tyFAv5wfti4HJm1ufF4QUqwfV3OlJs8Jgge9tarlKC9WRI+TAxbELE7iDcB/W8rjN2\n ua0TZuuT2MJilL6REMK3h0SWmtwIUJBvjGvNhVc8i2flqiTC65roniyBAAVJ86OF9pRgFRiHari\n brS0evIgSBAhLzaFEi5cNDOWsOSdC9Rf7H2O5RWw2XL5ohpKqUAjp0JEyyB7srikhx6nzEi52KZ\n Xg0JOgzFWVMAHIWrmzqT1VleVFtRMAxJKNgBmGp10W2tMjgrEhYdSIBW91SYSiY+GsNQ==","X-Received":"by 2002:a05:600c:8710:b0:485:5ba3:37d8 with SMTP id\n 5b1f17b1804b1-488996b0589mr389272745e9.5.1775728806634;\n Thu, 09 Apr 2026 03:00:06 -0700 (PDT)","Message-ID":"<bcfbec03-1916-4181-a4ce-5775b39a0a91@linaro.org>","Date":"Thu, 9 Apr 2026 12:00:04 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","Content-Language":"en-US","To":"Alistair Francis <alistair23@gmail.com>","Cc":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n palmer@dabbelt.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com,\n chao.liu.zevorn@gmail.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>\n <09cf72c9-7333-4f1f-bb2a-bc88b668b294@linaro.org>\n <CAKmqyKOP-69j14DiaWUbZSL-_5nytjgsDhXA6tmTVvLBzrxgSQ@mail.gmail.com>","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","In-Reply-To":"\n <CAKmqyKOP-69j14DiaWUbZSL-_5nytjgsDhXA6tmTVvLBzrxgSQ@mail.gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::330;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x330.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,\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"}},{"id":3675224,"web_url":"http://patchwork.ozlabs.org/comment/3675224/","msgid":"<cddf6647-c97c-423d-b63a-202a09e4cc43@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-09T10:02:02","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":92288,"url":"http://patchwork.ozlabs.org/api/people/92288/","name":"Daniel Henrique Barboza","email":"daniel.barboza@oss.qualcomm.com"},"content":"On 4/9/2026 2:38 AM, Alistair Francis wrote:\n> On Tue, Apr 7, 2026 at 7:38 PM Daniel Henrique Barboza\n> <daniel.barboza@oss.qualcomm.com> wrote:\n>>\n>>\n>>\n>> On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n>>> From: Alistair Francis <alistair.francis@wdc.com>\n>>>\n>>> The RISC-V spec states:\n>>>\n>>> \"For the purposes of memory protection, a failed SC.W may be treated\n>>> like a store.\"\n>>>\n>>> So if the comparison in sc.w fails we should still check for alignment\n>>> and do a probe access to check permissions.\n>>>\n>>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n>>> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n>>\n>> Typo: \"Resoves\"\n>>\n>>\n>> Also, IIRC the bug URL that automatically closes Gitlab issues when\n>> merging the patch is on the format:\n>>\n>> \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n> \n> Interestingly trying to access\n> \n> https://gitlab.com/qemu-project/qemu/-/issues/3196\n> \n> takes me to\n> \n> https://gitlab.com/qemu-project/qemu/-/work_items/3196\n> \n> So I think Gitlab is changing from issues to work_items\n> \n>>\n>>\n>> Maybe this URL with \"work_items\" also works, but even with the regular\n>> URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n>> \"work_items\" to \"issues\" in all those URLs to be safe.\n> \n> Maybe using \"issues\" is the problem?\n> \n> I'm thinking of leaving these as-is, as issues seem to be replaced now.\n> \n> I even see https://docs.gitlab.com/development/work_items/#migration-strategy\n> and https://gitlab.com/groups/gitlab-org/-/work_items/6033 with more\n> details on this\n\nSeems like you're ahead of the curve then :D let's leave it as is and\nsee if the bug autocloses when the patches are merged.\n\n\nThanks,\nDaniel\n\n> \n> Alistair\n> \n>>\n>>\n>> That said,\n>>\n>>\n>> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n>>\n>>> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>\n>>> ---\n>>>    target/riscv/helper.h                   |  3 +++\n>>>    target/riscv/op_helper.c                | 14 ++++++++++++++\n>>>    target/riscv/insn_trans/trans_rva.c.inc |  6 ++++++\n>>>    3 files changed, 23 insertions(+)\n>>>\n>>> diff --git a/target/riscv/helper.h b/target/riscv/helper.h\n>>> index b785456ee0..af6cfcfc27 100644\n>>> --- a/target/riscv/helper.h\n>>> +++ b/target/riscv/helper.h\n>>> @@ -1289,3 +1289,6 @@ DEF_HELPER_4(vsm4r_vs, void, ptr, ptr, env, i32)\n>>>    #ifndef CONFIG_USER_ONLY\n>>>    DEF_HELPER_1(ssamoswap_disabled, void, env)\n>>>    #endif\n>>> +\n>>> +/* Zalrsc\" SC write probe */\n>>> +DEF_HELPER_FLAGS_3(sc_probe_write, TCG_CALL_NO_WG, void, env, tl, tl)\n>>> diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c\n>>> index 6ccc127c30..b569366369 100644\n>>> --- a/target/riscv/op_helper.c\n>>> +++ b/target/riscv/op_helper.c\n>>> @@ -281,6 +281,20 @@ void helper_cbo_inval(CPURISCVState *env, target_ulong address)\n>>>        /* We don't emulate the cache-hierarchy, so we're done. */\n>>>    }\n>>>\n>>> +void helper_sc_probe_write(CPURISCVState *env, target_ulong addr,\n>>> +                           target_ulong size)\n>>> +{\n>>> +    uintptr_t ra = GETPC();\n>>> +    int mmu_idx = riscv_env_mmu_index(env, false);\n>>> +\n>>> +    if (addr & (size - 1)) {\n>>> +        env->badaddr = addr;\n>>> +        riscv_raise_exception(env, RISCV_EXCP_STORE_AMO_ADDR_MIS, ra);\n>>> +    }\n>>> +\n>>> +    probe_write(env, addr, size, mmu_idx, ra);\n>>> +}\n>>> +\n>>>    #ifndef CONFIG_USER_ONLY\n>>>\n>>>    target_ulong helper_sret(CPURISCVState *env)\n>>> diff --git a/target/riscv/insn_trans/trans_rva.c.inc b/target/riscv/insn_trans/trans_rva.c.inc\n>>> index a7a3278d24..62c0fe673d 100644\n>>> --- a/target/riscv/insn_trans/trans_rva.c.inc\n>>> +++ b/target/riscv/insn_trans/trans_rva.c.inc\n>>> @@ -90,6 +90,12 @@ static bool gen_sc(DisasContext *ctx, arg_atomic *a, MemOp mop)\n>>>         */\n>>>        TCGBar bar_strl = (ctx->ztso || a->rl) ? TCG_BAR_STRL : 0;\n>>>        tcg_gen_mb(TCG_MO_ALL + a->aq * TCG_BAR_LDAQ + bar_strl);\n>>> +    /*\n>>> +     * \"For the purposes of memory protection, a failed SC.W may be treated\n>>> +     * like a store.\" so let's check the write access permissions\n>>> +     */\n>>> +    gen_helper_sc_probe_write(tcg_env, src1,\n>>> +                              tcg_constant_tl(memop_size(mop)));\n>>>        gen_set_gpr(ctx, a->rd, tcg_constant_tl(1));\n>>>\n>>>        gen_set_label(l2);\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=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=PuelqURh;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=VJpXCJdR;\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 4frwV857FYz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 20:02:56 +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 1wAmDi-0001Eb-Iz; Thu, 09 Apr 2026 06:02:42 -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 <daniel.barboza@oss.qualcomm.com>)\n id 1wAmDG-00018u-Kw\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 06:02:15 -0400","from mx0a-0031df01.pphosted.com ([205.220.168.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <daniel.barboza@oss.qualcomm.com>)\n id 1wAmDD-0006x9-Sn\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 06:02:14 -0400","from pps.filterd (m0279867.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 639A0MXU3326658\n for <qemu-devel@nongnu.org>; Thu, 9 Apr 2026 10:02:08 GMT","from mail-yx1-f71.google.com (mail-yx1-f71.google.com\n [74.125.224.71])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ddw9mtmmp-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 10:02:08 +0000 (GMT)","by mail-yx1-f71.google.com with SMTP id\n 956f58d0204a3-650119f2503so1234808d50.1\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 03:02:08 -0700 (PDT)","from [192.168.68.100] ([177.18.66.130])\n by smtp.gmail.com with ESMTPSA id\n af79cd13be357-8d4b8ca0665sm1412285985a.3.2026.04.09.03.02.04\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Thu, 09 Apr 2026 03:02:06 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n 7/VYxByq+1TzffwEkxYswPtIjBrBCe4rTqciWVg+mq8=; b=PuelqURhdB+5j7gQ\n AH0DmvEpdi0nMF8n3sR+ZUxUW9ghcTt+U/1M5CPJOYnG/3cdPARQ3DSs2DF1qgD6\n o/PiAbmuo+c6Da9LNGSyMgcDIyh9QqidJiwz/9RwYk/3zA7f8PhOguFR5mEhyF+M\n vWIZFGxkpCCd9VHRo0zPR+WYZVh4zGpKRzVG8q7sZPBhjgxMlkad0d046XiNpPgF\n ZDBqYd2m0qGCsxxyuV/avM3WjHm5qZMsqWmXZLRKwJ4fcDWlitS6yBgUtKsQXdNN\n 5QginXGjhPJRqh7PGV0IzQwmTcfGEZqVF/c93b0yLY7opQ+JITGfZOylTgXRYydS\n wRE1fA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1775728927; x=1776333727; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=7/VYxByq+1TzffwEkxYswPtIjBrBCe4rTqciWVg+mq8=;\n b=VJpXCJdRmEqTbGx8x4kMSLYO6UJVb28H2g8aldFeD0Kgs3PJPeGbgLEGCeoDJ0k/Gp\n kJ/9kDtKuIyunRaMgvfuVH+l9Ewa43i9+IT4ljWg1tcD57sI+G83PJEZn0tvPYNv6g7W\n X7eB/Eqy+VaNUE/gQLI+eQxQg1idMUT6rf7nEe0YTv782MjeXKaqPOrkG14WnPuSqElC\n yFbvnFidDNSz/59T9tckiJvyUW83d7Ya2QoRlUdwMiV4baaKTVCnSTtJaCFWaU8y8WqD\n UQEfxTQmYW+WBEL1U9bIcPoXXcglTRF1ngsz65AKLBQGh3xC8JGPGpx7RUzayUTeB1FI\n u+Lg=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775728927; x=1776333727;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=7/VYxByq+1TzffwEkxYswPtIjBrBCe4rTqciWVg+mq8=;\n b=E+AnJlW5BjNqCo38XZo9TsVVAN003CHzKQht2kpO+LGjdY5b2XUmvDJJQX/QvDA/tj\n nusu3qFcZqynKJ5bvrh+mkhF/GMtpGg/rT1qxCFDqyI8nm3oRzVBT8yXro8CiOzhFjo+\n kVoP2tGk67G26UplQoDgJFOaWIHkpdHv4cQUrKEfPSwF6kdFcuiAsfkJM7tGpRjWzKmK\n F6Hm6MZQaol+PLtD9hQwmc6//qvm2CspD3884lHc9kh/u1PA1pwum3kdmJNmwG3uajbI\n B7qr2lrSK6dRDh6sS/8uMUoDl2NGmPgaIVcMgZO+bBKI8BsQU4nBrcnsd9So/HUYIuUL\n oIpg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUqhy3lUcn2lyzCdgUvm7neBTj6+fICCorrsr0FwEWJmAQc01uwE9H0R1wQhK9NY0oE15h+bMAeQmeE@nongnu.org","X-Gm-Message-State":"AOJu0Yy1/xc55dkaQ5p0uCE+CVGMM+eAqc5yUYvihEu5BzDf41f6iqXU\n hCJ7rf2p2byIf0dgm6f0uZ4s8SJKWY7WO5MsrHyyPM984DdP+yTUwne4GZKdvp/WvKKB1mdyzWc\n d+XS5JegfVDo5eIwG0RNl8rGlmb5QSypyCZeuivZoMozbKONRqqxXyY2rGg==","X-Gm-Gg":"AeBDieswmzDM5FDWvabkK2iZf76FNdjVFknZzfrdKKee7+SjwKRgbo9lKzSJwwcZQGE\n RffrsFEdC+XckvrWb+dVHwVE22GGeq+N+wcBt9nNlcKsicAzf/nuhuLbkE6a/+tLFLrKp87e+NU\n b5tnX7gy6teSC+yKN8HiiVIn2yCgRMAqrmjAv7nbrai71M53svJVyuRjA1EAORrVqAzxpb0CVBk\n 2PMDgcUl+GAsU5+wxKUmurY7y5Ol3HjQCk4P14GfTcWkJ2w9KKeedGYGBUgsytHzp1/mT3lAxWw\n 1otY2WqQOvv4mu/cxPbAzAvp7wTCgI00/Zhu1hAKR5g1mXiOMiCx7jLuNazK7/U6LAajJrH5zDK\n pSRaDeT/lnPZ7IbRRtRsrHUEWDm8wSFmddf46pmeB6QPBGfAw5KP5cSl4","X-Received":["by 2002:a05:690e:120c:b0:650:367f:7f3a with SMTP id\n 956f58d0204a3-651877da183mr2449377d50.53.1775728927222;\n Thu, 09 Apr 2026 03:02:07 -0700 (PDT)","by 2002:a05:690e:120c:b0:650:367f:7f3a with SMTP id\n 956f58d0204a3-651877da183mr2449324d50.53.1775728926601;\n Thu, 09 Apr 2026 03:02:06 -0700 (PDT)"],"Message-ID":"<cddf6647-c97c-423d-b63a-202a09e4cc43@oss.qualcomm.com>","Date":"Thu, 9 Apr 2026 07:02:02 -0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","To":"Alistair Francis <alistair23@gmail.com>","Cc":"palmer@dabbelt.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com,\n chao.liu.zevorn@gmail.com, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Alistair Francis <alistair.francis@wdc.com>","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>\n <CAKmqyKOg=mtUisSTA5+e9Hy2drnqesEZQEEv3XRyEty6N7rPNQ@mail.gmail.com>","From":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Content-Language":"en-US","In-Reply-To":"\n <CAKmqyKOg=mtUisSTA5+e9Hy2drnqesEZQEEv3XRyEty6N7rPNQ@mail.gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-Authority-Analysis":"v=2.4 cv=cfPiaHDM c=1 sm=1 tr=0 ts=69d77920 cx=c_pps\n a=ngMg22mHWrP7m7pwYf9JkA==:117 a=Wg2i10Q8swPuJs8jTFC2sw==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22\n a=p0WdMEafAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=JF9118EUAAAA:8\n a=nhjZdmiyYQxdf1z5FHIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10\n a=yHXA93iunegOHmWoMUFd:22 a=xVlTc564ipvMDusKsbsT:22","X-Proofpoint-ORIG-GUID":"2Bff_TVRoH4ATqe9bC28mGqePE7JqoJx","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA5MDA4OSBTYWx0ZWRfXxpqW//zloYjs\n 8cr3QwMgEScezO2TBfKacTD6PuojWFLMkOVPE2araRkKQ95vwbqg/KZn8+N0H3MiSxdBYBCNm8s\n CPZ3MKJIDSMdFGs0TR99rzigGXhEH0UFdyXE124cVmlqVDB1V0NEJKy9Fy5l2t8RWaD3CUlNqH9\n u8voXTfnkNcJDAXSOJFxvFmGETIEDgxiFabUeUGU0jWQqz39yhVTP1MnW8CCGD6P4iRv+/nILKO\n zQcxGdT3Cka9LNPRY+7pcYkH8Yhs0Qn/yPAx2mUZ3tNHFqkAMvGS6C7TlWRh4BeN9DcIU3TlOpK\n Uqspml1p2utCHa4XYYXsJyYkDV0a64vDY9zdn2YbvyB90VVxiRw3odTD/H88VmIUATHCzU4toFg\n ja/r5AQ2il53dWnlnIBIpR69k7zfT4mseBHVO7wVl2d+nH6tqG71uHU5PfR4OUc4p7n/flk3WEx\n tsIAoWebG9AiRkly4gA==","X-Proofpoint-GUID":"2Bff_TVRoH4ATqe9bC28mGqePE7JqoJx","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_02,2026-04-09_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0\n malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0\n phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000\n definitions=main-2604090089","Received-SPF":"pass client-ip=205.220.168.131;\n envelope-from=daniel.barboza@oss.qualcomm.com;\n helo=mx0a-0031df01.pphosted.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_VALIDITY_RPBL_BLOCKED=0.001,\n RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable 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"}},{"id":3675557,"web_url":"http://patchwork.ozlabs.org/comment/3675557/","msgid":"<CAKmqyKO2voASRqudVDpyRCDPy77x7o5JAOcZTwnaw-FRPw2qPA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-09T23:29:34","subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Thu, Apr 9, 2026 at 8:02 PM Daniel Henrique Barboza\n<daniel.barboza@oss.qualcomm.com> wrote:\n>\n>\n>\n> On 4/9/2026 2:38 AM, Alistair Francis wrote:\n> > On Tue, Apr 7, 2026 at 7:38 PM Daniel Henrique Barboza\n> > <daniel.barboza@oss.qualcomm.com> wrote:\n> >>\n> >>\n> >>\n> >> On 4/7/2026 1:36 AM, alistair23@gmail.com wrote:\n> >>> From: Alistair Francis <alistair.francis@wdc.com>\n> >>>\n> >>> The RISC-V spec states:\n> >>>\n> >>> \"For the purposes of memory protection, a failed SC.W may be treated\n> >>> like a store.\"\n> >>>\n> >>> So if the comparison in sc.w fails we should still check for alignment\n> >>> and do a probe access to check permissions.\n> >>>\n> >>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3323\n> >>> Resoves: https://gitlab.com/qemu-project/qemu/-/work_items/3136\n> >>\n> >> Typo: \"Resoves\"\n> >>\n> >>\n> >> Also, IIRC the bug URL that automatically closes Gitlab issues when\n> >> merging the patch is on the format:\n> >>\n> >> \"Resolves: https://gitlab.com/qemu-project/qemu/-/issues/(number)\"\n> >\n> > Interestingly trying to access\n> >\n> > https://gitlab.com/qemu-project/qemu/-/issues/3196\n> >\n> > takes me to\n> >\n> > https://gitlab.com/qemu-project/qemu/-/work_items/3196\n> >\n> > So I think Gitlab is changing from issues to work_items\n> >\n> >>\n> >>\n> >> Maybe this URL with \"work_items\" also works, but even with the regular\n> >> URL Gitlab fails to autoclose the bug sometimes.  I suggest changing the\n> >> \"work_items\" to \"issues\" in all those URLs to be safe.\n> >\n> > Maybe using \"issues\" is the problem?\n> >\n> > I'm thinking of leaving these as-is, as issues seem to be replaced now.\n> >\n> > I even see https://docs.gitlab.com/development/work_items/#migration-strategy\n> > and https://gitlab.com/groups/gitlab-org/-/work_items/6033 with more\n> > details on this\n>\n> Seems like you're ahead of the curve then :D let's leave it as is and\n> see if the bug autocloses when the patches are merged.\n\nI didn't know that when I started, I just tried to open the issue link\nand it went to work_items :)\n\nSeems like it does work though:\nhttps://gitlab.com/qemu-project/qemu/-/work_items/2796\n\nAlistair","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=AOFont5m;\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 4fsGQJ10wmz1y05\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 09:30:46 +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 1wAyp3-0007Qs-Pa; Thu, 09 Apr 2026 19:30:05 -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 <alistair23@gmail.com>)\n id 1wAyp2-0007Qc-Gh\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 19:30:04 -0400","from mail-ej1-x633.google.com ([2a00:1450:4864:20::633])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wAyp0-0004sv-SO\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 19:30:04 -0400","by mail-ej1-x633.google.com with SMTP id\n a640c23a62f3a-b9c62fc8debso234554266b.0\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 16:30:02 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1775777401; cv=none;\n d=google.com; s=arc-20240605;\n b=GSrTrzFLcddOxPfuo+g2VE0uR+C71FvwpCyr7tjyVzkDaX9elJTku3fMhFLOeBiE7X\n 8PpyWy6x9dpK9EqAf3iAghTPlAGzPbgp4Vhc/EIvImKLlPu3PH1qP2MOYG9HOcCzYYGR\n qNJIgkT9KmumbrrD2/91ahqCnKKAeC0Ip0NRYXArfzIqiLR5lezLQkP6RvQvgY+VArx7\n wkfucll+4pScOpeRcq+/4jJ5eGgQyZmMl4yyXqHDR/d0XQTTg1Hwm4MObiH7KWJ3Kqs5\n ZkJiH0KHFMMjf2Z2pfO/c2JtEUwgvqI5tmzIV7Uj9zF6/bFVXOr4VrnlL+Cdfij5PZ0Q\n /gCg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=ZLvOJT3VuuLwgk9KPAGu+KszF/H5tj42VeXok80tbmE=;\n fh=mbi3KR9dLA/J7LDT03uuz+AC+RXOjQ7glt9K84h4mns=;\n b=UckKQ267iv6UCUjDgLEzyux/t3gbL4/Mr1BDR2XKkEmMDqmJIe4PeFrqJ4vzZtvMF0\n nRiWjT+Dt2IK26qkC+hLVHJwKnJcN2omXX2Yezq7Gv984RqrtbXpajXOYcAGXYl7R5dj\n bT+5q8YeoU9RD1JFIDwZworbaz+4VwvZA3if0pkNNi+GWagm47rW7Hu3XQ7e/NDv0hXb\n tV+4VXWt4N7AvLqxKXRumwWPifdNmvTTYX9RNbPyTuP7xFGtOV4kWtDU8hGK9jtf8rpt\n kdXn2fDS6WPm39ZwYx7/Mlsv2VAaCB+dwEqhhKB6+Eu7FXTmNNELsAyBNyxiLfDvxY6Q\n 6P+Q==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775777401; x=1776382201; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=ZLvOJT3VuuLwgk9KPAGu+KszF/H5tj42VeXok80tbmE=;\n b=AOFont5mFDBH0eoGHoJm4ANuhBnxJsD/S5X/JQdkuiwZ+aydpKRBlhn5jgbi747YK4\n w0/kG0weUUyaKwfIz7nt/8+TmxqVI/5BzDzYF9g6cTHpvi9Y8W/65rmNnVvhuTB4Ml/m\n DPmZ7shEgkEzrahMJi0AB/DFiuqbWNXO7Vf3eV5rcAnlKCPAV2nU6RKWqhvgXASst4T6\n n4Q0xuMrzGC6LFnpoKsLaImUNAEAOgQWS3P5ZRHjHuKuc+nAetu7VW5TtX8o+EdPZ+Vc\n KjOttxkaikkag71SqnD581L9qHLH5noAVFQ6cWhyXG4BgNsIze8+kqvRPre0fKwovzur\n UqwQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775777401; x=1776382201;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=ZLvOJT3VuuLwgk9KPAGu+KszF/H5tj42VeXok80tbmE=;\n b=poIU6RS7g5gnaM7K97Y401VEpV6EmMT9MML4t9Fhe8hyYD3Hec4x2/RAjcgBsNXYre\n lAfnXYomFPx8TyiE5tR7c7V0Ktk4aWQHvvV9DI1l/fSSMwITPrXYAzyGFRaOZXAtVIsP\n 5VJjyXfQ8Hz6MEMxxj5cWHXo48i6JG1f42I47/dHiSLpxRNiJtMV2U0Z1wpLe3uwZcMh\n DzxK+9qlQGqpFfu7GoTtuMIfCVsTVTWYV3qf07n6MXAmE7xoey88A/zoR+OLX2mylgEt\n BRTwsA8UPusw1IXT8t7xMTLcdz7pyPxgmdWs5PPCWvAqOdpgt2+R9rn5vLb8B30XgAdA\n KLUw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXoSSsLp5l4EcRqS107l2Qgno5DzwMa4VA3MvyhiUUHLQG2ol+uR9L1xa8QBjYrWFEJ3MOCIcDtW5iR@nongnu.org","X-Gm-Message-State":"AOJu0YyBurB3ibH/CItJiDkgN5KWWuqhGugkRlSyGs6YtUqIYtxvpaAV\n vj6llV1D5U4onCscfgAq5URVHF9pFqcF17nWs1ss/e03Flxv34DGi4+H6jzoAS2OULQZYY38/8z\n 3UHzQPaTTpP21gAOx0Dsp7fYT6kvVASU=","X-Gm-Gg":"AeBDieusBBGlFXpt1R+7wMuY5B90KbOae9GQTRAe7r46oatOt0mBiseik2VG5KE/e71\n fD3JzZLEISMBU8SA8ObwkIawnBXP0XWlo9kM8YAIemnc06TeqzHGEyShRPbAWx/uHSLfKCeJF4v\n bhSQb08Imb+zlq1OG/gCeedrkMd5l1+yg2bA/yQer5+mflyW8v2T+VsS93SX6HKcZwY1L2pDIOT\n rOTxQpeVQV+NKPV+rtEBmSvcLYnpDtkNVAT9yr1o8kJP/5bxLjTD3ujr+i+oQWRtF5jgvSCTZTZ\n TFoUKdsYVAV7VU2hFPB3SgRRnZkaSEjg+qDzvw==","X-Received":"by 2002:a17:906:9587:b0:b9b:1c7d:6bb8 with SMTP id\n a640c23a62f3a-b9d729bfd8emr43816066b.43.1775777400807; Thu, 09 Apr 2026\n 16:30:00 -0700 (PDT)","MIME-Version":"1.0","References":"<20260407043614.372871-1-alistair.francis@wdc.com>\n <20260407043614.372871-2-alistair.francis@wdc.com>\n <ad95d6bb-a483-4ef4-a217-a875b5f7a42f@oss.qualcomm.com>\n <CAKmqyKOg=mtUisSTA5+e9Hy2drnqesEZQEEv3XRyEty6N7rPNQ@mail.gmail.com>\n <cddf6647-c97c-423d-b63a-202a09e4cc43@oss.qualcomm.com>","In-Reply-To":"<cddf6647-c97c-423d-b63a-202a09e4cc43@oss.qualcomm.com>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Fri, 10 Apr 2026 09:29:34 +1000","X-Gm-Features":"AQROBzCeSsKXhQopGjUlA3xcGjtF0usIIEJ_ap8Hg5J-qybOI2ZpAY7ohf3CjaA","Message-ID":"\n <CAKmqyKO2voASRqudVDpyRCDPy77x7o5JAOcZTwnaw-FRPw2qPA@mail.gmail.com>","Subject":"Re: [PATCH 1/5] target/riscv: Generate access fault if sc comparison\n fails","To":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Cc":"palmer@dabbelt.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com,\n chao.liu.zevorn@gmail.com, qemu-riscv@nongnu.org, qemu-devel@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::633;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x633.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.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 FREEMAIL_ENVFROM_END_DIGIT=0.25, 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"}}]