habanalabs/gaudi: send device reset notification
authorTal Cohen <talcohen@habana.ai>
Wed, 8 Jun 2022 14:34:54 +0000 (17:34 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Tue, 12 Jul 2022 06:09:22 +0000 (09:09 +0300)
Device reset event, indicates that the device shall be reset -
after a short delay. In such case, the driver sends a notification
towards the User process. This allows the User process
to be able to take several debug actions for system
diagnostic purposes.

Signed-off-by: Tal Cohen <talcohen@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/gaudi/gaudi.c

index 8f37297..b7460c3 100644 (file)
@@ -8054,13 +8054,20 @@ static void gaudi_handle_eqe(struct hl_device *hdev,
 reset_device:
        reset_required = true;
 
-       if (hdev->asic_prop.fw_security_enabled && !reset_direct)
+       if (hdev->asic_prop.fw_security_enabled && !reset_direct) {
                flags = HL_DRV_RESET_HARD | HL_DRV_RESET_BYPASS_REQ_TO_FW | fw_fatal_err_flag;
-       else if (hdev->hard_reset_on_fw_events)
+               event_mask |= HL_NOTIFIER_EVENT_DEVICE_RESET;
+       } else if (hdev->hard_reset_on_fw_events) {
                flags = HL_DRV_RESET_HARD | HL_DRV_RESET_DELAY | fw_fatal_err_flag;
-       else
+               event_mask |= HL_NOTIFIER_EVENT_DEVICE_RESET;
+       } else {
                reset_required = false;
+       }
 
+       /* despite reset doesn't execute. a notification on
+        * occurred event needs to be sent here
+        */
+       hl_notifier_event_send_all(hdev, event_mask);
        if (reset_required)
                hl_device_reset(hdev, flags);
        else