W1: split master mutex to avoid deadlocks.
[firefly-linux-kernel-4.4.55.git] / drivers / w1 / slaves / w1_ds2433.c
index 0f7b8f9c509a87577a76daad431447fe0f97375c..85f2cdb27fa2dd258b8ee3c72d32dcdc73ba1010 100644 (file)
@@ -107,7 +107,7 @@ static ssize_t w1_f23_read_bin(struct file *filp, struct kobject *kobj,
        if ((count = w1_f23_fix_count(off, count, W1_EEPROM_SIZE)) == 0)
                return 0;
 
-       mutex_lock(&sl->master->mutex);
+       mutex_lock(&sl->master->bus_mutex);
 
 #ifdef CONFIG_W1_SLAVE_DS2433_CRC
 
@@ -138,7 +138,7 @@ static ssize_t w1_f23_read_bin(struct file *filp, struct kobject *kobj,
 #endif /* CONFIG_W1_SLAVE_DS2433_CRC */
 
 out_up:
-       mutex_unlock(&sl->master->mutex);
+       mutex_unlock(&sl->master->bus_mutex);
 
        return count;
 }
@@ -233,7 +233,7 @@ static ssize_t w1_f23_write_bin(struct file *filp, struct kobject *kobj,
        }
 #endif /* CONFIG_W1_SLAVE_DS2433_CRC */
 
-       mutex_lock(&sl->master->mutex);
+       mutex_lock(&sl->master->bus_mutex);
 
        /* Can only write data to one page at a time */
        idx = 0;
@@ -251,7 +251,7 @@ static ssize_t w1_f23_write_bin(struct file *filp, struct kobject *kobj,
        }
 
 out_up:
-       mutex_unlock(&sl->master->mutex);
+       mutex_unlock(&sl->master->bus_mutex);
 
        return count;
 }