From patchwork Fri Mar 3 21:37:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fenghua Yu X-Patchwork-Id: 64083 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp640242wrd; Fri, 3 Mar 2023 13:41:46 -0800 (PST) X-Google-Smtp-Source: AK7set/q8qTvnA6WhIeac0KAOK9TsoRTh381CvKYIsU2uXvTs5yKPBmdxldh1jzy1rjSDchBKi7K X-Received: by 2002:a05:6a20:6909:b0:cc:ca9:4fde with SMTP id q9-20020a056a20690900b000cc0ca94fdemr5686616pzj.33.1677879705875; Fri, 03 Mar 2023 13:41:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677879705; cv=none; d=google.com; s=arc-20160816; b=rNG+qJIwwXIIQRn/kFZLB2WGk1EJitmNLBYAat1khm+d4VIhVwbxfiYOz1u1JihvC6 1x0a1YRZCKpVFMFxRkIntJNqPFJeppQXhP22ekDiwr4ydDA65jc4OuL/Gc743VEtWfP4 sF7ELKDFX8cQCEsYhAGwmOGa3twzpHOIcQxMTB/h29YCys1mrSYmMqA7i1yLdf0Z7uSe d7E4mzgOybqxoaBwIsIK4EDxwsGvDJHI3wANnmW2NHwNc3oJUzs93XMWafXl+KwOKkmw gwJchiOu8dNi3LZs12jwYTT/Dw1easWdIKN2HMv/QTs1ZlFhS2m0ChiU+6z5y02uW/ri AdFg== 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=Vt0OQWRp0AGC2OpbSfZnn5myN9LlY6P53UeMdEEz2EI=; b=kV0g6T+A/JPPFAUBiM+UU4T0eK90wo9ZCSZgFpvtZHlLEYdV/GoGMsPZv++KaZYiuu u2ndVK9AlVIkcDAyxAy7snfQzl9ybtOurie/vGntTVVv+HWU79XsekI6QiMI8NKXkGWV GD3lc8I5Gphxm11EBY8lXJ7jxHwyr77Rvpvrm+zdxkOlQhJ+7FfmPVk+t56T+tkeZWGD DthJaIDXbQOdi5m8hzccb1om24UkrGvUq69wKRsNh5ZkUujoHxSmRYRGyZnJgXl7Sdbh X2WnfNVV1ImiIqQtwzQZXjmZYh++finLrC6Mq3jVn7TwNzCFoHR/3IlPk7ucHXlDrQ4K /GuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=DpBPqUWI; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w5-20020a63c105000000b00502f10fa6e0si2905435pgf.819.2023.03.03.13.41.33; Fri, 03 Mar 2023 13:41: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=@intel.com header.s=Intel header.b=DpBPqUWI; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231912AbjCCVhu (ORCPT + 99 others); Fri, 3 Mar 2023 16:37:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231892AbjCCVhr (ORCPT ); Fri, 3 Mar 2023 16:37:47 -0500 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C74062D8A; Fri, 3 Mar 2023 13:37:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677879466; x=1709415466; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nFDhmcDkq7sy9mDQLCQjRicWl0xsl4vCeIKcGrjykb0=; b=DpBPqUWIYootO1eDPwdK0kP6++ixJtiUlqV9ESfJtx0bH17dQbj4yCCR 00ovAJmFa6mRR+fsg5J9sUKevdVsfSDopdeY+csLhpe0ZZh0O7zDhgOrd QZoBipt9KwOUY5KV6ydu0hQIzyXiTVNU3nOLLbLlJK04IT4TwXqOo1GxA ZQ0M/IePaTwCJDAknNoc3vlCP2Q3Ljk76gfvbauWiUEGJXyyRPU22I0u2 SO8LAHi44UhScw/RCqhTEXru7UK4ahgiTpZKc8MPf0pYCqbcGbwgNw5Es FdeQYuXsBOg35rrm2aD80poeNrUHE19bqplRTYjNVoXAqZXsELP5AgHGF g==; X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="332643551" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="332643551" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2023 13:37:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="818650492" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="818650492" Received: from fyu1.sc.intel.com ([172.25.103.126]) by fmsmga001.fm.intel.com with ESMTP; 03 Mar 2023 13:37:45 -0800 From: Fenghua Yu To: "Vinod Koul" , "Dave Jiang" Cc: dmaengine@vger.kernel.org, "linux-kernel" , Fenghua Yu Subject: [PATCH v2 1/2] dmaengine: idxd: reformat swerror output to standard Linux bitmap output Date: Fri, 3 Mar 2023 13:37:31 -0800 Message-Id: <20230303213732.3357494-2-fenghua.yu@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230303213732.3357494-1-fenghua.yu@intel.com> References: <20230303213732.3357494-1-fenghua.yu@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE 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?1759384390339651342?= X-GMAIL-MSGID: =?utf-8?q?1759384390339651342?= From: Dave Jiang SWERROR register is 4 64bit wide registers. Currently the sysfs attribute just outputs 4 64bit hex integers. Convert to output with %*pb format specifier. Signed-off-by: Dave Jiang Co-developed-by: Fenghua Yu Signed-off-by: Fenghua Yu --- v2: - Fix a typo in commit message (Vinod) drivers/dma/idxd/idxd.h | 1 + drivers/dma/idxd/init.c | 2 +- drivers/dma/idxd/sysfs.c | 10 ++++------ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/dma/idxd/idxd.h b/drivers/dma/idxd/idxd.h index 7ced8d283d98..ad7a1e8a0e1c 100644 --- a/drivers/dma/idxd/idxd.h +++ b/drivers/dma/idxd/idxd.h @@ -598,6 +598,7 @@ int idxd_register_driver(void); void idxd_unregister_driver(void); void idxd_wqs_quiesce(struct idxd_device *idxd); bool idxd_queue_int_handle_resubmit(struct idxd_desc *desc); +void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count); /* device interrupt control */ irqreturn_t idxd_misc_thread(int vec, void *data); diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index 640d3048368e..68d1c7fc9112 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -389,7 +389,7 @@ static void idxd_read_table_offsets(struct idxd_device *idxd) dev_dbg(dev, "IDXD Perfmon Offset: %#x\n", idxd->perfmon_offset); } -static void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count) +void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count) { int i, j, nr; diff --git a/drivers/dma/idxd/sysfs.c b/drivers/dma/idxd/sysfs.c index 18cd8151dee0..927c9d645121 100644 --- a/drivers/dma/idxd/sysfs.c +++ b/drivers/dma/idxd/sysfs.c @@ -1452,15 +1452,13 @@ static ssize_t errors_show(struct device *dev, struct device_attribute *attr, char *buf) { struct idxd_device *idxd = confdev_to_idxd(dev); - int i, out = 0; + DECLARE_BITMAP(swerr_bmap, 256); + bitmap_zero(swerr_bmap, 256); spin_lock(&idxd->dev_lock); - for (i = 0; i < 4; i++) - out += sysfs_emit_at(buf, out, "%#018llx ", idxd->sw_err.bits[i]); + multi_u64_to_bmap(swerr_bmap, &idxd->sw_err.bits[0], 4); spin_unlock(&idxd->dev_lock); - out--; - out += sysfs_emit_at(buf, out, "\n"); - return out; + return sysfs_emit(buf, "%*pb\n", 256, swerr_bmap); } static DEVICE_ATTR_RO(errors); From patchwork Fri Mar 3 21:37:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fenghua Yu X-Patchwork-Id: 64082 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp640162wrd; Fri, 3 Mar 2023 13:41:32 -0800 (PST) X-Google-Smtp-Source: AK7set85Oq0tfTcHKV1yy3fvuBrvnalj7uysLz7UvrIkSm2H/dP2ETbRPBexRKZnOka5CVQI5wL1 X-Received: by 2002:a17:902:ed49:b0:19c:ac9d:f682 with SMTP id y9-20020a170902ed4900b0019cac9df682mr3052909plb.25.1677879692602; Fri, 03 Mar 2023 13:41:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677879692; cv=none; d=google.com; s=arc-20160816; b=R6P482zxqT7NPa+Tadh/nIywH8IHL/DLyKdtTQDt1OLklI/1cr8gTM/tA+YOaODTX8 tUGiLHmSmh48hs/wpYi8a0XRn2+rLgWwFcX+CNQaQgqcsXK3auSpHLAFWzFdsKlLUUxm u+Ddrie8q3sIg/jb2RRUcabUSWRqP5RQmhjjVXn96yImuJ1iNFL0ZAUxdKhKj25wnAUp DnozrfmMQqf41es6N1NNV9Uik5cGuCilUj/wSRqDrmnc2fWXTVd9i6DROhbkhKRIrj1a crSsp1DeNk8lmpA36WL95O2jY/+A7euyivToSEEeAjZIhLkPcDjP09hRJBElpCN89Kfi Dv9Q== 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=TOWFSM4ASskHu7WJXCdYaSh9tA04NupwRkugx2XthVk=; b=eog61RjZZ+5XQRTMB/mqOO+giWz1emPIM7PxLyO94d0LzvOoBu9M5ZxSJ19pU148nl Odx49rt9z1WaRVoTUIBz5l/uw13O6LgmqBK5B/l0e6ptqC/idfNQaYW2MB2VkjDW0y/6 VTusLq7s4BQKEG5VBjcOi7QCFo/a7MHua0S9QjxJ1OGIbBkgpyq9KgKk4YBdMYMzf5TN 1HZJHetOhoV9sW/1Wwo73aWZLhJwpBbmOBmLseUOo/4+BSudwkeIuTIWnqu2er/8E/qT T41ma5Gf3f5PPa421CRxGsNsPUavviUz7kcL4eHa9dXMM8YfLJHupm+TYNOmirStgMWX 34Gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=EsqhW2kv; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d1-20020a170903230100b0019a9074bb11si3548229plh.371.2023.03.03.13.41.20; Fri, 03 Mar 2023 13:41:32 -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=@intel.com header.s=Intel header.b=EsqhW2kv; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231922AbjCCVhw (ORCPT + 99 others); Fri, 3 Mar 2023 16:37:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231895AbjCCVhr (ORCPT ); Fri, 3 Mar 2023 16:37:47 -0500 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD9B662D8C; Fri, 3 Mar 2023 13:37:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677879466; x=1709415466; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=e3uMSc7vnp0UG11z9FHv+RYvjjoY2I0CYOVB3hSp2Oo=; b=EsqhW2kvNUcA8f0D3uN1tuSLUfA4/RLCLOftrCHzbD5Spxq8lH08gXv2 v/MlpP5SqPcEyVWnhsmOlQyMO4FH/U3Bq4NagVLzLg7rrNVQvPwH8Rf0H zGR+ohy2N4Vag/sLmdGrJNHKqwU9/+Z0zBKvjSMPkgrNJr38p6/q3txqg 5bzh4YDigZUO5cqpn4lPJADwKaXstnvWNr5tm4xETg4/bPjfgG+4cjI1L PkXrxCWJpHx2ML5IOzCcWsh55PM2aOdl8Dijokxy3bu0Tu706KsSi9lfa Sszr+mRaggBdlyqpaeank2wjUNLkecFecKCU6CR86InHLfa97HSGuELEo Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="332643553" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="332643553" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2023 13:37:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="818650495" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="818650495" Received: from fyu1.sc.intel.com ([172.25.103.126]) by fmsmga001.fm.intel.com with ESMTP; 03 Mar 2023 13:37:45 -0800 From: Fenghua Yu To: "Vinod Koul" , "Dave Jiang" Cc: dmaengine@vger.kernel.org, "linux-kernel" , Fenghua Yu Subject: [PATCH v2 2/2] dmaengine: idxd: expose IAA CAP register via sysfs knob Date: Fri, 3 Mar 2023 13:37:32 -0800 Message-Id: <20230303213732.3357494-3-fenghua.yu@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230303213732.3357494-1-fenghua.yu@intel.com> References: <20230303213732.3357494-1-fenghua.yu@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE 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?1759384376525217231?= X-GMAIL-MSGID: =?utf-8?q?1759384376525217231?= From: Dave Jiang Add IAA (IAX) capability mask sysfs attribute to expose to applications. The mask provides application knowledge of what capabilities this IAA device supports. This mask is available for IAA 2.0 device or later. Signed-off-by: Dave Jiang Co-developed-by: Fenghua Yu Signed-off-by: Fenghua Yu --- .../ABI/stable/sysfs-driver-dma-idxd | 8 +++++++ drivers/dma/idxd/idxd.h | 1 + drivers/dma/idxd/init.c | 4 ++++ drivers/dma/idxd/registers.h | 21 ++++++++++++++++ drivers/dma/idxd/sysfs.c | 24 +++++++++++++++++++ 5 files changed, 58 insertions(+) diff --git a/Documentation/ABI/stable/sysfs-driver-dma-idxd b/Documentation/ABI/stable/sysfs-driver-dma-idxd index 3becc9a82bdf..d5e3dd3d8434 100644 --- a/Documentation/ABI/stable/sysfs-driver-dma-idxd +++ b/Documentation/ABI/stable/sysfs-driver-dma-idxd @@ -136,6 +136,14 @@ Description: The last executed device administrative command's status/error. Also last configuration error overloaded. Writing to it will clear the status. +What: /sys/bus/dsa/devices/dsa/iaa_cap +Date: Sept 14, 2022 +KernelVersion: 6.0.0 +Contact: dmaengine@vger.kernel.org +Description: IAA (IAX) capability mask. Exported to user space for application + consumption. This attribute should only be visible on IAA devices + that are version 2 or later. + What: /sys/bus/dsa/devices/wq./block_on_fault Date: Oct 27, 2020 KernelVersion: 5.11.0 diff --git a/drivers/dma/idxd/idxd.h b/drivers/dma/idxd/idxd.h index ad7a1e8a0e1c..eca2c9d76db6 100644 --- a/drivers/dma/idxd/idxd.h +++ b/drivers/dma/idxd/idxd.h @@ -232,6 +232,7 @@ struct idxd_hw { union engine_cap_reg engine_cap; struct opcap opcap; u32 cmd_cap; + union iaa_cap_reg iaa_cap; }; enum idxd_device_state { diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index 68d1c7fc9112..a408fc91144d 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -461,6 +461,10 @@ static void idxd_read_caps(struct idxd_device *idxd) dev_dbg(dev, "opcap[%d]: %#llx\n", i, idxd->hw.opcap.bits[i]); } multi_u64_to_bmap(idxd->opcap_bmap, &idxd->hw.opcap.bits[0], 4); + + /* read iaa cap */ + if (idxd->data->type == IDXD_TYPE_IAX && idxd->hw.version >= DEVICE_VERSION_2) + idxd->hw.iaa_cap.bits = ioread64(idxd->reg_base + IDXD_IAACAP_OFFSET); } static struct idxd_device *idxd_alloc(struct pci_dev *pdev, struct idxd_driver_data *data) diff --git a/drivers/dma/idxd/registers.h b/drivers/dma/idxd/registers.h index fe3b8d04f9db..338289a66f00 100644 --- a/drivers/dma/idxd/registers.h +++ b/drivers/dma/idxd/registers.h @@ -276,6 +276,27 @@ union sw_err_reg { u64 bits[4]; } __packed; +union iaa_cap_reg { + struct { + u64 dec_aecs_format_ver:1; + u64 drop_init_bits:1; + u64 chaining:1; + u64 force_array_output_mod:1; + u64 load_part_aecs:1; + u64 comp_early_abort:1; + u64 nested_comp:1; + u64 diction_comp:1; + u64 header_gen:1; + u64 crypto_gcm:1; + u64 crypto_cfb:1; + u64 crypto_xts:1; + u64 rsvd:52; + }; + u64 bits; +} __packed; + +#define IDXD_IAACAP_OFFSET 0x180 + union msix_perm { struct { u32 rsvd:2; diff --git a/drivers/dma/idxd/sysfs.c b/drivers/dma/idxd/sysfs.c index 927c9d645121..2eba8cab25a1 100644 --- a/drivers/dma/idxd/sysfs.c +++ b/drivers/dma/idxd/sysfs.c @@ -1561,6 +1561,18 @@ static ssize_t cmd_status_store(struct device *dev, struct device_attribute *att } static DEVICE_ATTR_RW(cmd_status); +static ssize_t iaa_cap_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct idxd_device *idxd = confdev_to_idxd(dev); + + if (idxd->hw.version < DEVICE_VERSION_2) + return -EOPNOTSUPP; + + return sysfs_emit(buf, "%#llx\n", idxd->hw.iaa_cap.bits); +} +static DEVICE_ATTR_RO(iaa_cap); + static bool idxd_device_attr_max_batch_size_invisible(struct attribute *attr, struct idxd_device *idxd) { @@ -1583,6 +1595,14 @@ static bool idxd_device_attr_read_buffers_invisible(struct attribute *attr, idxd->data->type == IDXD_TYPE_IAX; } +static bool idxd_device_attr_iaa_cap_invisible(struct attribute *attr, + struct idxd_device *idxd) +{ + return attr == &dev_attr_iaa_cap.attr && + (idxd->data->type != IDXD_TYPE_IAX || + idxd->hw.version < DEVICE_VERSION_2); +} + static umode_t idxd_device_attr_visible(struct kobject *kobj, struct attribute *attr, int n) { @@ -1595,6 +1615,9 @@ static umode_t idxd_device_attr_visible(struct kobject *kobj, if (idxd_device_attr_read_buffers_invisible(attr, idxd)) return 0; + if (idxd_device_attr_iaa_cap_invisible(attr, idxd)) + return 0; + return attr->mode; } @@ -1620,6 +1643,7 @@ static struct attribute *idxd_device_attributes[] = { &dev_attr_read_buffer_limit.attr, &dev_attr_cdev_major.attr, &dev_attr_cmd_status.attr, + &dev_attr_iaa_cap.attr, NULL, };