aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 71792d820ae0..7b3d1ebda9df 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -244,16 +244,10 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
244 return -EINVAL; 244 return -EINVAL;
245 } 245 }
246 flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS; 246 flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
247 if (args->in.domains == AMDGPU_GEM_DOMAIN_GDS) 247 /* GDS allocations must be DW aligned */
248 size = size << AMDGPU_GDS_SHIFT; 248 if (args->in.domains & AMDGPU_GEM_DOMAIN_GDS)
249 else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS) 249 size = ALIGN(size, 4);
250 size = size << AMDGPU_GWS_SHIFT;
251 else if (args->in.domains == AMDGPU_GEM_DOMAIN_OA)
252 size = size << AMDGPU_OA_SHIFT;
253 else
254 return -EINVAL;
255 } 250 }
256 size = roundup(size, PAGE_SIZE);
257 251
258 if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) { 252 if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) {
259 r = amdgpu_bo_reserve(vm->root.base.bo, false); 253 r = amdgpu_bo_reserve(vm->root.base.bo, false);
@@ -572,16 +566,16 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
572 return -EINVAL; 566 return -EINVAL;
573 } 567 }
574 568
575 if (args->va_address >= AMDGPU_VA_HOLE_START && 569 if (args->va_address >= AMDGPU_GMC_HOLE_START &&
576 args->va_address < AMDGPU_VA_HOLE_END) { 570 args->va_address < AMDGPU_GMC_HOLE_END) {
577 dev_dbg(&dev->pdev->dev, 571 dev_dbg(&dev->pdev->dev,
578 "va_address 0x%LX is in VA hole 0x%LX-0x%LX\n", 572 "va_address 0x%LX is in VA hole 0x%LX-0x%LX\n",
579 args->va_address, AMDGPU_VA_HOLE_START, 573 args->va_address, AMDGPU_GMC_HOLE_START,
580 AMDGPU_VA_HOLE_END); 574 AMDGPU_GMC_HOLE_END);
581 return -EINVAL; 575 return -EINVAL;
582 } 576 }
583 577
584 args->va_address &= AMDGPU_VA_HOLE_MASK; 578 args->va_address &= AMDGPU_GMC_HOLE_MASK;
585 579
586 if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) { 580 if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
587 dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n", 581 dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",