]> www.infradead.org Git - nvme.git/commitdiff
accel/habanalabs/gaudi2: check extended errors according to PCIe addr_dec interrupt...
authorTomer Tayar <ttayar@habana.ai>
Thu, 18 Jan 2024 12:29:02 +0000 (14:29 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 26 Feb 2024 07:46:55 +0000 (09:46 +0200)
The FW interrupt info for a PCIe addr_dec event is set correctly, so
check for either global errors or razwi according to the indications
there.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Reviewed-by: Carl Vanderlip <quic_carlv@quicinc.com>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/gaudi2/gaudi2.c

index 04ada1fb171351b7ed9acfc5c39e714ce79ba847..9f033a785c4990ed84854ec6f2aa80738c641a1c 100644 (file)
@@ -8983,9 +8983,6 @@ static int gaudi2_print_pcie_addr_dec_info(struct hl_device *hdev, u16 event_typ
        u32 error_count = 0;
        int i;
 
-       gaudi2_print_event(hdev, event_type, true,
-               "intr_cause_data: %#llx", intr_cause_data);
-
        for (i = 0 ; i < GAUDI2_NUM_OF_PCIE_ADDR_DEC_ERR_CAUSE ; i++) {
                if (!(intr_cause_data & BIT_ULL(i)))
                        continue;
@@ -8994,15 +8991,16 @@ static int gaudi2_print_pcie_addr_dec_info(struct hl_device *hdev, u16 event_typ
                        "err cause: %s", gaudi2_pcie_addr_dec_error_cause[i]);
                error_count++;
 
-               /*
-                * Always check for LBW and HBW additional info as the indication itself is
-                * sometimes missing
-                */
+               switch (intr_cause_data & BIT_ULL(i)) {
+               case PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK:
+                       hl_check_for_glbl_errors(hdev);
+                       break;
+               case PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK:
+                       gaudi2_print_pcie_mstr_rr_mstr_if_razwi_info(hdev, event_mask);
+                       break;
+               }
        }
 
-       hl_check_for_glbl_errors(hdev);
-       gaudi2_print_pcie_mstr_rr_mstr_if_razwi_info(hdev, event_mask);
-
        return error_count;
 }