.. | .. |
---|
45 | 45 | } |
---|
46 | 46 | |
---|
47 | 47 | static int dbgdev_diq_submit_ib(struct kfd_dbgdev *dbgdev, |
---|
48 | | - unsigned int pasid, uint64_t vmid0_address, |
---|
| 48 | + u32 pasid, uint64_t vmid0_address, |
---|
49 | 49 | uint32_t *packet_buff, size_t size_in_bytes) |
---|
50 | 50 | { |
---|
51 | 51 | struct pm4__release_mem *rm_packet; |
---|
.. | .. |
---|
72 | 72 | * The receive packet buff will be sitting on the Indirect Buffer |
---|
73 | 73 | * and in the PQ we put the IB packet + sync packet(s). |
---|
74 | 74 | */ |
---|
75 | | - status = kq->ops.acquire_packet_buffer(kq, |
---|
| 75 | + status = kq_acquire_packet_buffer(kq, |
---|
76 | 76 | pq_packets_size_in_bytes / sizeof(uint32_t), |
---|
77 | 77 | &ib_packet_buff); |
---|
78 | 78 | if (status) { |
---|
79 | | - pr_err("acquire_packet_buffer failed\n"); |
---|
| 79 | + pr_err("kq_acquire_packet_buffer failed\n"); |
---|
80 | 80 | return status; |
---|
81 | 81 | } |
---|
82 | 82 | |
---|
.. | .. |
---|
115 | 115 | |
---|
116 | 116 | if (status) { |
---|
117 | 117 | pr_err("Failed to allocate GART memory\n"); |
---|
118 | | - kq->ops.rollback_packet(kq); |
---|
| 118 | + kq_rollback_packet(kq); |
---|
119 | 119 | return status; |
---|
120 | 120 | } |
---|
121 | 121 | |
---|
.. | .. |
---|
151 | 151 | |
---|
152 | 152 | rm_packet->data_lo = QUEUESTATE__ACTIVE; |
---|
153 | 153 | |
---|
154 | | - kq->ops.submit_packet(kq); |
---|
| 154 | + kq_submit_packet(kq); |
---|
155 | 155 | |
---|
156 | 156 | /* Wait till CP writes sync code: */ |
---|
157 | 157 | status = amdkfd_fence_wait_timeout( |
---|
158 | | - (unsigned int *) rm_state, |
---|
| 158 | + rm_state, |
---|
159 | 159 | QUEUESTATE__ACTIVE, 1500); |
---|
160 | 160 | |
---|
161 | 161 | kfd_gtt_sa_free(dbgdev->dev, mem_obj); |
---|
.. | .. |
---|
185 | 185 | properties.type = KFD_QUEUE_TYPE_DIQ; |
---|
186 | 186 | |
---|
187 | 187 | status = pqm_create_queue(dbgdev->pqm, dbgdev->dev, NULL, |
---|
188 | | - &properties, &qid); |
---|
| 188 | + &properties, &qid, NULL); |
---|
189 | 189 | |
---|
190 | 190 | if (status) { |
---|
191 | 191 | pr_err("Failed to create DIQ\n"); |
---|
.. | .. |
---|
761 | 761 | { |
---|
762 | 762 | int status = 0; |
---|
763 | 763 | unsigned int vmid; |
---|
| 764 | + uint16_t queried_pasid; |
---|
764 | 765 | union SQ_CMD_BITS reg_sq_cmd; |
---|
765 | 766 | union GRBM_GFX_INDEX_BITS reg_gfx_index; |
---|
766 | 767 | struct kfd_process_device *pdd; |
---|
.. | .. |
---|
782 | 783 | */ |
---|
783 | 784 | |
---|
784 | 785 | for (vmid = first_vmid_to_scan; vmid <= last_vmid_to_scan; vmid++) { |
---|
785 | | - if (dev->kfd2kgd->get_atc_vmid_pasid_mapping_valid |
---|
786 | | - (dev->kgd, vmid)) { |
---|
787 | | - if (dev->kfd2kgd->get_atc_vmid_pasid_mapping_pasid |
---|
788 | | - (dev->kgd, vmid) == p->pasid) { |
---|
789 | | - pr_debug("Killing wave fronts of vmid %d and pasid %d\n", |
---|
790 | | - vmid, p->pasid); |
---|
791 | | - break; |
---|
792 | | - } |
---|
| 786 | + status = dev->kfd2kgd->get_atc_vmid_pasid_mapping_info |
---|
| 787 | + (dev->kgd, vmid, &queried_pasid); |
---|
| 788 | + |
---|
| 789 | + if (status && queried_pasid == p->pasid) { |
---|
| 790 | + pr_debug("Killing wave fronts of vmid %d and pasid 0x%x\n", |
---|
| 791 | + vmid, p->pasid); |
---|
| 792 | + break; |
---|
793 | 793 | } |
---|
794 | 794 | } |
---|
795 | 795 | |
---|
796 | 796 | if (vmid > last_vmid_to_scan) { |
---|
797 | | - pr_err("Didn't find vmid for pasid %d\n", p->pasid); |
---|
| 797 | + pr_err("Didn't find vmid for pasid 0x%x\n", p->pasid); |
---|
798 | 798 | return -EFAULT; |
---|
799 | 799 | } |
---|
800 | 800 | |
---|