From: Matthew Brost Date: Fri, 30 Jan 2026 19:49:27 +0000 (-0800) Subject: drm/gpusvm: Force unmapping on error in drm_gpusvm_get_pages X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=556dba95473900073a6c03121361c11f646dc551;p=thirdparty%2Fkernel%2Flinux.git drm/gpusvm: Force unmapping on error in drm_gpusvm_get_pages drm_gpusvm_get_pages() only sets the local flags prior to committing the pages. If an error occurs mid-mapping, has_dma_mapping will be clear, causing the unmap function to skip unmapping pages that were successfully mapped before the error. Fix this by forcibly setting has_dma_mapping in the error path to ensure all previously mapped pages are properly unmapped. Fixes: 99624bdff867 ("drm/gpusvm: Add support for GPU Shared Virtual Memory") Cc: stable@vger.kernel.org Signed-off-by: Matthew Brost Reviewed-by: Francois Dugast Link: https://patch.msgid.link/20260130194928.3255613-2-matthew.brost@intel.com --- diff --git a/drivers/gpu/drm/drm_gpusvm.c b/drivers/gpu/drm/drm_gpusvm.c index aa9a0b60e727e..d733599ceb9a0 100644 --- a/drivers/gpu/drm/drm_gpusvm.c +++ b/drivers/gpu/drm/drm_gpusvm.c @@ -1572,6 +1572,7 @@ set_seqno: return 0; err_unmap: + svm_pages->flags.has_dma_mapping = true; __drm_gpusvm_unmap_pages(gpusvm, svm_pages, num_dma_mapped); drm_gpusvm_notifier_unlock(gpusvm); err_free: