kselftest/arm64: Refactor parameter checking in mte_switch_mode()
authorMark Brown <broonie@kernel.org>
Tue, 19 Apr 2022 10:32:42 +0000 (11:32 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 28 Apr 2022 16:57:11 +0000 (17:57 +0100)
Currently we just have a big if statement with a non-specific diagnostic
checking both the mode and the tag. Since we'll need to dynamically check
for asymmetric mode support in the system and to improve debugability split
these checks out.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
Link: https://lore.kernel.org/r/20220419103243.24774-4-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
tools/testing/selftests/arm64/mte/mte_common_util.c

index 5327aa95817137e780a6da2437a203e396bf07e4..260206f4dce0c43e9ba3da080c0fbfc23bb831fd 100644 (file)
@@ -273,9 +273,18 @@ int mte_switch_mode(int mte_option, unsigned long incl_mask)
 {
        unsigned long en = 0;
 
-       if (!(mte_option == MTE_SYNC_ERR || mte_option == MTE_ASYNC_ERR ||
-             mte_option == MTE_NONE_ERR || incl_mask <= MTE_ALLOW_NON_ZERO_TAG)) {
-               ksft_print_msg("FAIL: Invalid mte config option\n");
+       switch (mte_option) {
+       case MTE_NONE_ERR:
+       case MTE_SYNC_ERR:
+       case MTE_ASYNC_ERR:
+               break;
+       default:
+               ksft_print_msg("FAIL: Invalid MTE option %x\n", mte_option);
+               return -EINVAL;
+       }
+
+       if (!(incl_mask <= MTE_ALLOW_NON_ZERO_TAG)) {
+               ksft_print_msg("FAIL: Invalid incl_mask %lx\n", incl_mask);
                return -EINVAL;
        }
        en = PR_TAGGED_ADDR_ENABLE;