Re: iio/gyro/bmg160_core: Improve unlocking of a mutex in five functions

From: SF Markus Elfring
Date: Sun Mar 18 2018 - 04:20:34 EST




Am 17.03.2018 um 20:54 schrieb Jonathan Cameron:
> On Wed, 14 Mar 2018 16:15:32 +0100
> SF Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
>> Date: Wed, 14 Mar 2018 16:06:49 +0100
>>
>> * Add jump targets so that a call of the function "mutex_unlock" is stored
>> only once in these function implementations.
>>
>> * Replace 19 calls by goto statements.
>>
>> This issue was detected by using the Coccinelle software.
>>
>> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
>
> Hi Markus,
>
> Some of these are good and sensible changes

Such feedback is nice.


> - others break the code.

Which concrete places do you find questionable here?


>> - return ret;
>> +
>> + goto set_power_state;
>> default:
>> return -EINVAL;
> We exit with the mutex locked now and it should not be.

I wonder about your source code interpretation here.
The mutex was (and is still only) locked within case branches, isn't it?


>
>> }
>>
>> return -EINVAL;
> Mutex is still locked here and the return is wrong.

Should this statement get any more software development attention?

Regards,
Markus