diff options
Diffstat (limited to 'drivers/crypto/qat/qat_common/adf_init.c')
| -rw-r--r-- | drivers/crypto/qat/qat_common/adf_init.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/crypto/qat/qat_common/adf_init.c b/drivers/crypto/qat/qat_common/adf_init.c index 33a9a46d6949..cef7bb8ec007 100644 --- a/drivers/crypto/qat/qat_common/adf_init.c +++ b/drivers/crypto/qat/qat_common/adf_init.c @@ -209,6 +209,14 @@ int adf_dev_start(struct adf_accel_dev *accel_dev)  		clear_bit(ADF_STATUS_STARTED, &accel_dev->status);  		return -EFAULT;  	} + +	if (!list_empty(&accel_dev->compression_list) && qat_comp_algs_register()) { +		dev_err(&GET_DEV(accel_dev), +			"Failed to register compression algs\n"); +		set_bit(ADF_STATUS_STARTING, &accel_dev->status); +		clear_bit(ADF_STATUS_STARTED, &accel_dev->status); +		return -EFAULT; +	}  	return 0;  }  EXPORT_SYMBOL_GPL(adf_dev_start); @@ -242,6 +250,9 @@ void adf_dev_stop(struct adf_accel_dev *accel_dev)  		qat_asym_algs_unregister();  	} +	if (!list_empty(&accel_dev->compression_list)) +		qat_comp_algs_unregister(); +  	list_for_each(list_itr, &service_table) {  		service = list_entry(list_itr, struct service_hndl, list);  		if (!test_bit(accel_dev->accel_id, service->start_status))  |