On 2/18/26 19:42, Audra Mitchell wrote:
> On architectures with separate user address space, such as s390 or
> those without an MMU, the call to __access_ok will return true.

Where is this __access_ok() you mention here? Somewhere in
fs/proc/task_mmu.c?

> The soft-dirty test attempts to check if the PAGEMAP_SCAN feature
> is supported by providing an invalid address and expecting
> __access_ok to return false, thus throwing an EFAULT error on return.

Where in the soft-dirty test is that triggered?

I'm wondering whether the soft-dirty test should be adjusted, but I did
not yet understand from where this behavior is triggered.

> Because of this assumption, this check will always fail for the
> architectures aforementioned. Update the supported check to handle
> the return being zero for these types of cases.

It would be great to include the output of an actual test case
(soft-dirty?) that is affected by this before/after your change (likely
on s390x where it seems to trigger).

Do we have a Fixes: tag?

> 
> Signed-off-by: Audra Mitchell <[email protected]>
> ---
>  tools/testing/selftests/mm/vm_util.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/vm_util.c 
> b/tools/testing/selftests/mm/vm_util.c
> index d954bf91afd5..3bb7d322101c 100644
> --- a/tools/testing/selftests/mm/vm_util.c
> +++ b/tools/testing/selftests/mm/vm_util.c
> @@ -77,10 +77,8 @@ static bool pagemap_scan_supported(int fd, char *start)
>  
>       /* Provide an invalid address in order to trigger EFAULT. */
>       ret = __pagemap_scan_get_categories(fd, start, (struct page_region *) 
> ~0UL);
> -     if (ret == 0)
> -             ksft_exit_fail_msg("PAGEMAP_SCAN succeeded unexpectedly\n");
>  
> -     supported = errno == EFAULT;
> +     supported = (ret == 0) || (errno == EFAULT);
>  
>       return supported;
>  }


-- 
Cheers,

David

Reply via email to