fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
                if (unlikely(!fpriv)) {
                        r = -ENOMEM;
-                       goto out_suspend;
+                       goto err_suspend;
                }
 
                if (rdev->accel_working) {
                        vm = &fpriv->vm;
                        r = radeon_vm_init(rdev, vm);
                        if (r)
-                               goto out_fpriv;
+                               goto err_fpriv;
 
                        r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
                        if (r)
-                               goto out_vm_fini;
+                               goto err_vm_fini;
 
                        /* map the ib pool buffer read only into
                         * virtual address space */
                                                        rdev->ring_tmp_bo.bo);
                        if (!vm->ib_bo_va) {
                                r = -ENOMEM;
-                               goto out_vm_fini;
+                               goto err_vm_fini;
                        }
 
                        r = radeon_vm_bo_set_addr(rdev, vm->ib_bo_va,
                                                  RADEON_VM_PAGE_READABLE |
                                                  RADEON_VM_PAGE_SNOOPED);
                        if (r)
-                               goto out_vm_fini;
+                               goto err_vm_fini;
                }
                file_priv->driver_priv = fpriv;
        }
 
-       if (!r)
-               goto out_suspend;
+       pm_runtime_mark_last_busy(dev->dev);
+       pm_runtime_put_autosuspend(dev->dev);
+       return 0;
 
-out_vm_fini:
+err_vm_fini:
        radeon_vm_fini(rdev, vm);
-out_fpriv:
+err_fpriv:
        kfree(fpriv);
-out_suspend:
+
+err_suspend:
        pm_runtime_mark_last_busy(dev->dev);
        pm_runtime_put_autosuspend(dev->dev);
        return r;