From: Lizhi Hou Date: Thu, 4 Jun 2026 19:54:59 +0000 (-0700) Subject: accel/amdxdna: Require carveout when PASID and force_iova are disabled X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65cbdffa324d6d50dc14f762c1430a2d1dafb7d4;p=thirdparty%2Flinux.git accel/amdxdna: Require carveout when PASID and force_iova are disabled When both PASID and force_iova are disabled, carveout memory should be used. Reject buffer allocations that cannot use carveout memory in this configuration and return an error. Fixes: 3cc5d7a59519 ("accel/amdxdna: Add carveout memory support for non-IOMMU systems") Reviewed-by: Mario Limonciello (AMD) Signed-off-by: Lizhi Hou Link: https://patch.msgid.link/20260604195459.2423279-1-lizhi.hou@amd.com --- diff --git a/drivers/accel/amdxdna/amdxdna_pci_drv.c b/drivers/accel/amdxdna/amdxdna_pci_drv.c index c677293c1ae7..1f066ed8d236 100644 --- a/drivers/accel/amdxdna/amdxdna_pci_drv.c +++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c @@ -120,8 +120,14 @@ static int amdxdna_drm_open(struct drm_device *ddev, struct drm_file *filp) if (!amdxdna_iova_on(xdna)) { /* No need to fail open since user may use pa + carveout later. */ - if (amdxdna_sva_init(client)) + if (amdxdna_sva_init(client)) { XDNA_WARN(xdna, "PASID not available for pid %d", client->pid); + if (!amdxdna_use_carveout(xdna)) { + XDNA_ERR(xdna, "PASID unavailable and carveout not configured"); + kfree(client); + return -EINVAL; + } + } } mmgrab(client->mm); init_srcu_struct(&client->hwctx_srcu);