[PATCH v1] s390x/tcg: Fix m5 vs. m4 field for VECTOR MULTIPLY SUM LOGICAL

David Hildenbrand posted 1 patch 4 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210705090341.58289-1-david@redhat.com
Maintainers: Cornelia Huck <cohuck@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, Thomas Huth <thuth@redhat.com>
target/s390x/translate_vx.c.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v1] s390x/tcg: Fix m5 vs. m4 field for VECTOR MULTIPLY SUM LOGICAL
Posted by David Hildenbrand 4 years, 7 months ago
The element size is located in m5, not in m4. As there is no m4, qemu
currently crashes with an assertion, trying to lookup that field.

Reproduced and tested via GO, which ends up using VMSL once the
Vector enhancements facility is around for verifying certificates with
elliptic curves.

Reported-by: Jonathan Albrecht <jonathan.albrecht@linux.vnet.ibm.com>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/449
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/translate_vx.c.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/translate_vx.c.inc b/target/s390x/translate_vx.c.inc
index a9d51b1f4c..0afa46e463 100644
--- a/target/s390x/translate_vx.c.inc
+++ b/target/s390x/translate_vx.c.inc
@@ -1783,7 +1783,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
 {
     TCGv_i64 l1, h1, l2, h2;
 
-    if (get_field(s, m4) != ES_64) {
+    if (get_field(s, m5) != ES_64) {
         gen_program_exception(s, PGM_SPECIFICATION);
         return DISAS_NORETURN;
     }
-- 
2.31.1


Re: [PATCH v1] s390x/tcg: Fix m5 vs. m4 field for VECTOR MULTIPLY SUM LOGICAL
Posted by David Hildenbrand 4 years, 7 months ago
On 05.07.21 11:03, David Hildenbrand wrote:
> The element size is located in m5, not in m4. As there is no m4, qemu
> currently crashes with an assertion, trying to lookup that field.
> 
> Reproduced and tested via GO, which ends up using VMSL once the
> Vector enhancements facility is around for verifying certificates with
> elliptic curves.
> 
> Reported-by: Jonathan Albrecht <jonathan.albrecht@linux.vnet.ibm.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/449
> Signed-off-by: David Hildenbrand <david@redhat.com>

Forgot to add

Fixes: 8c18fa5b3eba ("s390x/tcg: Implement VECTOR MULTIPLY SUM LOGICAL")


-- 
Thanks,

David / dhildenb


Re: [PATCH v1] s390x/tcg: Fix m5 vs. m4 field for VECTOR MULTIPLY SUM LOGICAL
Posted by Cornelia Huck 4 years, 7 months ago
On Mon, Jul 05 2021, David Hildenbrand <david@redhat.com> wrote:

> The element size is located in m5, not in m4. As there is no m4, qemu
> currently crashes with an assertion, trying to lookup that field.
>
> Reproduced and tested via GO, which ends up using VMSL once the
> Vector enhancements facility is around for verifying certificates with
> elliptic curves.
>
> Reported-by: Jonathan Albrecht <jonathan.albrecht@linux.vnet.ibm.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/449
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  target/s390x/translate_vx.c.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Thanks, applied.


Re: [PATCH v1] s390x/tcg: Fix m5 vs. m4 field for VECTOR MULTIPLY SUM LOGICAL
Posted by Thomas Huth 4 years, 7 months ago
On 05/07/2021 11.03, David Hildenbrand wrote:
> The element size is located in m5, not in m4. As there is no m4, qemu
> currently crashes with an assertion, trying to lookup that field.
> 
> Reproduced and tested via GO, which ends up using VMSL once the
> Vector enhancements facility is around for verifying certificates with
> elliptic curves.
> 
> Reported-by: Jonathan Albrecht <jonathan.albrecht@linux.vnet.ibm.com>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/449
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   target/s390x/translate_vx.c.inc | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/s390x/translate_vx.c.inc b/target/s390x/translate_vx.c.inc
> index a9d51b1f4c..0afa46e463 100644
> --- a/target/s390x/translate_vx.c.inc
> +++ b/target/s390x/translate_vx.c.inc
> @@ -1783,7 +1783,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
>   {
>       TCGv_i64 l1, h1, l2, h2;
>   
> -    if (get_field(s, m4) != ES_64) {
> +    if (get_field(s, m5) != ES_64) {
>           gen_program_exception(s, PGM_SPECIFICATION);
>           return DISAS_NORETURN;
>       }

Looks right.

Reviewed-by: Thomas Huth <thuth@redhat.com>