Patch "crypto: qat - add sysfs_added flag for rate limiting" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    crypto: qat - add sysfs_added flag for rate limiting

to the 6.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     crypto-qat-add-sysfs_added-flag-for-rate-limiting.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 98ea4356492445865ce63b08cf692800ec45a333
Author: Damian Muszynski <damian.muszynski@xxxxxxxxx>
Date:   Tue Nov 21 18:02:23 2023 +0100

    crypto: qat - add sysfs_added flag for rate limiting
    
    [ Upstream commit d71fdd0f3c278c7f132c3a522645ebf9157edd6d ]
    
    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 <damian.muszynski@xxxxxxxxx>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
    Reviewed-by: Ahsan Atta <ahsan.atta@xxxxxxxxx>
    Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

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;
 }




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux