DragonFlyBSD Kernel Audit
DF-1722 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/amdgpu/amdgpu_gem.c b/sys/dev/drm/amd/amdgpu/amdgpu_gem.c
--- a/sys/dev/drm/amd/amdgpu/amdgpu_gem.c
+++ b/sys/dev/drm/amd/amdgpu/amdgpu_gem.c
@@ -563,6 +563,8 @@
 	uint64_t va_flags;
 	int r = 0;
 
+	args->va_address &= AMDGPU_GMC_HOLE_MASK;
+
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
 		dev_dbg(&dev->pdev->dev,
 			"va_address 0x%LX is in reserved area 0x%LX\n",
@@ -578,8 +580,6 @@
 			AMDGPU_GMC_HOLE_END);
 		return -EINVAL;
 	}
-
-	args->va_address &= AMDGPU_GMC_HOLE_MASK;
 
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
 		dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",