@@ -150,8 +150,6 @@ static int submit_lookup_objects(struct msm_gem_submit *submit,
150
150
151
151
submit -> bos [i ].handle = submit_bo .handle ;
152
152
submit -> bos [i ].flags = submit_bo .flags ;
153
- /* in validate_objects() we figure out if this is true: */
154
- submit -> bos [i ].iova = submit_bo .presumed ;
155
153
}
156
154
157
155
spin_lock (& file -> table_lock );
@@ -278,9 +276,6 @@ static void submit_unlock_unpin_bo(struct msm_gem_submit *submit, int i)
278
276
{
279
277
unsigned cleanup_flags = BO_PINNED | BO_LOCKED ;
280
278
submit_cleanup_bo (submit , i , cleanup_flags );
281
-
282
- if (!(submit -> bos [i ].flags & BO_VALID ))
283
- submit -> bos [i ].iova = 0 ;
284
279
}
285
280
286
281
/* This is where we make sure all the bo's are reserved and pin'd: */
@@ -390,8 +385,6 @@ static int submit_pin_objects(struct msm_gem_submit *submit)
390
385
struct msm_drm_private * priv = submit -> dev -> dev_private ;
391
386
int i , ret = 0 ;
392
387
393
- submit -> valid = true;
394
-
395
388
for (i = 0 ; i < submit -> nr_bos ; i ++ ) {
396
389
struct drm_gem_object * obj = submit -> bos [i ].obj ;
397
390
struct msm_gem_vma * vma ;
@@ -407,14 +400,7 @@ static int submit_pin_objects(struct msm_gem_submit *submit)
407
400
if (ret )
408
401
break ;
409
402
410
- if (vma -> iova == submit -> bos [i ].iova ) {
411
- submit -> bos [i ].flags |= BO_VALID ;
412
- } else {
413
- submit -> bos [i ].iova = vma -> iova ;
414
- /* iova changed, so address in cmdstream is not valid: */
415
- submit -> bos [i ].flags &= ~BO_VALID ;
416
- submit -> valid = false;
417
- }
403
+ submit -> bos [i ].iova = vma -> iova ;
418
404
}
419
405
420
406
/*
@@ -451,7 +437,7 @@ static void submit_attach_object_fences(struct msm_gem_submit *submit)
451
437
}
452
438
453
439
static int submit_bo (struct msm_gem_submit * submit , uint32_t idx ,
454
- struct drm_gem_object * * obj , uint64_t * iova , bool * valid )
440
+ struct drm_gem_object * * obj , uint64_t * iova )
455
441
{
456
442
if (idx >= submit -> nr_bos ) {
457
443
SUBMIT_ERROR (submit , "invalid buffer index: %u (out of %u)\n" ,
@@ -463,8 +449,6 @@ static int submit_bo(struct msm_gem_submit *submit, uint32_t idx,
463
449
* obj = submit -> bos [idx ].obj ;
464
450
if (iova )
465
451
* iova = submit -> bos [idx ].iova ;
466
- if (valid )
467
- * valid = !!(submit -> bos [idx ].flags & BO_VALID );
468
452
469
453
return 0 ;
470
454
}
@@ -477,9 +461,6 @@ static int submit_reloc(struct msm_gem_submit *submit, struct drm_gem_object *ob
477
461
uint32_t * ptr ;
478
462
int ret = 0 ;
479
463
480
- if (!nr_relocs )
481
- return 0 ;
482
-
483
464
if (offset % 4 ) {
484
465
SUBMIT_ERROR (submit , "non-aligned cmdstream buffer: %u\n" , offset );
485
466
return - EINVAL ;
@@ -500,7 +481,6 @@ static int submit_reloc(struct msm_gem_submit *submit, struct drm_gem_object *ob
500
481
struct drm_msm_gem_submit_reloc submit_reloc = relocs [i ];
501
482
uint32_t off ;
502
483
uint64_t iova ;
503
- bool valid ;
504
484
505
485
if (submit_reloc .submit_offset % 4 ) {
506
486
SUBMIT_ERROR (submit , "non-aligned reloc offset: %u\n" ,
@@ -519,13 +499,10 @@ static int submit_reloc(struct msm_gem_submit *submit, struct drm_gem_object *ob
519
499
goto out ;
520
500
}
521
501
522
- ret = submit_bo (submit , submit_reloc .reloc_idx , NULL , & iova , & valid );
502
+ ret = submit_bo (submit , submit_reloc .reloc_idx , NULL , & iova );
523
503
if (ret )
524
504
goto out ;
525
505
526
- if (valid )
527
- continue ;
528
-
529
506
iova += submit_reloc .reloc_offset ;
530
507
531
508
if (submit_reloc .shift < 0 )
@@ -879,8 +856,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
879
856
struct drm_gem_object * obj ;
880
857
uint64_t iova ;
881
858
882
- ret = submit_bo (submit , submit -> cmd [i ].idx ,
883
- & obj , & iova , NULL );
859
+ ret = submit_bo (submit , submit -> cmd [i ].idx , & obj , & iova );
884
860
if (ret )
885
861
goto out ;
886
862
@@ -894,17 +870,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
894
870
895
871
submit -> cmd [i ].iova = iova + (submit -> cmd [i ].offset * 4 );
896
872
897
- if (submit -> valid )
873
+ if (likely (! submit -> cmd [ i ]. nr_relocs ) )
898
874
continue ;
899
875
900
876
if (!gpu -> allow_relocs ) {
901
- if (submit -> cmd [i ].nr_relocs ) {
902
- SUBMIT_ERROR (submit , "relocs not allowed\n" );
903
- ret = - EINVAL ;
904
- goto out ;
905
- }
906
-
907
- continue ;
877
+ SUBMIT_ERROR (submit , "relocs not allowed\n" );
878
+ ret = - EINVAL ;
879
+ goto out ;
908
880
}
909
881
910
882
ret = submit_reloc (submit , obj , submit -> cmd [i ].offset * 4 ,
0 commit comments