hl_sysfs_fini(hdev);
        cdev_device_del(&hdev->cdev_ctrl, hdev->dev_ctrl);
        cdev_device_del(&hdev->cdev, hdev->dev);
+ 
+ put_devices:
+       put_device(hdev->dev);
+       put_device(hdev->dev_ctrl);
  }
  
 +static void device_hard_reset_pending(struct work_struct *work)
 +{
 +      struct hl_device_reset_work *device_reset_work =
 +              container_of(work, struct hl_device_reset_work,
 +                              reset_work.work);
 +      struct hl_device *hdev = device_reset_work->hdev;
 +      int rc;
 +
 +      rc = hl_device_reset(hdev, true, true);
 +      if ((rc == -EBUSY) && !hdev->device_fini_pending) {
 +              dev_info(hdev->dev,
 +                      "Could not reset device. will try again in %u seconds",
 +                      HL_PENDING_RESET_PER_SEC);
 +
 +              queue_delayed_work(device_reset_work->wq,
 +                      &device_reset_work->reset_work,
 +                      msecs_to_jiffies(HL_PENDING_RESET_PER_SEC * 1000));
 +      }
 +}
 +
  /*
   * device_early_init - do some early initialization for the habanalabs device
   *