Commit cb00bca4 authored by Tadeusz Struk's avatar Tadeusz Struk Committed by Herbert Xu

crypto: qat - explicitly stop all VFs first

When stopping devices it is not enought to loop backwards.
We need to explicitly stop all VFs first.
Signed-off-by: default avatarTadeusz Struk <tadeusz.struk@intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 4218ebe8
...@@ -275,7 +275,26 @@ static int adf_ctl_stop_devices(uint32_t id) ...@@ -275,7 +275,26 @@ static int adf_ctl_stop_devices(uint32_t id)
struct adf_accel_dev *accel_dev; struct adf_accel_dev *accel_dev;
int ret = 0; int ret = 0;
list_for_each_entry_reverse(accel_dev, adf_devmgr_get_head(), list) { list_for_each_entry(accel_dev, adf_devmgr_get_head(), list) {
if (id == accel_dev->accel_id || id == ADF_CFG_ALL_DEVICES) {
if (!adf_dev_started(accel_dev))
continue;
/* First stop all VFs */
if (!accel_dev->is_vf)
continue;
if (adf_dev_stop(accel_dev)) {
dev_err(&GET_DEV(accel_dev),
"Failed to stop qat_dev%d\n", id);
ret = -EFAULT;
} else {
adf_dev_shutdown(accel_dev);
}
}
}
list_for_each_entry(accel_dev, adf_devmgr_get_head(), list) {
if (id == accel_dev->accel_id || id == ADF_CFG_ALL_DEVICES) { if (id == accel_dev->accel_id || id == ADF_CFG_ALL_DEVICES) {
if (!adf_dev_started(accel_dev)) if (!adf_dev_started(accel_dev))
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment