>@@ -988,12 +1030,13 @@ static ssize_t governor_store(struct device *dev, >struct device_attribute *attr, > if (ret != 1) > return -EINVAL; > >- mutex_lock(&devfreq_list_lock); >- governor = find_devfreq_governor(str_governor); >+ governor = try_then_request_governor(str_governor); > if (IS_ERR(governor)) { >- ret = PTR_ERR(governor); >- goto out; >+ return PTR_ERR(governor); > } >+ >+ mutex_lock(&devfreq_list_lock); >+ > if (df->governor == governor) { > ret = 0; > goto out; >--
The possibility that the result of try_then_request_governor is not kept protected until the line of "if (df->governor == governor)" is itching. Can you make it kept "locked" from the return of find_devfreq_governor() (either in try_then... or in this function) to the unlock of governor_store()? Cheers, MyungJoo