Commit fac91dd5 authored by Ofir Bitton's avatar Ofir Bitton Committed by Oded Gabbay
Browse files

accel/habanalabs: add event queue extra validation



In order to increase reliability of the event queue interface,
we apply to Gaudi2 the same mechanism we have in Gaudi1.
The extra validation is basically checking that the received
event index matches the expected index.

Signed-off-by: default avatarOfir Bitton <obitton@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent 19aa21b9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -430,7 +430,7 @@ irqreturn_t hl_irq_handler_eq(int irq, void *arg)
		cur_eqe_index = FIELD_GET(EQ_CTL_INDEX_MASK, cur_eqe);
		if ((hdev->event_queue.check_eqe_index) &&
				(((eq->prev_eqe_index + 1) & EQ_CTL_INDEX_MASK) != cur_eqe_index)) {
			dev_dbg(hdev->dev,
			dev_err(hdev->dev,
				"EQE %#x in queue is ready but index does not match %d!=%d",
				cur_eqe,
				((eq->prev_eqe_index + 1) & EQ_CTL_INDEX_MASK),
+6 −0
Original line number Diff line number Diff line
@@ -3619,6 +3619,12 @@ static int gaudi2_sw_init(struct hl_device *hdev)

	prop->supports_compute_reset = true;

	/* Event queue sanity check added in FW version 1.11 */
	if (hl_is_fw_sw_ver_below(hdev, 1, 11))
		hdev->event_queue.check_eqe_index = false;
	else
		hdev->event_queue.check_eqe_index = true;

	hdev->asic_funcs->set_pci_memory_regions(hdev);

	rc = gaudi2_special_blocks_iterator_config(hdev);