crypto: qat - fix bad unlock balance
The mutex table_lock is unlocked in two functions without first being locked. Fix the functions to properly protect the accel_table with the table_lock. Also, fix a spelling error in one of the function's header comment. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
41a84982a1
commit
8c4cef464b
|
@ -129,12 +129,13 @@ struct adf_accel_dev *adf_devmgr_get_first(void)
|
||||||
* Function returns acceleration device associated with the given pci device.
|
* Function returns acceleration device associated with the given pci device.
|
||||||
* To be used by QAT device specific drivers.
|
* To be used by QAT device specific drivers.
|
||||||
*
|
*
|
||||||
* Return: pinter to accel_dev or NULL if not found.
|
* Return: pointer to accel_dev or NULL if not found.
|
||||||
*/
|
*/
|
||||||
struct adf_accel_dev *adf_devmgr_pci_to_accel_dev(struct pci_dev *pci_dev)
|
struct adf_accel_dev *adf_devmgr_pci_to_accel_dev(struct pci_dev *pci_dev)
|
||||||
{
|
{
|
||||||
struct list_head *itr;
|
struct list_head *itr;
|
||||||
|
|
||||||
|
mutex_lock(&table_lock);
|
||||||
list_for_each(itr, &accel_table) {
|
list_for_each(itr, &accel_table) {
|
||||||
struct adf_accel_dev *ptr =
|
struct adf_accel_dev *ptr =
|
||||||
list_entry(itr, struct adf_accel_dev, list);
|
list_entry(itr, struct adf_accel_dev, list);
|
||||||
|
@ -144,6 +145,7 @@ struct adf_accel_dev *adf_devmgr_pci_to_accel_dev(struct pci_dev *pci_dev)
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mutex_unlock(&table_lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(adf_devmgr_pci_to_accel_dev);
|
EXPORT_SYMBOL_GPL(adf_devmgr_pci_to_accel_dev);
|
||||||
|
@ -152,6 +154,7 @@ struct adf_accel_dev *adf_devmgr_get_dev_by_id(uint32_t id)
|
||||||
{
|
{
|
||||||
struct list_head *itr;
|
struct list_head *itr;
|
||||||
|
|
||||||
|
mutex_lock(&table_lock);
|
||||||
list_for_each(itr, &accel_table) {
|
list_for_each(itr, &accel_table) {
|
||||||
struct adf_accel_dev *ptr =
|
struct adf_accel_dev *ptr =
|
||||||
list_entry(itr, struct adf_accel_dev, list);
|
list_entry(itr, struct adf_accel_dev, list);
|
||||||
|
@ -161,6 +164,7 @@ struct adf_accel_dev *adf_devmgr_get_dev_by_id(uint32_t id)
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mutex_unlock(&table_lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue