To expand the test coverage for MTE tags in userspace memory,
also perform the test with `write`, `readv` and `writev` syscalls.
Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20220209152240.52788-6-joey.gouly@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
 #include <string.h>
 #include <ucontext.h>
 #include <unistd.h>
+#include <sys/uio.h>
 #include <sys/mman.h>
 
 #include "kselftest.h"
 
 enum test_type {
        READ_TEST,
+       WRITE_TEST,
+       READV_TEST,
+       WRITEV_TEST,
        LAST_TEST,
 };
 
                                case READ_TEST:
                                        syscall_len = read(fd, ptr + ptroff, size);
                                        break;
+                               case WRITE_TEST:
+                                       syscall_len = write(fd, ptr + ptroff, size);
+                                       break;
+                               case READV_TEST: {
+                                       struct iovec iov[1];
+                                       iov[0].iov_base = ptr + ptroff;
+                                       iov[0].iov_len = size;
+                                       syscall_len = readv(fd, iov, 1);
+                                       break;
+                               }
+                               case WRITEV_TEST: {
+                                       struct iovec iov[1];
+                                       iov[0].iov_base = ptr + ptroff;
+                                       iov[0].iov_len = size;
+                                       syscall_len = writev(fd, iov, 1);
+                                       break;
+                               }
                                case LAST_TEST:
                                        goto usermem_acc_err;
                                }