Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[firefly-linux-kernel-4.4.55.git] / drivers / char / tpm / tpm_tis.c
index 1250e3323c439e612d20d6522038750b214e0263..d2a70cae76df758b8db05b0f53142e427b0f6be3 100644 (file)
@@ -76,7 +76,7 @@ enum tis_defaults {
 #define        TPM_RID(l)                      (0x0F04 | ((l) << 12))
 
 static LIST_HEAD(tis_chips);
-static DEFINE_SPINLOCK(tis_lock);
+static DEFINE_MUTEX(tis_lock);
 
 #if defined(CONFIG_PNP) && defined(CONFIG_ACPI)
 static int is_itpm(struct pnp_dev *dev)
@@ -692,9 +692,9 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
        }
 
        INIT_LIST_HEAD(&chip->vendor.list);
-       spin_lock(&tis_lock);
+       mutex_lock(&tis_lock);
        list_add(&chip->vendor.list, &tis_chips);
-       spin_unlock(&tis_lock);
+       mutex_unlock(&tis_lock);
 
 
        return 0;
@@ -858,7 +858,7 @@ static void __exit cleanup_tis(void)
 {
        struct tpm_vendor_specific *i, *j;
        struct tpm_chip *chip;
-       spin_lock(&tis_lock);
+       mutex_lock(&tis_lock);
        list_for_each_entry_safe(i, j, &tis_chips, list) {
                chip = to_tpm_chip(i);
                tpm_remove_hardware(chip->dev);
@@ -874,7 +874,7 @@ static void __exit cleanup_tis(void)
                iounmap(i->iobase);
                list_del(&i->list);
        }
-       spin_unlock(&tis_lock);
+       mutex_unlock(&tis_lock);
 #ifdef CONFIG_PNP
        if (!force) {
                pnp_unregister_driver(&tis_pnp_driver);