On 6/1/26 23:06, Lizhi Hou wrote:
When PASID is not used, the buffer user address is set to
AMDXDNA_INVALID_ADDR. As a result, heap buffer user address validation
fails even though the original userspace address is available.

Preserve the userspace address regardless of PASID usage so heap buffer
address validation works correctly.

Fixes: dbc8fd7a03cb ("accel/amdxdna: Add expandable device heap support")
Signed-off-by: Lizhi Hou <[email protected]>
Reviewed-by: Mario Limonciello (AMD) <[email protected]>
---
  drivers/accel/amdxdna/amdxdna_gem.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/accel/amdxdna/amdxdna_gem.c 
b/drivers/accel/amdxdna/amdxdna_gem.c
index 77e5fad08ae5..33cf5af98ceb 100644
--- a/drivers/accel/amdxdna/amdxdna_gem.c
+++ b/drivers/accel/amdxdna/amdxdna_gem.c
@@ -349,8 +349,11 @@ static int amdxdna_hmm_register(struct amdxdna_gem_obj 
*abo,
        u32 nr_pages;
        int ret;
- if (!amdxdna_pasid_on(abo->client))
+       if (!amdxdna_pasid_on(abo->client)) {
+               /* Need to set uva for heap uva validation */
+               abo->mem.uva = addr;
                return 0;
+       }
mapp = kzalloc_obj(*mapp);
        if (!mapp)

Reply via email to