crypto: qat - fix bad unlock balance
authorBruce Allan <bruce.w.allan@intel.com>
Wed, 15 Oct 2014 18:33:15 +0000 (11:33 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 24 Oct 2014 14:49:37 +0000 (22:49 +0800)
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>
drivers/crypto/qat/qat_common/adf_dev_mgr.c

index ae71555c08683c7b196704f52a6245e025941fbd..4a0a829d45002673897235d4d50cf264d5014133 100644 (file)
@@ -129,12 +129,13 @@ struct adf_accel_dev *adf_devmgr_get_first(void)
  * Function returns acceleration device associated with the given pci device.
  * 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 list_head *itr;
 
+       mutex_lock(&table_lock);
        list_for_each(itr, &accel_table) {
                struct adf_accel_dev *ptr =
                                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;
                }
        }
+       mutex_unlock(&table_lock);
        return NULL;
 }
 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;
 
+       mutex_lock(&table_lock);
        list_for_each(itr, &accel_table) {
                struct adf_accel_dev *ptr =
                                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;
                }
        }
+       mutex_unlock(&table_lock);
        return NULL;
 }