Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp594786rdf; Tue, 21 Nov 2023 10:37:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IHeKQagkoi0i9LU6pMBqjLNAC5Qkf0OCZxEdx/GpiW9YDBdDuigb+RyqcYeq03hExAoQiQB X-Received: by 2002:a17:906:10cc:b0:9fc:1236:beff with SMTP id v12-20020a17090610cc00b009fc1236beffmr6739927ejv.65.1700591851938; Tue, 21 Nov 2023 10:37:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700591851; cv=none; d=google.com; s=arc-20160816; b=XpmHnQlTV70eJooCClnkk0BxteVnt2fes/qfrYGJtck3o8jKNb804K6F4OKF++djFP s6PljOFMKVn6k5LxpzEy62t6fvweeaApiQSfnqyaf0+i1TZr5Y6ubXAjQCBvXbUlUPco w6KzQvC/j7rhery7MjuSxjLzXWcrlobvtBHOGwI6TCLSbESdb+yHgPSTQOco0c9UlZki PZzUrEujFAgvGVeReQM6Dh2sozCVLDZ18bBDFK5EMUQp8DnAuWHGVuwgIK6aA4Lc3SWa rF14PzBP4EXouyEm90AN3h8G35KQeUQLbKe6eIEMxKlfLId/ONt0GdMs2AywyYFBF7xF nP3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:organization:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:message-id:date :subject:cc:to:from:dkim-signature; bh=jp+B8tS45Jbi0tfsKAqVBSizwVoBWYllSeyqr06M1FU=; fh=uKtpmXqHNENJQg4FKqWrY86xskcLxqzr//F31ZsyPEA=; b=ubGK0Arnd4O9RjlavgGmKrzCkBTEzH/iGj8t2SoOFN59JwW9Izhyta+7xMiokFjuSY p9mkiwl4zSsynjHYWGLezdivSgyVRSE+Ny8Qg5j/yHhOp6njyx+pUuc3YR2sZHOmINfO Cx9ugV9G3UuzPCrNayma2ZHl6WjY3ECHtgrIWiqKzC1kKdRHu0+bgR+9w8fwSSC3dXSm PpUVhOB7Fiyucew4OAhLx5BBmLC4v6bNEv9Ym5R1X4pEdMnPYo6mWN7UmdnTjjOyhiS/ J/912HkgiTCeOfV8GciQDgRYVEdMzhO67ynEU8ISJ9XlYcoH414c7zrWe7SFqTP0Qp5F kUxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ZGpYHbMm; spf=pass (google.com: domain of linux-crypto+bounces-227-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-crypto+bounces-227-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id jr8-20020a170906a98800b009c5706905cbsi5918287ejb.906.2023.11.21.10.37.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 10:37:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto+bounces-227-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ZGpYHbMm; spf=pass (google.com: domain of linux-crypto+bounces-227-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-crypto+bounces-227-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id A5F4A1F22A05 for ; Tue, 21 Nov 2023 18:37:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 238FE51030 for ; Tue, 21 Nov 2023 18:37:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="ZGpYHbMm" X-Original-To: linux-crypto@vger.kernel.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B842412C for ; Tue, 21 Nov 2023 09:16:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700586984; x=1732122984; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=378f8ZfeWKP+BLdvDXl3gC8NgLBp3YBizx6o3f+VOg4=; b=ZGpYHbMmynsF8UuAYvO/5k9gKGdTUBNfSbwJ7AysPb60gjau8R0O0AcF t/cBYSNZheLtITjceS1fZs7O1efINEzn1eztAQM5iu3rGYyj0eCVsKABD 8aWZ8URhjCy8uIe5IFsuW9kAKCYfNSA3pgzWqkSRJplQzeS2hJ2i4QwUJ 9PdKDZfp5WCmikIqKvXYTK+Hk2xVEnKXrRbJlHVwbQorATZg5ILF3eVVp Q9ZZupfKz4uRtln1bHk9VrwPgf/ozI/k7zE9B5p2Lrc0HwW/83e3UjuOv rQzrPpWxaALi0Y3ntDlfDXcdIMRQqkP6LoxfDGS4mtkuAAUbsTWOaBeLJ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="5081530" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="5081530" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 09:16:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="940159258" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="940159258" Received: from r031s002_zp31l10c01.deacluster.intel.com (HELO localhost.localdomain) ([10.219.171.29]) by orsmga005.jf.intel.com with ESMTP; 21 Nov 2023 09:16:22 -0800 From: Damian Muszynski To: herbert@gondor.apana.org.au Cc: linux-crypto@vger.kernel.org, qat-linux@intel.com, Damian Muszynski , Giovanni Cabiddu , Ahsan Atta Subject: [PATCH] crypto: qat - add sysfs_added flag for ras Date: Tue, 21 Nov 2023 17:59:45 +0100 Message-ID: <20231121170046.8097-1-damian.muszynski@intel.com> X-Mailer: git-send-email 2.41.0 Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 Content-Transfer-Encoding: 8bit The qat_ras sysfs attribute group is registered within the adf_dev_start() function, alongside other driver components. If any of the functions preceding the group registration fails, the adf_dev_start() function returns, and the caller, to undo the operation, invokes adf_dev_stop() followed by adf_dev_shutdown(). However, the current flow lacks information about whether the registration of the qat_ras attribute group was successful or not. In cases where this condition is encountered, an error similar to the following might be reported: 4xxx 0000:6b:00.0: Starting device qat_dev0 4xxx 0000:6b:00.0: qat_dev0 started 9 acceleration engines 4xxx 0000:6b:00.0: Failed to send init message 4xxx 0000:6b:00.0: Failed to start device qat_dev0 sysfs group 'qat_ras' not found for kobject '0000:6b:00.0' ... sysfs_remove_groups+0x29/0x50 adf_sysfs_stop_ras+0x4b/0x80 [intel_qat] adf_dev_stop+0x43/0x1d0 [intel_qat] adf_dev_down+0x4b/0x150 [intel_qat] ... 4xxx 0000:6b:00.0: qat_dev0 stopped 9 acceleration engines 4xxx 0000:6b:00.0: Resetting device qat_dev0 To prevent attempting to remove attributes from a group that has not been added yet, a flag named 'sysfs_added' is introduced. This flag is set to true upon the successful registration of the attribute group. Fixes: 532d7f6bc458 ("crypto: qat - add error counters") Signed-off-by: Damian Muszynski Reviewed-by: Giovanni Cabiddu Reviewed-by: Ahsan Atta --- drivers/crypto/intel/qat/qat_common/adf_accel_devices.h | 1 + .../crypto/intel/qat/qat_common/adf_sysfs_ras_counters.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h b/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h index 4ff5729a3496..9d5fdd529a2e 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h +++ b/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h @@ -92,6 +92,7 @@ enum ras_errors { struct adf_error_counters { atomic_t counter[ADF_RAS_ERRORS]; + bool sysfs_added; bool enabled; }; diff --git a/drivers/crypto/intel/qat/qat_common/adf_sysfs_ras_counters.c b/drivers/crypto/intel/qat/qat_common/adf_sysfs_ras_counters.c index cffe2d722995..e97c67c87b3c 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_sysfs_ras_counters.c +++ b/drivers/crypto/intel/qat/qat_common/adf_sysfs_ras_counters.c @@ -99,6 +99,8 @@ void adf_sysfs_start_ras(struct adf_accel_dev *accel_dev) if (device_add_group(&GET_DEV(accel_dev), &qat_ras_group)) dev_err(&GET_DEV(accel_dev), "Failed to create qat_ras attribute group.\n"); + + accel_dev->ras_errors.sysfs_added = true; } void adf_sysfs_stop_ras(struct adf_accel_dev *accel_dev) @@ -106,7 +108,10 @@ void adf_sysfs_stop_ras(struct adf_accel_dev *accel_dev) if (!accel_dev->ras_errors.enabled) return; - device_remove_group(&GET_DEV(accel_dev), &qat_ras_group); + if (accel_dev->ras_errors.sysfs_added) { + device_remove_group(&GET_DEV(accel_dev), &qat_ras_group); + accel_dev->ras_errors.sysfs_added = false; + } ADF_RAS_ERR_CTR_CLEAR(accel_dev->ras_errors); } base-commit: f36285cc1e99472bb4c6741981594a5934ad4c4e prerequisite-patch-id: 1375fd7754ab07f7e90594b4f4893487400a7052 -- 2.41.0