From patchwork Sun Jan 15 09:40:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 43818 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp662671wrn; Sun, 15 Jan 2023 01:41:13 -0800 (PST) X-Google-Smtp-Source: AMrXdXuAwb98IIp25GRd4XFAAMxM4rmT6uBqt7dt5AerurzDKVizVzT7pG2QHWOWAc9ZnZeovXS9 X-Received: by 2002:a17:906:5202:b0:7c1:4a3:10b6 with SMTP id g2-20020a170906520200b007c104a310b6mr73237532ejm.53.1673775672883; Sun, 15 Jan 2023 01:41:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673775672; cv=none; d=google.com; s=arc-20160816; b=m04Q3U5CI+321APILXM3rE1skTjnO9EBRIOHKJe57K9YucaB6onBNeMKnvxAICgYAV fXOqtPa6WJmgpDaQHbSrRCrRzQ2QfTjHF8CUx4we7xj0CChg9vHjz4N8N3OohESNJjMx aUVuTfNneyWClpU/Vsr690KJNb6ZjA8GKVgfh6vjnplWPOLSgzBLUi7C7uWDsHGj7oFA Y/TF4hiPXuysNJHMxEyfSZSjjko1yULQZRQvsfYOibc+Qb+Q7GWqaQJri9ny8RFS2wvR rGuhws+clhwxGh50QElcvgRbmhHYIkpemYdC7CBy98II5af9KcOM4fhzTg2mA8QF033B aoGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=KhEknk00QWF9MJRYIdOsgKOqh7V+4P+NsHdnBa0I4dg=; b=CALJXhz6tVlkj+WSXkP9WPA8kQDwiXtABDCthGfvuqngerDvqvxwacVjyWmNfIyvxj /gwPZL/divWi9acDfEflgWdc9sxA0kCT2ZzwKyxMpF9hTQetFCNq2/0O+yj3oJD6vWMB RdyzGvEmB4icXlQ6tB9F3Mu6YD21sKRqKFpmKhs/jwW7fjnYZBH53FxpcskuYfmFZRN7 qBqjDUqNucMLs7GTzTVouO5MzZQQiSKPyS0bF6hALSvMVop1cqa3fNo1HGxPe66Wecjz gXV5yuBLJTofouc7yGL5+BX9VDC/ZUQKJvXWyh+sTMzN6yNyRNPsEKJvXArsigHYU2Qb h+HA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=S99mCXMm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nc1-20020a1709071c0100b007adf16570c3si29189190ejc.17.2023.01.15.01.40.48; Sun, 15 Jan 2023 01:41:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=S99mCXMm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229982AbjAOJkf (ORCPT + 99 others); Sun, 15 Jan 2023 04:40:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42742 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229719AbjAOJkd (ORCPT ); Sun, 15 Jan 2023 04:40:33 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E25CC156 for ; Sun, 15 Jan 2023 01:40:32 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3033160C6E for ; Sun, 15 Jan 2023 09:40:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC140C433D2; Sun, 15 Jan 2023 09:40:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673775631; bh=UBzVcY5fRcwQWrhHV++8YM9LVjjvCcbqwKbKRaWY10k=; h=From:To:Cc:Subject:Date:From; b=S99mCXMmnxl+jXMUUKTRwMZcZtW4HC+qzZwuN8YxddJ4GLVphQCToke6aMSMWawjH c7BDz9cWwZBPtj33HzQMaCsyAbyLXBQCEUiy2tPKhKr16rZ6FB7Tx+44xIthAVEp3i pR8bengq/+P9p3qGtShNdtAqqMhbABz7DZtvjSWqD0wOwnAclaSwmdwgjc0WhwWxfd NGLH99ifTX3Hx2Wt4czhhMWlg26Ym0PwTGV42T+Iyud7Z9zLUtGnKMG4NqeTaFeRc0 WeCr+Ozx9DrzSHitCjpV8F86EnxExiLF6iuOY59RZDf07kkn07VEH5Z7HBwWbbNn8T rQ0mOG+GA+sqQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: farah kassabri Subject: [PATCH 1/5] habanalabs: check pad and reserved fields in ioctls Date: Sun, 15 Jan 2023 11:40:22 +0200 Message-Id: <20230115094026.289766-1-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755080999930093577?= X-GMAIL-MSGID: =?utf-8?q?1755080999930093577?= From: farah kassabri Make sure all reserved/pad fields in uapi input structures are set to 0. Signed-off-by: farah kassabri Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- .../accel/habanalabs/common/command_submission.c | 15 ++++++++++++++- .../accel/habanalabs/common/habanalabs_ioctl.c | 6 +++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/accel/habanalabs/common/command_submission.c b/drivers/accel/habanalabs/common/command_submission.c index bb9584d72c32..c54f504383ac 100644 --- a/drivers/accel/habanalabs/common/command_submission.c +++ b/drivers/accel/habanalabs/common/command_submission.c @@ -1310,6 +1310,13 @@ static int hl_cs_sanity_checks(struct hl_fpriv *hpriv, union hl_cs_args *args) enum hl_device_status status; enum hl_cs_type cs_type; bool is_sync_stream; + int i; + + for (i = 0 ; i < sizeof(args->in.pad) ; i++) + if (args->in.pad[i]) { + dev_dbg(hdev->dev, "Padding bytes must be 0\n"); + return -EINVAL; + } if (!hl_device_operational(hdev, &status)) { return -EBUSY; @@ -2918,7 +2925,13 @@ static int hl_multi_cs_wait_ioctl(struct hl_fpriv *hpriv, void *data) u32 size_to_copy; u64 *cs_seq_arr; u8 seq_arr_len; - int rc; + int rc, i; + + for (i = 0 ; i < sizeof(args->in.pad) ; i++) + if (args->in.pad[i]) { + dev_dbg(hdev->dev, "Padding bytes must be 0\n"); + return -EINVAL; + } if (!hdev->supports_wait_for_multi_cs) { dev_err(hdev->dev, "Wait for multi CS is not supported\n"); diff --git a/drivers/accel/habanalabs/common/habanalabs_ioctl.c b/drivers/accel/habanalabs/common/habanalabs_ioctl.c index 72493bf94ba3..5005e6fca691 100644 --- a/drivers/accel/habanalabs/common/habanalabs_ioctl.c +++ b/drivers/accel/habanalabs/common/habanalabs_ioctl.c @@ -884,9 +884,13 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data, enum hl_device_status status; struct hl_info_args *args = data; struct hl_device *hdev = hpriv->hdev; - int rc; + if (args->pad) { + dev_dbg(hdev->dev, "Padding bytes must be 0\n"); + return -EINVAL; + } + /* * Information is returned for the following opcodes even if the device * is disabled or in reset. From patchwork Sun Jan 15 09:40:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 43819 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp662887wrn; Sun, 15 Jan 2023 01:41:57 -0800 (PST) X-Google-Smtp-Source: AMrXdXvrg1frB8UJkXP9p8h7u1U4F8uZN4eRXx4pYVK6lCfexGGo1B7JGxRCNVno4soaczQSSZWU X-Received: by 2002:a05:6402:515b:b0:49c:5a27:c1fa with SMTP id n27-20020a056402515b00b0049c5a27c1famr10175432edd.24.1673775716948; Sun, 15 Jan 2023 01:41:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673775716; cv=none; d=google.com; s=arc-20160816; b=wZfwjsXzR+9XoYu2Qxt8r1H3t25XwzlKghJgMb4pYaCpu87XgonbQdoPaDMirL3xvg t6S/xt6u+MrSYO++vGsoOntW2YfOpLk5OCoIF1LbHlqI855YWJMw7d7t9T94LnIiELMV 0sf9hNI1Ei7lhAbVgWFYTda6ZKPulXnllxOdgMsyKv6ERR5lw+ihVnbQsI6bJEPvGaxb NBdxeYu9D52BTkhaAEc+G6FOk1Ib+qfXPRiSmRsbgTJUh9bDqzJ35L9UAAOvZ3D4EHDN QHHPiX6tcSLfHPTFq7jdplOZ4lDJcP2O+y4RG8HsCaAJ7IjikUz3VUwpKHAHrKXehVTa dWoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Eikm9Y5yUZqhg4tP+6IVVX6J/J9C6DotwMv3IgMx4lk=; b=JDrPa2+oBs5e4VANlnoZkebhL/vPL8tbVn5XYCzvx29l52+Jt4tHHWgU1rKtOGRPq5 pjzVGjgCW7VwBuQdmrfwZuyjuHqyrca7dSTSSDBqVvBAfebhKG4cX1tC1wpBxA182M2L EJA1iEfURXOLqiaFp3AroX0eoTQ+SzSnLTryT4INkcc5zclKTwiUxgdhxyMZFIUS+N+U 78Vb73U7teRUNGdAHwGsnF5HGzjuvZwqXCkltO2gr1wTEtGkvjLcpTs4do9jRcSoZw4Y gQRh+V36rTTZW3QMC3/yrjWVleluAMYgtrf9jJyjfU0/bmyET4MFJXWCczD0lsGWIMIf 3sQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Uc+SluZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w14-20020a05640234ce00b00459f9c3d02bsi30277641edc.22.2023.01.15.01.41.33; Sun, 15 Jan 2023 01:41:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Uc+SluZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229715AbjAOJkh (ORCPT + 99 others); Sun, 15 Jan 2023 04:40:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229804AbjAOJke (ORCPT ); Sun, 15 Jan 2023 04:40:34 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0832BC156 for ; Sun, 15 Jan 2023 01:40:34 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9455960C73 for ; Sun, 15 Jan 2023 09:40:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21937C433F0; Sun, 15 Jan 2023 09:40:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673775633; bh=RlGlfXOqT9FY8HDlxtYKGOJbb3f6aiHTxMdcG8g+F6Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Uc+SluZirIyxte0KTVtJ/A7wvov+cN7mb1j0btYryx/gSkl4++bNIj3YJJHq9JxSK yHjMNRvjHqiau9/OKkKyEzFXSqRV7T8U4TEIosQVoMnx6LjlDDmyDnychP2lhSPPhF UBSbDpOFHef+b2MC0kJUPp/3l2H46zpaAkheF/OD5zXAjZFx12yUMdc4oeX7sq4Hb3 +qwBr1CYLaFjNdnlSU5kCN3s5hObxZuoZBMZqmNHGrjl8Z95OgoI9aTxna1AB6XybT oZ2wohhsNtvvds1QyQUAmcE9oXNWPgiU0Fl8ESYWq/SEJN9RpqAYWZNXWcl2hlrQtQ yRBE/uRyInv5g== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: farah kassabri Subject: [PATCH 2/5] habanalabs: bugs fixes in timestamps buff alloc Date: Sun, 15 Jan 2023 11:40:23 +0200 Message-Id: <20230115094026.289766-2-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230115094026.289766-1-ogabbay@kernel.org> References: <20230115094026.289766-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755081046305791824?= X-GMAIL-MSGID: =?utf-8?q?1755081046305791824?= From: farah kassabri use argument instead of fixed GFP value for allocation in Timestamps buffers alloc function. change data type of size to size_t. Fixes: 9158bf69e74f ("habanalabs: Timestamps buffers registration") Signed-off-by: farah kassabri Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/accel/habanalabs/common/memory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/accel/habanalabs/common/memory.c b/drivers/accel/habanalabs/common/memory.c index 56283dd874e1..e6474d38afc4 100644 --- a/drivers/accel/habanalabs/common/memory.c +++ b/drivers/accel/habanalabs/common/memory.c @@ -2170,12 +2170,13 @@ static int hl_ts_mmap(struct hl_mmap_mem_buf *buf, struct vm_area_struct *vma, v static int hl_ts_alloc_buf(struct hl_mmap_mem_buf *buf, gfp_t gfp, void *args) { struct hl_ts_buff *ts_buff = NULL; - u32 size, num_elements; + u32 num_elements; + size_t size; void *p; num_elements = *(u32 *)args; - ts_buff = kzalloc(sizeof(*ts_buff), GFP_KERNEL); + ts_buff = kzalloc(sizeof(*ts_buff), gfp); if (!ts_buff) return -ENOMEM; From patchwork Sun Jan 15 09:40:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 43820 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp663553wrn; Sun, 15 Jan 2023 01:44:20 -0800 (PST) X-Google-Smtp-Source: AMrXdXthK+i7LBCqYl87FZYfc651QSX1TS4G+sOeRktYk8uQUOOa5GR4PUsxrIxHcj52QQMpqTSZ X-Received: by 2002:a17:906:3993:b0:844:de87:8684 with SMTP id h19-20020a170906399300b00844de878684mr84740568eje.46.1673775860284; Sun, 15 Jan 2023 01:44:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673775860; cv=none; d=google.com; s=arc-20160816; b=BMHjJ6NlwJ37aMXBVJPykVYJFVMUHnah2bKy29zPu+4VTl3W1keDV+OMYxVkD56Es8 uXtQRj/yTpJG7nRcdRb5/GwWdplusaaef+XprjegYqWgQlmQfA33/225k4YNOBnUo+BM TSH9l9vdO9nKnb5naBSJTgtLRUgrWWb1WzqShI5QT5UR66YcIUIz0RDLUFMOPiplWuVF 9O7y0SpLsIG+cHf/zEhI+yAkJXM6NmVUniyZqgbLNTSxJdRZyLAZ9ad3LTi8P44W1EnR W0okvVBZY223MkNLcm1KiOzROa7CqOIATYrgjZsSyRygX0aefnJvnDwP1g/vIubBBiVt VLKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=sWgpVkLLOsxOEu9YrPeQD4hVqiCblhdav29BJJSwu7o=; b=VqzT7TlxzPaAco7LM3tfFRay0I10Ab4QNROQTtesjkAffJvCG2YnyG9WLWBbSY9/wY PlJk8CSGEp0RC/wiQzjX1U/jgUidhdsNUPngvca3lh+srjvix1520/UnFJ99IBtWEPIi ZLQ6t+TCS+CtY/MZJYSt8dZIirYTewzhcfNDrmZ0UZc4gL5RC9SNReR+SUxwCL0u7UcZ eCGdfowjONyPNSu3LHXjQ7YrANUJZ1NidiPfa5fflt+anvbv7YpnyCmN40BZqg5lh/dA /OJzEtMU1EX7BFSbY+WG+moik8/7pv6twfFupvWRNGl1ZzUTyC+BbDS7CnJnDYdBOBb7 aNTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hBTb7mcD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nc9-20020a1709071c0900b0086d6cc19f9bsi5090956ejc.166.2023.01.15.01.43.56; Sun, 15 Jan 2023 01:44:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hBTb7mcD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230050AbjAOJkk (ORCPT + 99 others); Sun, 15 Jan 2023 04:40:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230017AbjAOJkg (ORCPT ); Sun, 15 Jan 2023 04:40:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79D92C169 for ; Sun, 15 Jan 2023 01:40:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0BD3460C6E for ; Sun, 15 Jan 2023 09:40:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89D87C433EF; Sun, 15 Jan 2023 09:40:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673775634; bh=Nvjr6ht73d9UvznjCsAwrLTV/0bf5Qk0URBK/c+wNt4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hBTb7mcDDkDYs4Erse5D/IKros8M/Fa298PX+kr81PIeBFWxzTiHUiNo2enKFslVu k4suMzyukYz0PG6H5xw3C/nO6+YQ8BvVKo5cWt0d5mquvrO5LIgnFJrC0RIyza3qdf NjzFMpYbsFdvQTMweQ0+Ua1vo3FdRGLG7tE/g/fws0vw7AOgAp2vju1jaLfZmk+Qds tteRQ99TsqwT3GM9QzvWpJUpnUZ3n2ce1z5TPzcrj3a/XCeo+fkdf4/FuLwHqDHYvv j7ABf31+rxBotNAurEuwgPuSZETjdSE0CI4K38zfqAIRNCW86/psJRqgZE4XGnlheV W2xbZuFb6Z9YQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: farah kassabri Subject: [PATCH 3/5] habanalabs: fix bug in timestamps registration code Date: Sun, 15 Jan 2023 11:40:24 +0200 Message-Id: <20230115094026.289766-3-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230115094026.289766-1-ogabbay@kernel.org> References: <20230115094026.289766-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755081196887305239?= X-GMAIL-MSGID: =?utf-8?q?1755081196887305239?= From: farah kassabri Protect re-using the same timestamp buffer record before actually adding it to the to interrupt wait list. Mark ts buff offset as in use in the spinlock protection area of the interrupt wait list to avoid getting in the re-use section in ts_buff_get_kernel_ts_record before adding the node to the list. this scenario might happen when multiple threads are racing on same offset and one thread could set data in the ts buff in ts_buff_get_kernel_ts_record then the other thread takes over and get to ts_buff_get_kernel_ts_record and we will try to re-use the same ts buff offset then we will try to delete a non existing node from the list. Signed-off-by: farah kassabri Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- .../habanalabs/common/command_submission.c | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/accel/habanalabs/common/command_submission.c b/drivers/accel/habanalabs/common/command_submission.c index c54f504383ac..00fedf2d8654 100644 --- a/drivers/accel/habanalabs/common/command_submission.c +++ b/drivers/accel/habanalabs/common/command_submission.c @@ -3180,19 +3180,18 @@ static int ts_buff_get_kernel_ts_record(struct hl_mmap_mem_buf *buf, goto start_over; } } else { + /* Fill up the new registration node info */ + requested_offset_record->ts_reg_info.buf = buf; + requested_offset_record->ts_reg_info.cq_cb = cq_cb; + requested_offset_record->ts_reg_info.timestamp_kernel_addr = + (u64 *) ts_buff->user_buff_address + ts_offset; + requested_offset_record->cq_kernel_addr = + (u64 *) cq_cb->kernel_address + cq_offset; + requested_offset_record->cq_target_value = target_value; + spin_unlock_irqrestore(wait_list_lock, flags); } - /* Fill up the new registration node info */ - requested_offset_record->ts_reg_info.in_use = 1; - requested_offset_record->ts_reg_info.buf = buf; - requested_offset_record->ts_reg_info.cq_cb = cq_cb; - requested_offset_record->ts_reg_info.timestamp_kernel_addr = - (u64 *) ts_buff->user_buff_address + ts_offset; - requested_offset_record->cq_kernel_addr = - (u64 *) cq_cb->kernel_address + cq_offset; - requested_offset_record->cq_target_value = target_value; - *pend = requested_offset_record; dev_dbg(buf->mmg->dev, "Found available node in TS kernel CB %p\n", @@ -3240,7 +3239,7 @@ static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx, goto put_cq_cb; } - /* Find first available record */ + /* get ts buffer record */ rc = ts_buff_get_kernel_ts_record(buf, cq_cb, ts_offset, cq_counters_offset, target_value, &interrupt->wait_list_lock, &pend); @@ -3288,7 +3287,19 @@ static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx, * Note that we cannot have sorted list by target value, * in order to shorten the list pass loop, since * same list could have nodes for different cq counter handle. + * Note: + * Mark ts buff offset as in use here in the spinlock protection area + * to avoid getting in the re-use section in ts_buff_get_kernel_ts_record + * before adding the node to the list. this scenario might happen when + * multiple threads are racing on same offset and one thread could + * set the ts buff in ts_buff_get_kernel_ts_record then the other thread + * takes over and get to ts_buff_get_kernel_ts_record and then we will try + * to re-use the same ts buff offset, and will try to delete a non existing + * node from the list. */ + if (register_ts_record) + pend->ts_reg_info.in_use = 1; + list_add_tail(&pend->wait_list_node, &interrupt->wait_list_head); spin_unlock_irqrestore(&interrupt->wait_list_lock, flags); From patchwork Sun Jan 15 09:40:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 43821 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp663628wrn; Sun, 15 Jan 2023 01:44:46 -0800 (PST) X-Google-Smtp-Source: AMrXdXs+8eifhV0TEMGJU+cTmLbhGbZ2xux0WZ+UBYCnPJK89MS3wA1ojI96Jbf6gWKM1NP+IWHK X-Received: by 2002:a05:6402:b9d:b0:49b:58ca:ebb9 with SMTP id cf29-20020a0564020b9d00b0049b58caebb9mr10164013edb.34.1673775885957; Sun, 15 Jan 2023 01:44:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673775885; cv=none; d=google.com; s=arc-20160816; b=pHU6BS6JKybYjtgVHY7PBVC5hSf/0jKvKwSPqK5+weeGBeOyLRjS8zcHT3w8BZIaWE W1uYo3f1Je3WRAArfimAKV1E5pUBTFd/fQPVqmDWvS1vE398PWejwgOv6Zm/5BwG3Z9T WNRbSNY6KOnDaYO3da+5UBA7rDGasMvRD+kO81RpAd1FzKzVFejQfYSpzvakQyOQKfyw EszkZJv8gPPaRQnyuEyHgAu4jiVSC0peMSyrpWc8nXyfMd1YmrFmhfjjWFG/8+ygmGNk shgMAjjFtZK8xri6G1q9ckP/q35ABEHtbK3pWwF+AF+KwOme0mCRwF+q1GF+a7Udt9SW V6OQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=C7V72m3Ogq8o927cCflbxoNWcuuEGnntIt3DD70MyaQ=; b=ybcvTevwnR0sd7iYArKAn2nbhLOnmLX9G5bAO1dFVx/3Q7PCUce2nguJtDMFuIobbU 8j1yN69oNduBPZydspB9XXifTFYwzrXmAtRFtiHtpkl0Lp9TdbKSdXfIfp8E8dn2Nmb+ uvPpTKXeUbTMPGLdsPaz6LVlu4Toc7jFOODQ3LnPJZTgvOQ5AsblBQmINd4lbY9O9jq4 iRMUKumwFS9voCiQTBuhsPcKjowq/YF+wJKtZ1RJUJ8qEIhR5AQ0jJG9rKuEPZO/YHZp kMi7U8q8ClkcBUIOnLa+BkbIXcVunNKmi8ANJvZigNtcK6QfXtDQOwdKu99AmsjDIxz2 IqSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GWwgDn2a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id be5-20020a1709070a4500b0084cbf5552a1si25691092ejc.876.2023.01.15.01.44.23; Sun, 15 Jan 2023 01:44:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GWwgDn2a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230118AbjAOJko (ORCPT + 99 others); Sun, 15 Jan 2023 04:40:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230215AbjAOJkk (ORCPT ); Sun, 15 Jan 2023 04:40:40 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC813C179 for ; Sun, 15 Jan 2023 01:40:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6EB2CB80B2A for ; Sun, 15 Jan 2023 09:40:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F22F0C433D2; Sun, 15 Jan 2023 09:40:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673775636; bh=3t2zkoynPZsUuzR5ci1is44NBgCu33DbyzDhfJGzf4A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GWwgDn2aBsaVdNPtBOz5QFJCUKTYYDDzVtaoa295CRcjL4ghp24ILJadgTlbY0HdH 6pA7ZpwRCgYDNEIEKDhjp3UL3pVQLrqkRXA7k+9jMnyKqE2BMPwRcJzQ91lDbo32Nd 9DsZvSaXMN8xwuhXiPSRJpxlIrNixWjPy9Gd4wto4G67JOkjdLsckkSiWEm1QxfC9h oEUuRRFAq5g1KXXH9ID0SBVGmV0Uh9g5XKevH6siZu0qOKC5V8NDvBWLTJeYGmFZcq oR7SysbBf8EN8m/E1GU86nGQ01rOm/J5AAViUjnfaMDcWyFiXEwkAnukMHkypL+jNB pnrCsvR6UpIiA== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Dani Liberman Subject: [PATCH 4/5] habanalabs/gaudi2: read mmio razwi information Date: Sun, 15 Jan 2023 11:40:25 +0200 Message-Id: <20230115094026.289766-4-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230115094026.289766-1-ogabbay@kernel.org> References: <20230115094026.289766-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755081223448412703?= X-GMAIL-MSGID: =?utf-8?q?1755081223448412703?= From: Dani Liberman In gaudi2 there night be different routers for low b/w and high b/w transactions. But in the code that collects razwi information, we used the same router for high b/w and low b/w. Fixed it by reading the information also from low b/w routers. Signed-off-by: Dani Liberman Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/accel/habanalabs/gaudi2/gaudi2.c | 117 ++++++++++++++++------- 1 file changed, 80 insertions(+), 37 deletions(-) diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2.c b/drivers/accel/habanalabs/gaudi2/gaudi2.c index 2b5cd058f5ad..32a824766f24 100644 --- a/drivers/accel/habanalabs/gaudi2/gaudi2.c +++ b/drivers/accel/habanalabs/gaudi2/gaudi2.c @@ -1568,7 +1568,7 @@ enum rtr_id { DCORE3_RTR7, }; -static const u32 gaudi2_tpc_initiator_rtr_id[NUM_OF_TPC_PER_DCORE * NUM_OF_DCORES + 1] = { +static const u32 gaudi2_tpc_initiator_hbw_rtr_id[NUM_OF_TPC_PER_DCORE * NUM_OF_DCORES + 1] = { DCORE0_RTR1, DCORE0_RTR1, DCORE0_RTR2, DCORE0_RTR2, DCORE0_RTR3, DCORE0_RTR3, DCORE1_RTR6, DCORE1_RTR6, DCORE1_RTR5, DCORE1_RTR5, DCORE1_RTR4, DCORE1_RTR4, DCORE2_RTR3, DCORE2_RTR3, DCORE2_RTR2, DCORE2_RTR2, DCORE2_RTR1, DCORE2_RTR1, @@ -1576,12 +1576,30 @@ static const u32 gaudi2_tpc_initiator_rtr_id[NUM_OF_TPC_PER_DCORE * NUM_OF_DCORE DCORE0_RTR0 }; -static const u32 gaudi2_dec_initiator_rtr_id[NUMBER_OF_DEC] = { +static const u32 gaudi2_tpc_initiator_lbw_rtr_id[NUM_OF_TPC_PER_DCORE * NUM_OF_DCORES + 1] = { + DCORE0_RTR1, DCORE0_RTR1, DCORE0_RTR1, DCORE0_RTR1, DCORE0_RTR2, DCORE0_RTR2, + DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR6, DCORE1_RTR6, DCORE1_RTR5, DCORE1_RTR5, + DCORE2_RTR2, DCORE2_RTR2, DCORE2_RTR1, DCORE2_RTR1, DCORE2_RTR0, DCORE2_RTR0, + DCORE3_RTR5, DCORE3_RTR5, DCORE3_RTR6, DCORE3_RTR6, DCORE3_RTR7, DCORE3_RTR7, + DCORE0_RTR0 +}; + +static const u32 gaudi2_dec_initiator_hbw_rtr_id[NUMBER_OF_DEC] = { DCORE0_RTR0, DCORE0_RTR0, DCORE1_RTR7, DCORE1_RTR7, DCORE2_RTR0, DCORE2_RTR0, DCORE3_RTR7, DCORE3_RTR7, DCORE0_RTR0, DCORE0_RTR0 }; -static const u32 gaudi2_nic_initiator_rtr_id[NIC_NUMBER_OF_MACROS] = { +static const u32 gaudi2_dec_initiator_lbw_rtr_id[NUMBER_OF_DEC] = { + DCORE0_RTR1, DCORE0_RTR1, DCORE1_RTR6, DCORE1_RTR6, DCORE2_RTR1, DCORE2_RTR1, + DCORE3_RTR6, DCORE3_RTR6, DCORE0_RTR0, DCORE0_RTR0 +}; + +static const u32 gaudi2_nic_initiator_hbw_rtr_id[NIC_NUMBER_OF_MACROS] = { + DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE2_RTR0, + DCORE2_RTR0, DCORE2_RTR0, DCORE2_RTR0, DCORE3_RTR7, DCORE3_RTR7, DCORE3_RTR7 +}; + +static const u32 gaudi2_nic_initiator_lbw_rtr_id[NIC_NUMBER_OF_MACROS] = { DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE1_RTR7, DCORE2_RTR0, DCORE2_RTR0, DCORE2_RTR0, DCORE2_RTR0, DCORE3_RTR7, DCORE3_RTR7, DCORE3_RTR7 }; @@ -1595,14 +1613,22 @@ static const struct sft_info gaudi2_edma_initiator_sft_id[NUM_OF_EDMA_PER_DCORE {0, 0}, {1, 0}, {0, 1}, {1, 1}, {1, 2}, {1, 3}, {0, 2}, {0, 3}, }; -static const u32 gaudi2_pdma_initiator_rtr_id[NUM_OF_PDMA] = { +static const u32 gaudi2_pdma_initiator_hbw_rtr_id[NUM_OF_PDMA] = { DCORE0_RTR0, DCORE0_RTR0 }; -static const u32 gaudi2_rot_initiator_rtr_id[NUM_OF_ROT] = { +static const u32 gaudi2_pdma_initiator_lbw_rtr_id[NUM_OF_PDMA] = { + DCORE0_RTR2, DCORE0_RTR2 +}; + +static const u32 gaudi2_rot_initiator_hbw_rtr_id[NUM_OF_ROT] = { DCORE2_RTR0, DCORE3_RTR7 }; +static const u32 gaudi2_rot_initiator_lbw_rtr_id[NUM_OF_ROT] = { + DCORE2_RTR2, DCORE3_RTR5 +}; + struct mme_initiators_rtr_id { u32 wap0; u32 wap1; @@ -7185,50 +7211,60 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev, u8 module_sub_idx, u64 *event_mask) { bool via_sft = false; - u32 rtr_id, dcore_id, dcore_rtr_id, sft_id, eng_id; - u64 rtr_mstr_if_base_addr; + u32 hbw_rtr_id, lbw_rtr_id, dcore_id, dcore_rtr_id, sft_id, eng_id; + u64 hbw_rtr_mstr_if_base_addr, lbw_rtr_mstr_if_base_addr; u32 hbw_shrd_aw = 0, hbw_shrd_ar = 0; u32 lbw_shrd_aw = 0, lbw_shrd_ar = 0; char initiator_name[64]; switch (module) { case RAZWI_TPC: - rtr_id = gaudi2_tpc_initiator_rtr_id[module_idx]; + hbw_rtr_id = gaudi2_tpc_initiator_hbw_rtr_id[module_idx]; + + /* TODO : remove this check and depend only on tpc routers table + * when SW-118828 is resolved + */ + if (!hdev->asic_prop.fw_security_enabled && + ((module_idx == 0) || (module_idx == 1))) + lbw_rtr_id = DCORE0_RTR0; + else + lbw_rtr_id = gaudi2_tpc_initiator_lbw_rtr_id[module_idx]; sprintf(initiator_name, "TPC_%u", module_idx); break; case RAZWI_MME: sprintf(initiator_name, "MME_%u", module_idx); switch (module_sub_idx) { case MME_WAP0: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].wap0; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].wap0; break; case MME_WAP1: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].wap1; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].wap1; break; case MME_WRITE: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].write; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].write; break; case MME_READ: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].read; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].read; break; case MME_SBTE0: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte0; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte0; break; case MME_SBTE1: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte1; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte1; break; case MME_SBTE2: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte2; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte2; break; case MME_SBTE3: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte3; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte3; break; case MME_SBTE4: - rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte4; + hbw_rtr_id = gaudi2_mme_initiator_rtr_id[module_idx].sbte4; break; default: return; } + lbw_rtr_id = hbw_rtr_id; break; case RAZWI_EDMA: sft_id = gaudi2_edma_initiator_sft_id[module_idx].interface_id; @@ -7237,19 +7273,23 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev, sprintf(initiator_name, "EDMA_%u", module_idx); break; case RAZWI_PDMA: - rtr_id = gaudi2_pdma_initiator_rtr_id[module_idx]; + hbw_rtr_id = gaudi2_pdma_initiator_hbw_rtr_id[module_idx]; + lbw_rtr_id = gaudi2_pdma_initiator_lbw_rtr_id[module_idx]; sprintf(initiator_name, "PDMA_%u", module_idx); break; case RAZWI_NIC: - rtr_id = gaudi2_nic_initiator_rtr_id[module_idx]; + hbw_rtr_id = gaudi2_nic_initiator_hbw_rtr_id[module_idx]; + lbw_rtr_id = gaudi2_nic_initiator_lbw_rtr_id[module_idx]; sprintf(initiator_name, "NIC_%u", module_idx); break; case RAZWI_DEC: - rtr_id = gaudi2_dec_initiator_rtr_id[module_idx]; + hbw_rtr_id = gaudi2_dec_initiator_hbw_rtr_id[module_idx]; + lbw_rtr_id = gaudi2_dec_initiator_lbw_rtr_id[module_idx]; sprintf(initiator_name, "DEC_%u", module_idx); break; case RAZWI_ROT: - rtr_id = gaudi2_rot_initiator_rtr_id[module_idx]; + hbw_rtr_id = gaudi2_rot_initiator_hbw_rtr_id[module_idx]; + lbw_rtr_id = gaudi2_rot_initiator_lbw_rtr_id[module_idx]; sprintf(initiator_name, "ROT_%u", module_idx); break; default: @@ -7258,22 +7298,25 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev, /* Find router mstr_if register base */ if (via_sft) { - rtr_mstr_if_base_addr = mmSFT0_HBW_RTR_IF0_RTR_CTRL_BASE + + hbw_rtr_mstr_if_base_addr = mmSFT0_HBW_RTR_IF0_RTR_CTRL_BASE + dcore_id * SFT_DCORE_OFFSET + sft_id * SFT_IF_OFFSET + RTR_MSTR_IF_OFFSET; + lbw_rtr_mstr_if_base_addr = hbw_rtr_mstr_if_base_addr; } else { - dcore_id = rtr_id / NUM_OF_RTR_PER_DCORE; - dcore_rtr_id = rtr_id % NUM_OF_RTR_PER_DCORE; - rtr_mstr_if_base_addr = mmDCORE0_RTR0_CTRL_BASE + + dcore_id = hbw_rtr_id / NUM_OF_RTR_PER_DCORE; + dcore_rtr_id = hbw_rtr_id % NUM_OF_RTR_PER_DCORE; + hbw_rtr_mstr_if_base_addr = mmDCORE0_RTR0_CTRL_BASE + dcore_id * DCORE_OFFSET + dcore_rtr_id * DCORE_RTR_OFFSET + RTR_MSTR_IF_OFFSET; + lbw_rtr_mstr_if_base_addr = hbw_rtr_mstr_if_base_addr + + (((s32)lbw_rtr_id - hbw_rtr_id) * DCORE_RTR_OFFSET); } /* Find out event cause by reading "RAZWI_HAPPENED" registers */ - hbw_shrd_aw = RREG32(rtr_mstr_if_base_addr + RR_SHRD_HBW_AW_RAZWI_HAPPENED); - hbw_shrd_ar = RREG32(rtr_mstr_if_base_addr + RR_SHRD_HBW_AR_RAZWI_HAPPENED); + hbw_shrd_aw = RREG32(hbw_rtr_mstr_if_base_addr + RR_SHRD_HBW_AW_RAZWI_HAPPENED); + hbw_shrd_ar = RREG32(hbw_rtr_mstr_if_base_addr + RR_SHRD_HBW_AR_RAZWI_HAPPENED); if (via_sft) { /* SFT has separate MSTR_IF for LBW, only there we can @@ -7287,41 +7330,41 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev, lbw_shrd_aw = RREG32(base + RR_SHRD_LBW_AW_RAZWI_HAPPENED); lbw_shrd_ar = RREG32(base + RR_SHRD_LBW_AR_RAZWI_HAPPENED); } else { - lbw_shrd_aw = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI_HAPPENED); - lbw_shrd_ar = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI_HAPPENED); + lbw_shrd_aw = RREG32(lbw_rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI_HAPPENED); + lbw_shrd_ar = RREG32(lbw_rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI_HAPPENED); } eng_id = gaudi2_razwi_calc_engine_id(hdev, module, module_idx); if (hbw_shrd_aw) { - gaudi2_razwi_rr_hbw_shared_printf_info(hdev, rtr_mstr_if_base_addr, true, + gaudi2_razwi_rr_hbw_shared_printf_info(hdev, hbw_rtr_mstr_if_base_addr, true, initiator_name, eng_id, event_mask); /* Clear event indication */ - WREG32(rtr_mstr_if_base_addr + RR_SHRD_HBW_AW_RAZWI_HAPPENED, hbw_shrd_aw); + WREG32(hbw_rtr_mstr_if_base_addr + RR_SHRD_HBW_AW_RAZWI_HAPPENED, hbw_shrd_aw); } if (hbw_shrd_ar) { - gaudi2_razwi_rr_hbw_shared_printf_info(hdev, rtr_mstr_if_base_addr, false, + gaudi2_razwi_rr_hbw_shared_printf_info(hdev, hbw_rtr_mstr_if_base_addr, false, initiator_name, eng_id, event_mask); /* Clear event indication */ - WREG32(rtr_mstr_if_base_addr + RR_SHRD_HBW_AR_RAZWI_HAPPENED, hbw_shrd_ar); + WREG32(hbw_rtr_mstr_if_base_addr + RR_SHRD_HBW_AR_RAZWI_HAPPENED, hbw_shrd_ar); } if (lbw_shrd_aw) { - gaudi2_razwi_rr_lbw_shared_printf_info(hdev, rtr_mstr_if_base_addr, true, + gaudi2_razwi_rr_lbw_shared_printf_info(hdev, lbw_rtr_mstr_if_base_addr, true, initiator_name, eng_id, event_mask); /* Clear event indication */ - WREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI_HAPPENED, lbw_shrd_aw); + WREG32(lbw_rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI_HAPPENED, lbw_shrd_aw); } if (lbw_shrd_ar) { - gaudi2_razwi_rr_lbw_shared_printf_info(hdev, rtr_mstr_if_base_addr, false, + gaudi2_razwi_rr_lbw_shared_printf_info(hdev, lbw_rtr_mstr_if_base_addr, false, initiator_name, eng_id, event_mask); /* Clear event indication */ - WREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI_HAPPENED, lbw_shrd_ar); + WREG32(lbw_rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI_HAPPENED, lbw_shrd_ar); } } From patchwork Sun Jan 15 09:40:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oded Gabbay X-Patchwork-Id: 43822 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp664836wrn; Sun, 15 Jan 2023 01:49:00 -0800 (PST) X-Google-Smtp-Source: AMrXdXuujRRrugUgARAHU/IcOPXxvXwY7LSA/FAUcCbGkK552l3VPAU7pOGic/rUE8Wr+Ha/GnqZ X-Received: by 2002:a05:6402:1f0f:b0:49e:689:f003 with SMTP id b15-20020a0564021f0f00b0049e0689f003mr2151763edb.10.1673776140583; Sun, 15 Jan 2023 01:49:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673776140; cv=none; d=google.com; s=arc-20160816; b=kK4UxlJngYIy2Ph+QX6/t00aj9uV9b9vihAL/2NSy9yv323b5Z9ejbgh+02rAjdzxP jGXUWuL1Sq+MGYC+FLo017OMVf98NJuMJGKmQ2ScxSLDXw4hf4lxGsPjRptaIpJviBGe 6EH4W+ebUqiaEf9yK1zipPD2xVFtsrawAxgnPccexCvgJO148whXzN+TxhZ7eXsELGy0 TLrLa7+pOUGAdPgJEtyU6I7KdNW9Qm5rZ3xYn1j6FrxfPdT6fVJwe5fUYzz6iPDJXLzy gXvxOOmdSK0x8ALvHmPqpQ+wfiQEZWkZ8T+J4hnXm1NVFT+mmXKlcnvBIWYitwrGc1cG c6dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=okh6+w1C5dv7Vtf3eOUBvgFcSNqrolth90G5c/jH2dM=; b=x+fGPzJV4W/pLK7y1I/aOhpPlRlgZYOVWzwKMsWe1n98HkqyWpEglyX6kEO68HqklW 3zcTURVbmkuXJjVVCmhVHJ4hNQ2zBNy+uyf0rTbM3Ab2TdCo7KDjdZMf4RbRp19YY+MJ gYWZoaeIq5nIWQZnMgM06a+L/tUEq/lejjC+dmMrkF/+5er/T1LENw7TV94SM7lRecwA lk2TEXX+En9NC9ayxxcthv7hOw8Ca6RqSsLxTRxp4eRsqBFQF6UR/EEvKQ9D/i2jk3rV VkQVRZ8ZNlPR3GEqqMCC75+000sTV5+FP7VBMuz2IL7UrOPXIbmyzpdgLXgELJm6CzGN gpOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Rn2bghSj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t9-20020a50d709000000b0047f74750e5fsi3751660edi.78.2023.01.15.01.48.36; Sun, 15 Jan 2023 01:49:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Rn2bghSj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230017AbjAOJkr (ORCPT + 99 others); Sun, 15 Jan 2023 04:40:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42802 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230152AbjAOJkj (ORCPT ); Sun, 15 Jan 2023 04:40:39 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E456C167 for ; Sun, 15 Jan 2023 01:40:38 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 23E0060C6E for ; Sun, 15 Jan 2023 09:40:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E198C433EF; Sun, 15 Jan 2023 09:40:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673775637; bh=tQzNZbpetX3J4fWHQu3mEiBGxmL7g/pgTL4aro/R18I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rn2bghSjkINX34iAROb/oXoYK7IUV6bthpcwdJoLhvwpU7T2yRbPOeTFBYZzGJal5 kKeqXEFWGUCy+ikCW3EV9cvdVitQn/CHAgV2+cALF6EfSX531tb1CIjyfhYsRBwIZN E7ELZU88POwQ7bX3DahQ4vZqknh0RjnlDcREm6DCqpYRmmOMEJmjEWCtPfvKVn/v3c 5pSj2votBNpoy/MHZa8SW/L4ddkuLax5GWkpSu3R33MT2TdQAgTRq8vYteEpmQOX84 D9tqVhzjJ4Rx+SwnKgUgpOYLc1oZPQHDqHoOVTAF/Hmkd8FhEFn/d2YYrRM+7ns4eq n+o05NvkXW3gQ== From: Oded Gabbay To: linux-kernel@vger.kernel.org Cc: Dani Liberman Subject: [PATCH 5/5] habanalabe/gaudi2: add cfg base when displaying razwi addresses Date: Sun, 15 Jan 2023 11:40:26 +0200 Message-Id: <20230115094026.289766-5-ogabbay@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230115094026.289766-1-ogabbay@kernel.org> References: <20230115094026.289766-1-ogabbay@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755081490540892909?= X-GMAIL-MSGID: =?utf-8?q?1755081490540892909?= From: Dani Liberman Captured addresses of low b/w razwi information contains only the offset from the cfg base. To make it more user readable, add the cfg base to it. Signed-off-by: Dani Liberman Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay --- drivers/accel/habanalabs/gaudi2/gaudi2.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2.c b/drivers/accel/habanalabs/gaudi2/gaudi2.c index 32a824766f24..8c0cbd3b4a0c 100644 --- a/drivers/accel/habanalabs/gaudi2/gaudi2.c +++ b/drivers/accel/habanalabs/gaudi2/gaudi2.c @@ -7137,23 +7137,24 @@ static void gaudi2_razwi_rr_lbw_shared_printf_info(struct hl_device *hdev, u64 rtr_mstr_if_base_addr, bool is_write, char *name, enum gaudi2_engine_id id, u64 *event_mask) { - u32 razwi_addr, razwi_xy; + u64 razwi_addr = CFG_BASE; + u32 razwi_xy; u16 eng_id = id; u8 rd_wr_flag; if (is_write) { - razwi_addr = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI); + razwi_addr += RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI); razwi_xy = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AW_RAZWI_XY); rd_wr_flag = HL_RAZWI_WRITE; } else { - razwi_addr = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI); + razwi_addr += RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI); razwi_xy = RREG32(rtr_mstr_if_base_addr + RR_SHRD_LBW_AR_RAZWI_XY); rd_wr_flag = HL_RAZWI_READ; } hl_handle_razwi(hdev, razwi_addr, &eng_id, 1, rd_wr_flag | HL_RAZWI_LBW, event_mask); dev_err_ratelimited(hdev->dev, - "%s-RAZWI SHARED RR LBW %s error, mstr_if 0x%llx, captured address 0x%x Initiator coordinates 0x%x\n", + "%s-RAZWI SHARED RR LBW %s error, mstr_if 0x%llx, captured address 0x%llX Initiator coordinates 0x%x\n", name, is_write ? "WR" : "RD", rtr_mstr_if_base_addr, razwi_addr, razwi_xy); } @@ -7665,19 +7666,19 @@ static void gaudi2_razwi_unmapped_addr_lbw_printf_info(struct hl_device *hdev, u u64 *event_mask) { u16 engines[HL_RAZWI_MAX_NUM_OF_ENGINES_PER_RTR], num_of_eng; - u32 razwi_addr; + u64 razwi_addr = CFG_BASE; u8 rd_wr_flag; num_of_eng = gaudi2_get_razwi_initiators(rtr_id, &engines[0]); if (is_write) { - razwi_addr = RREG32(rtr_ctrl_base_addr + DEC_RAZWI_LBW_AW_ADDR); + razwi_addr += RREG32(rtr_ctrl_base_addr + DEC_RAZWI_LBW_AW_ADDR); rd_wr_flag = HL_RAZWI_WRITE; /* Clear set indication */ WREG32(rtr_ctrl_base_addr + DEC_RAZWI_LBW_AW_SET, 0x1); } else { - razwi_addr = RREG32(rtr_ctrl_base_addr + DEC_RAZWI_LBW_AR_ADDR); + razwi_addr += RREG32(rtr_ctrl_base_addr + DEC_RAZWI_LBW_AR_ADDR); rd_wr_flag = HL_RAZWI_READ; /* Clear set indication */ @@ -7687,7 +7688,7 @@ static void gaudi2_razwi_unmapped_addr_lbw_printf_info(struct hl_device *hdev, u hl_handle_razwi(hdev, razwi_addr, &engines[0], num_of_eng, rd_wr_flag | HL_RAZWI_LBW, event_mask); dev_err_ratelimited(hdev->dev, - "RAZWI PSOC unmapped LBW %s error, rtr id %u, address %#x\n", + "RAZWI PSOC unmapped LBW %s error, rtr id %u, address 0x%llX\n", is_write ? "WR" : "RD", rtr_id, razwi_addr); dev_err_ratelimited(hdev->dev,