Re: [PATCH 4/6] riscv: hwprobe: Report Supm only when available

From: Radim Krčmář

Date: Mon Nov 09 2026 - 09:02:15 EST


2026-11-08T06:24:53-05:00, Guodong Xu <guodong.xu@xxxxxxxxxxxxxxxx>:
> Hi Radim,
>
> On Tue, 6 Oct 2026 09:53:01 +0200, Radim Krcmar wrote:
>> The RISC-V ISA defines Supm as
>>
>> "An extension that indicates that there is pointer-masking support
>> available in user mode, with some facility provided in the application
>> execution environment to control pointer masking."
>>
>> Our facility always returns -EINVAL unless Supm support is configured,
>> the pointer masking ISA extension is globally present, and the user-mode
>> is running in 64-bit mode.
>>
>> Hiding Supm in compat tasks would add complexity that doesn't seem
>> justified as 32-bit code has no reason to look at Supm anyway.
>> Reporting based on the a global sysctl toggle isn't done.
>>
>> Do not report Supm when some harts lack the extension, because it's not
>> available on any hart in that case.
>>
>> (Reporting Supm when only PMLEN=0 is supported isn't great, but doesn't
>> violate the text of the extension and we ought to have Supm7 and Supm16
>> extensions if we care about precision.)
>
> Since the kernel already knows whether that is the case, could this
> block use riscv_have_user_pmlen() instead (55458c7347a3 "riscv: Add a
> getter for user PMLEN support")? It exposes the have_user_pmlen_* flags
> that set_tagged_addr_ctrl() consults, so hwprobe would report Supm only
> when the prctl can actually enable a non-zero PMLEN:
>
> /* PMM=0 is "disabled"; Supm is usable only with a non-zero PMLEN. */
> if (riscv_have_user_pmlen(7) || riscv_have_user_pmlen(16))
> pair->value |= RISCV_HWPROBE_EXT_SUPM;

I'll use that in v2, thanks.