Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp594890rdf; Tue, 21 Nov 2023 10:37:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IEZLMLc5Fz4qLQ8SytawmBzHr1rnhxZWGOHsBhniUdq12XJLWCIWYfYoLkhFZclPqT6EI4B X-Received: by 2002:a05:620a:6190:b0:77a:2520:2793 with SMTP id or16-20020a05620a619000b0077a25202793mr13829496qkn.2.1700591861089; Tue, 21 Nov 2023 10:37:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700591861; cv=none; d=google.com; s=arc-20160816; b=hsGEf2jg9GCV7zSGCndCqC9ak7vaeM4wJjPmjZ+Q46M6iXqSMXbjg3PwAf9jMsz65q wdVvk8SUXEc6eq1eU/4NBTfOTjWV3vj3J7m6uRbP5FQjFDKVEN5cHcpMmiHYMkS79IFU mq8wRZwbBUQazDTgnWxLfnthEZP1jM552cut2GvksqrXtoAoFhO8JGaOfZZVKQ5fIK3a +O0kqFPd5PPBKhNyu4Mls9uLedaeiuKxiviZDg7218IhdeTc5Htg5K9gSd6uUq/g6MgN 4n8to+XA23Xs0A1lx/yrNnL8630zG5QWVGh3ClIT/uNVCheni1Yc5u/bEoBItRQgW7M5 s3fQ== 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=IZ9Fua0lfJZcF2RdQ4YRbTCj8zoXMP+lF7ehUudyKow=; fh=uKtpmXqHNENJQg4FKqWrY86xskcLxqzr//F31ZsyPEA=; b=Jujc5KF9D0yi03apKw1yGGloNa3syBGLHj9runn+J5Hk/GFmQ5uhunnz9fSQY9eUc4 f7YxgM9JRV6xnrVltLeRAH8r0/13LxrvedSR48GU2jj6ea7EVatGux4NhP3++ArIWOaw K091ZZmBttelVuXrBGgkw+N+j0xZ261HlACHdJN50ka47GuElrzdYCLQb2FExIMY+u2s DwoGuy9qc5eit1c1b1p9WAFz7ndf1DPL4BgMTJWblZzkRwgKrqttAJCnnrJvpeDYDDIY eyQ36qWOcEmYV67gMrllEDPKv3tAGUP/HHdd6BJH9ezHe6vFUZSWZObFw6gbuvrz3aYk ezYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="L4Hv3A/f"; spf=pass (google.com: domain of linux-crypto+bounces-228-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-228-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id cc27-20020a05622a411b00b0042377597590si572154qtb.379.2023.11.21.10.37.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 10:37:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto+bounces-228-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="L4Hv3A/f"; spf=pass (google.com: domain of linux-crypto+bounces-228-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-crypto+bounces-228-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id C1C111C209DF for ; Tue, 21 Nov 2023 18:37:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2B7327468 for ; Tue, 21 Nov 2023 18:37:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="L4Hv3A/f" X-Original-To: linux-crypto@vger.kernel.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1DC010E for ; Tue, 21 Nov 2023 09:18:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700587098; x=1732123098; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=ERuRL/m8CQew1H0KogndMWx7HFPL1zzpnSw2xKpsCyg=; b=L4Hv3A/fat/niptOsULnJFKVZBQp6eEecj8lj7K9QF+cCxZ/ljJTTafj G14xRMxROcgD1kRK3q5Rhv+GCgdqaYrV36GTxmq4/kgSqkrMwLui8lKEv 5TOtMYslRB2q4FuEPxWQTXonSKSfTSbd2LO54DPOU6jLbJ+3XTSH9/UAK 6dE1q9gXqWKYCjZk846h+oY09wMEA/HGgEB4gsY2ruMMOfqmDzl7AJara wbkvGWa/aQiYWnypkCRBFeNI5zLV9Huw+4MRuLGvVt5RwLgo+jvu0rkNB HhHO74YFxeKz4wCvsATF9O1E33st2C9O4lCg7Zb/i//ZNzAh2l/cg5WZk g==; X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="10554051" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="10554051" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 09:18:18 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10901"; a="1013974166" X-IronPort-AV: E=Sophos;i="6.04,216,1695711600"; d="scan'208";a="1013974166" Received: from r031s002_zp31l10c01.deacluster.intel.com (HELO localhost.localdomain) ([10.219.171.29]) by fmsmga006.fm.intel.com with ESMTP; 21 Nov 2023 09:18:17 -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 rate limiting Date: Tue, 21 Nov 2023 18:02:23 +0100 Message-ID: <20231121170252.8263-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_rl 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_rl 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_rl' not found for kobject '0000:6b:00.0' ... sysfs_remove_groups+0x2d/0x50 adf_sysfs_rl_rm+0x44/0x70 [intel_qat] adf_rl_stop+0x2d/0xb0 [intel_qat] adf_dev_stop+0x33/0x1d0 [intel_qat] adf_dev_down+0xf1/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: d9fb8408376e ("crypto: qat - add rate limiting feature to qat_4xxx") Signed-off-by: Damian Muszynski Reviewed-by: Giovanni Cabiddu Reviewed-by: Ahsan Atta --- drivers/crypto/intel/qat/qat_common/adf_rl.h | 1 + drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/crypto/intel/qat/qat_common/adf_rl.h b/drivers/crypto/intel/qat/qat_common/adf_rl.h index eb5a330f8543..269c6656fb90 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_rl.h +++ b/drivers/crypto/intel/qat/qat_common/adf_rl.h @@ -79,6 +79,7 @@ struct adf_rl_interface_data { struct adf_rl_sla_input_data input; enum adf_base_services cap_rem_srv; struct rw_semaphore lock; + bool sysfs_added; }; struct adf_rl_hw_data { diff --git a/drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c b/drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c index abf9c52474ec..bedb514d4e30 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c +++ b/drivers/crypto/intel/qat/qat_common/adf_sysfs_rl.c @@ -441,11 +441,19 @@ int adf_sysfs_rl_add(struct adf_accel_dev *accel_dev) data->cap_rem_srv = ADF_SVC_NONE; data->input.srv = ADF_SVC_NONE; + data->sysfs_added = true; return ret; } void adf_sysfs_rl_rm(struct adf_accel_dev *accel_dev) { + struct adf_rl_interface_data *data; + + data = &GET_RL_STRUCT(accel_dev); + if (!data->sysfs_added) + return; + device_remove_group(&GET_DEV(accel_dev), &qat_rl_group); + data->sysfs_added = false; } base-commit: f36285cc1e99472bb4c6741981594a5934ad4c4e -- 2.41.0