File tree Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -612,18 +612,22 @@ int ivpu_mmu_reserved_context_init(struct ivpu_device *vdev)
612
612
if (!ivpu_mmu_ensure_pgd (vdev , & vdev -> rctx .pgtable )) {
613
613
ivpu_err (vdev , "Failed to allocate root page table for reserved context\n" );
614
614
ret = - ENOMEM ;
615
- goto unlock ;
615
+ goto err_ctx_fini ;
616
616
}
617
617
618
618
ret = ivpu_mmu_cd_set (vdev , vdev -> rctx .id , & vdev -> rctx .pgtable );
619
619
if (ret ) {
620
620
ivpu_err (vdev , "Failed to set context descriptor for reserved context\n" );
621
- goto unlock ;
621
+ goto err_ctx_fini ;
622
622
}
623
623
624
- unlock :
625
624
mutex_unlock (& vdev -> rctx .lock );
626
625
return ret ;
626
+
627
+ err_ctx_fini :
628
+ mutex_unlock (& vdev -> rctx .lock );
629
+ ivpu_mmu_context_fini (vdev , & vdev -> rctx );
630
+ return ret ;
627
631
}
628
632
629
633
void ivpu_mmu_reserved_context_fini (struct ivpu_device * vdev )
You can’t perform that action at this time.
0 commit comments