crypto: qat - complete all the init steps before service notification
authorMarco Chiappero <marco.chiappero@intel.com>
Thu, 12 Aug 2021 20:21:24 +0000 (21:21 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 21 Aug 2021 07:44:56 +0000 (15:44 +0800)
Make sure all the steps in the initialization sequence are complete
before any completion event notification.

Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
Co-developed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/qat/qat_common/adf_init.c

index 346dcb8..52ce1fd 100644 (file)
@@ -110,6 +110,11 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
        set_bit(ADF_STATUS_IRQ_ALLOCATED, &accel_dev->status);
 
        hw_data->enable_ints(accel_dev);
+       hw_data->enable_error_correction(accel_dev);
+
+       ret = hw_data->enable_vf2pf_comms(accel_dev);
+       if (ret)
+               return ret;
 
        /*
         * Subservice initialisation is divided into two stages: init and start.
@@ -127,10 +132,7 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
                set_bit(accel_dev->accel_id, service->init_status);
        }
 
-       hw_data->enable_error_correction(accel_dev);
-       ret = hw_data->enable_vf2pf_comms(accel_dev);
-
-       return ret;
+       return 0;
 }
 EXPORT_SYMBOL_GPL(adf_dev_init);