[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <23641fc9-9cdb-4a6c-a1a7-a2b49e949c04@gmail.com>
Date: Mon, 30 Sep 2024 10:12:08 +0200
From: Javier Carrasco <javier.carrasco.cruz@...il.com>
To: Markus Elfring <Markus.Elfring@....de>,
Chris Packham <chris.packham@...iedtelesis.co.nz>,
linux-i2c@...r.kernel.org, linux-pm@...r.kernel.org,
linux-mips@...r.kernel.org, devicetree@...r.kernel.org,
Andi Shyti <andi.shyti@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Lee Jones <lee@...nel.org>,
Rob Herring <robh@...nel.org>, Sebastian Reichel <sre@...nel.org>,
Thomas Bogendörfer <tsbogend@...ha.franken.de>
Cc: LKML <linux-kernel@...r.kernel.org>, linux-doc@...r.kernel.org,
kernel-janitors@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>
Subject: Re: [PATCH v5 6/6] i2c: Add driver for the RTL9300 I2C controller
On 30/09/2024 09:55, Markus Elfring wrote:
>>> …
>>>> +++ b/drivers/i2c/busses/i2c-rtl9300.c
>>>> @@ -0,0 +1,422 @@
>>> …
>>>> +static int rtl9300_i2c_smbus_xfer(struct i2c_adapter *adap, u16 addr, unsigned short flags,
>>>> + char read_write, u8 command, int size,
>>>> + union i2c_smbus_data *data)
>>>> +{
>>> …
>>>> + mutex_lock(&i2c->lock);
>>>> + if (chan->sda_pin != i2c->sda_pin) {
>>> …
>>>> +out_unlock:
>>>> + mutex_unlock(&i2c->lock);
>>>> +
>>>> + return ret;
>>>> +}
>>> …
>>>
>>> Under which circumstances would you become interested to apply a statement
>>> like “guard(mutex)(&i2c->lock);”?
>>> https://elixir.bootlin.com/linux/v6.11/source/include/linux/mutex.h#L196
>>
>> At this stage I don't what to change unless Andi insists that I do.
>>
>> I can't find much mention of using guard() on https://www.kernel.org/doc/html/latest/
>
> Do you find any other information sources more encouraging?
>
>
>> but I can see enough examples (although notably none in drivers/i2c) that I _think_ I can see how I could use it.
>
> See also (for example):
> Article “Linux Kernel Development - Automatic Cleanup”
> by Javier Carrasco Cruz
> 2024-06-17
> https://javiercarrascocruz.github.io/kernel-auto-cleanup-2#2-automatic-mutex-handling
>
> Regards,
> Markus
My personal blog is definitely NOT an official or even reliable source
of information.
Thanks for referencing it, but please look for examples of guard() in
the kernel, because there are several examples for different kind of
mutexes. For example, IIO uses them widely. And they are really nice, so
I would recommend anyone using them whenever it makes sense.
Best regards,
Javier Carrasco
Powered by blists - more mailing lists