[PATCH] iommu: Allow device driver to use its own PASID space for SVA
Jason Gunthorpe
jgg at ziepe.ca
Fri May 15 16:18:08 PDT 2026
On Fri, May 15, 2026 at 09:46:05AM +0000, Joonwon Kang wrote:
> diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
> index 0ca3912ecb7f..61e2e52105e5 100644
> --- a/arch/x86/kernel/traps.c
> +++ b/arch/x86/kernel/traps.c
> @@ -864,6 +864,8 @@ static bool try_fixup_enqcmd_gp(void)
> return false;
>
> pasid = mm_get_enqcmd_pasid(current->mm);
> + if (pasid == IOMMU_PASID_INVALID)
> + return false;
If you do this then probably you should get rid of mm_valid_pasid(),
mm_get_enqcmd_pasid() already has the NULL check so the two functions
are kind of pointless.
You also missed the other place calling mm_valid_pasid() that should
really be sensitive to this as well:
static int prctl_enable_tagged_addr(struct mm_struct *mm, unsigned long nr_bits)
{
[..]
if (mm_valid_pasid(mm) &&
!test_bit(MM_CONTEXT_FORCE_TAGGED_SVA, &mm->context.flags))
return -EINVAL;
Make that removal a prep patch
I didn't try to check the rest closely but the approach looked sane to
me
Jason
More information about the linux-arm-kernel
mailing list