Message ID | 20230804235624.263260-1-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] target/s390x: Fix VSTL with a large length | expand |
On 05.08.23 01:55, Ilya Leoshkevich wrote: > The length is always truncated to 16 bytes. Do not probe more than > that. > > Cc: qemu-stable@nongnu.org > Fixes: 0e0a5b49ad58 ("s390x/tcg: Implement VECTOR STORE WITH LENGTH") > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > target/s390x/tcg/vec_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/tcg/vec_helper.c b/target/s390x/tcg/vec_helper.c > index 48d86722b2d..dafc4c3582c 100644 > --- a/target/s390x/tcg/vec_helper.c > +++ b/target/s390x/tcg/vec_helper.c > @@ -193,7 +193,7 @@ void HELPER(vstl)(CPUS390XState *env, const void *v1, uint64_t addr, > uint64_t bytes) > { > /* Probe write access before actually modifying memory */ > - probe_write_access(env, addr, bytes, GETPC()); > + probe_write_access(env, addr, MIN(bytes, 16), GETPC()); > > if (likely(bytes >= 16)) { > cpu_stq_data_ra(env, addr, s390_vec_read_element64(v1, 0), GETPC()); Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/target/s390x/tcg/vec_helper.c b/target/s390x/tcg/vec_helper.c index 48d86722b2d..dafc4c3582c 100644 --- a/target/s390x/tcg/vec_helper.c +++ b/target/s390x/tcg/vec_helper.c @@ -193,7 +193,7 @@ void HELPER(vstl)(CPUS390XState *env, const void *v1, uint64_t addr, uint64_t bytes) { /* Probe write access before actually modifying memory */ - probe_write_access(env, addr, bytes, GETPC()); + probe_write_access(env, addr, MIN(bytes, 16), GETPC()); if (likely(bytes >= 16)) { cpu_stq_data_ra(env, addr, s390_vec_read_element64(v1, 0), GETPC());
The length is always truncated to 16 bytes. Do not probe more than that. Cc: qemu-stable@nongnu.org Fixes: 0e0a5b49ad58 ("s390x/tcg: Implement VECTOR STORE WITH LENGTH") Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- target/s390x/tcg/vec_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)