accel/habanalabs: refactor error info reset
authorDani Liberman <dliberman@habana.ai>
Mon, 22 May 2023 14:15:36 +0000 (17:15 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Thu, 8 Jun 2023 09:35:56 +0000 (12:35 +0300)
Moved error info reset code to single function for future use from
other places in the driver.

Signed-off-by: Dani Liberman <dliberman@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/common/device.c
drivers/accel/habanalabs/common/habanalabs.h
drivers/accel/habanalabs/common/habanalabs_drv.c

index ea02f2c..b97339d 100644 (file)
@@ -2689,3 +2689,11 @@ void hl_handle_fw_err(struct hl_device *hdev, struct hl_info_fw_err_info *info)
        if (info->event_mask)
                *info->event_mask |= HL_NOTIFIER_EVENT_CRITICL_FW_ERR;
 }
+
+void hl_enable_err_info_capture(struct hl_error_info *captured_err_info)
+{
+       vfree(captured_err_info->page_fault_info.user_mappings);
+       memset(captured_err_info, 0, sizeof(struct hl_error_info));
+       atomic_set(&captured_err_info->cs_timeout.write_enable, 1);
+       captured_err_info->undef_opcode.write_enable = true;
+}
index c5aa33e..d92ba2e 100644 (file)
@@ -3944,6 +3944,7 @@ void hl_handle_page_fault(struct hl_device *hdev, u64 addr, u16 eng_id, bool is_
                                u64 *event_mask);
 void hl_handle_critical_hw_err(struct hl_device *hdev, u16 event_id, u64 *event_mask);
 void hl_handle_fw_err(struct hl_device *hdev, struct hl_info_fw_err_info *info);
+void hl_enable_err_info_capture(struct hl_error_info *captured_err_info);
 
 #ifdef CONFIG_DEBUG_FS
 
index 446f444..7263e84 100644 (file)
@@ -219,10 +219,7 @@ int hl_device_open(struct inode *inode, struct file *filp)
 
        hl_debugfs_add_file(hpriv);
 
-       vfree(hdev->captured_err_info.page_fault_info.user_mappings);
-       memset(&hdev->captured_err_info, 0, sizeof(hdev->captured_err_info));
-       atomic_set(&hdev->captured_err_info.cs_timeout.write_enable, 1);
-       hdev->captured_err_info.undef_opcode.write_enable = true;
+       hl_enable_err_info_capture(&hdev->captured_err_info);
 
        hdev->open_counter++;
        hdev->last_successful_open_jif = jiffies;