selftests/arm64: Log errors in verify_mte_pointer_validity()
authorMark Brown <broonie@kernel.org>
Tue, 10 May 2022 16:45:16 +0000 (17:45 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Sun, 15 May 2022 10:07:53 +0000 (11:07 +0100)
When we detect a problem in verify_mte_pointer_validity() while checking
tags we don't log what the problem was which makes debugging harder. Add
some diagnostics.

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

index deaef1f610768104abe2b076f0e5166cd5ac211f..b906914997ce2a3442a81e1aff402a56cf7fb719 100644 (file)
@@ -25,8 +25,11 @@ static int verify_mte_pointer_validity(char *ptr, int mode)
        /* Check the validity of the tagged pointer */
        memset((void *)ptr, '1', BUFFER_SIZE);
        mte_wait_after_trig();
-       if (cur_mte_cxt.fault_valid)
+       if (cur_mte_cxt.fault_valid) {
+               ksft_print_msg("Unexpected fault recorded for %p-%p in mode %x\n",
+                              ptr, ptr + BUFFER_SIZE, mode);
                return KSFT_FAIL;
+       }
        /* Proceed further for nonzero tags */
        if (!MT_FETCH_TAG((uintptr_t)ptr))
                return KSFT_PASS;
@@ -34,10 +37,13 @@ static int verify_mte_pointer_validity(char *ptr, int mode)
        /* Check the validity outside the range */
        ptr[BUFFER_SIZE] = '2';
        mte_wait_after_trig();
-       if (!cur_mte_cxt.fault_valid)
+       if (!cur_mte_cxt.fault_valid) {
+               ksft_print_msg("No valid fault recorded for %p in mode %x\n",
+                              ptr, mode);
                return KSFT_FAIL;
-       else
+       } else {
                return KSFT_PASS;
+       }
 }
 
 static int check_single_included_tags(int mem_type, int mode)