From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 904A9C433EF for ; Mon, 13 Sep 2021 19:11:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 76BC560F12 for ; Mon, 13 Sep 2021 19:11:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241701AbhIMTNM (ORCPT ); Mon, 13 Sep 2021 15:13:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:39376 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241533AbhIMTNI (ORCPT ); Mon, 13 Sep 2021 15:13:08 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D703D60F26; Mon, 13 Sep 2021 19:11:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631560312; bh=iULRhj5KLnHd/+v+YrzdE0hblCEvh1be8oqNRSVk52c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E4fqUJvqzNqHZOkl8c6BmFNOrE3VCwbQZyFs7KQSf0v2QcNrx5ZudrITqPrwjk9ib ExMksEMAcHfJIgSXL1PXqaOlgYgLp+BUJkzRbTKCU47s1cA1NigIfPRjfXGdYwuRe4 duwW08ngj7PS/u0IQyLh/JBpYgKCeTzYQvbCn50/9hC6mNqybjvEd5xNID8qfP1AKv 1hpGLYTmHow9gJhVTFVUF7aSDA7Lf+27WZPajze9k3HVVXyPn709VTUpo28Od6tty6 pBN0a81CaFsc07iVUCiTkvodtQPFuZueBQSsABOLx1gOE9UtNO5hxTXZXp6LEyDjjV eh7RnjAfTrC2w== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: farah kassabri Subject: [PATCH 2/2] habanalabs: fix wait offset handling Date: Mon, 13 Sep 2021 22:11:46 +0300 Message-Id: <20210913191146.92956-2-ogabbay@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210913191146.92956-1-ogabbay@kernel.org> References: <20210913191146.92956-1-ogabbay@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: farah kassabri Add handling for case where the user doesn't set wait offset, and keeps it as 0. In such a case the driver will decrement one from this zero value which will cause the code to wait for wrong number of signals. The solution is to treat this case as in legacy wait cs, and wait for the next signal. Signed-off-by: farah kassabri Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/misc/habanalabs/common/hw_queue.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/misc/habanalabs/common/hw_queue.c b/drivers/misc/habanalabs/common/hw_queue.c index 76b7de8f1406..0743319b10c7 100644 --- a/drivers/misc/habanalabs/common/hw_queue.c +++ b/drivers/misc/habanalabs/common/hw_queue.c @@ -437,6 +437,7 @@ void hl_hw_queue_encaps_sig_set_sob_info(struct hl_device *hdev, struct hl_cs_compl *cs_cmpl) { struct hl_cs_encaps_sig_handle *handle = cs->encaps_sig_hdl; + u32 offset = 0; cs_cmpl->hw_sob = handle->hw_sob; @@ -446,9 +447,13 @@ void hl_hw_queue_encaps_sig_set_sob_info(struct hl_device *hdev, * set offset 1 for example he mean to wait only for the first * signal only, which will be pre_sob_val, and if he set offset 2 * then the value required is (pre_sob_val + 1) and so on... + * if user set wait offset to 0, then treat it as legacy wait cs, + * wait for the next signal. */ - cs_cmpl->sob_val = handle->pre_sob_val + - (job->encaps_sig_wait_offset - 1); + if (job->encaps_sig_wait_offset) + offset = job->encaps_sig_wait_offset - 1; + + cs_cmpl->sob_val = handle->pre_sob_val + offset; } static int init_wait_cs(struct hl_device *hdev, struct hl_cs *cs, -- 2.17.1