aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
authorTadeusz Struk <tadeusz.struk@intel.com>2015-10-16 14:40:56 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2015-10-20 10:10:47 -0400
commit4a4b0bad0653a0dce876987f7487b2c5e3ecb05f (patch)
tree99836d7af294e73f59ce94a8233a29210179282f /drivers/crypto
parentf02b7d0c7b433b9a8175ac9027391272877a43ce (diff)
crypto: qat - fix crypto_get_instance_node function
qat_crypto_get_instance_node function needs to handle situation when the first dev in the list is not started. Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/qat/qat_common/qat_crypto.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/crypto/qat/qat_common/qat_crypto.c b/drivers/crypto/qat/qat_common/qat_crypto.c
index 25db27c7bebb..9cab15497f04 100644
--- a/drivers/crypto/qat/qat_common/qat_crypto.c
+++ b/drivers/crypto/qat/qat_common/qat_crypto.c
@@ -118,11 +118,23 @@ struct qat_crypto_instance *qat_crypto_get_instance_node(int node)
118 } 118 }
119 } 119 }
120 } 120 }
121 if (!accel_dev) { 121 if (!accel_dev)
122 pr_err("QAT: Could not find a device on node %d\n", node); 122 pr_info("QAT: Could not find a device on node %d\n", node);
123 accel_dev = adf_devmgr_get_first(); 123
124 /* Get any started device */
125 list_for_each(itr, adf_devmgr_get_head()) {
126 struct adf_accel_dev *tmp_dev;
127
128 tmp_dev = list_entry(itr, struct adf_accel_dev, list);
129
130 if (adf_dev_started(tmp_dev) &&
131 !list_empty(&tmp_dev->crypto_list)) {
132 accel_dev = tmp_dev;
133 break;
134 }
124 } 135 }
125 if (!accel_dev || !adf_dev_started(accel_dev)) 136
137 if (!accel_dev)
126 return NULL; 138 return NULL;
127 139
128 best = ~0; 140 best = ~0;