Rev 5271 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5271 | Rev 5346 | ||
---|---|---|---|
Line 181... | Line 181... | ||
181 | radeon_cs_buckets_get_list(&buckets, &p->validated); |
181 | radeon_cs_buckets_get_list(&buckets, &p->validated); |
Line 182... | Line 182... | ||
182 | 182 | ||
183 | if (p->cs_flags & RADEON_CS_USE_VM) |
183 | if (p->cs_flags & RADEON_CS_USE_VM) |
184 | p->vm_bos = radeon_vm_get_bos(p->rdev, p->ib.vm, |
184 | p->vm_bos = radeon_vm_get_bos(p->rdev, p->ib.vm, |
185 | &p->validated); |
- | |
186 | // if (need_mmap_lock) |
- | |
Line 187... | Line 185... | ||
187 | // down_read(¤t->mm->mmap_sem); |
185 | &p->validated); |
Line 188... | Line -... | ||
188 | - | ||
189 | r = radeon_bo_list_validate(p->rdev, &p->ticket, &p->validated, p->ring); |
- | |
190 | - | ||
191 | // if (need_mmap_lock) |
186 | |
192 | // up_read(¤t->mm->mmap_sem); |
187 | r = radeon_bo_list_validate(p->rdev, &p->ticket, &p->validated, p->ring); |
Line 193... | Line 188... | ||
193 | 188 | ||
194 | return r; |
189 | return r; |
Line 647... | Line 642... | ||
647 | { |
642 | { |
648 | struct radeon_device *rdev = dev->dev_private; |
643 | struct radeon_device *rdev = dev->dev_private; |
649 | struct radeon_cs_parser parser; |
644 | struct radeon_cs_parser parser; |
650 | int r; |
645 | int r; |
Line 651... | Line 646... | ||
651 | 646 | ||
652 | // down_read(&rdev->exclusive_lock); |
647 | down_read(&rdev->exclusive_lock); |
653 | if (!rdev->accel_working) { |
648 | if (!rdev->accel_working) { |
654 | // up_read(&rdev->exclusive_lock); |
649 | up_read(&rdev->exclusive_lock); |
655 | return -EBUSY; |
650 | return -EBUSY; |
656 | } |
651 | } |
657 | /* initialize parser */ |
652 | /* initialize parser */ |
658 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); |
653 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); |
Line 662... | Line 657... | ||
662 | parser.family = rdev->family; |
657 | parser.family = rdev->family; |
663 | r = radeon_cs_parser_init(&parser, data); |
658 | r = radeon_cs_parser_init(&parser, data); |
664 | if (r) { |
659 | if (r) { |
665 | DRM_ERROR("Failed to initialize parser !\n"); |
660 | DRM_ERROR("Failed to initialize parser !\n"); |
666 | radeon_cs_parser_fini(&parser, r, false); |
661 | radeon_cs_parser_fini(&parser, r, false); |
667 | // up_read(&rdev->exclusive_lock); |
662 | up_read(&rdev->exclusive_lock); |
668 | r = radeon_cs_handle_lockup(rdev, r); |
663 | r = radeon_cs_handle_lockup(rdev, r); |
669 | return r; |
664 | return r; |
670 | } |
665 | } |
Line 671... | Line 666... | ||
671 | 666 | ||
Line 676... | Line 671... | ||
676 | DRM_ERROR("Failed to parse relocation %d!\n", r); |
671 | DRM_ERROR("Failed to parse relocation %d!\n", r); |
677 | } |
672 | } |
Line 678... | Line 673... | ||
678 | 673 | ||
679 | if (r) { |
674 | if (r) { |
680 | radeon_cs_parser_fini(&parser, r, false); |
675 | radeon_cs_parser_fini(&parser, r, false); |
681 | // up_read(&rdev->exclusive_lock); |
676 | up_read(&rdev->exclusive_lock); |
682 | r = radeon_cs_handle_lockup(rdev, r); |
677 | r = radeon_cs_handle_lockup(rdev, r); |
683 | return r; |
678 | return r; |
Line 684... | Line 679... | ||
684 | } |
679 | } |
Line 693... | Line 688... | ||
693 | if (r) { |
688 | if (r) { |
694 | goto out; |
689 | goto out; |
695 | } |
690 | } |
696 | out: |
691 | out: |
697 | radeon_cs_parser_fini(&parser, r, true); |
692 | radeon_cs_parser_fini(&parser, r, true); |
698 | // up_read(&rdev->exclusive_lock); |
693 | up_read(&rdev->exclusive_lock); |
699 | r = radeon_cs_handle_lockup(rdev, r); |
694 | r = radeon_cs_handle_lockup(rdev, r); |
700 | return r; |
695 | return r; |
701 | } |
696 | } |
Line 702... | Line 697... | ||
702 | 697 |