On Tue, Mar 28, 2023 at 04:01:21PM +0000, Sahin, Okan wrote: > >On Tue, Mar 28, 2023 at 04:51:18PM +0200, Nuno Sá wrote: > >> On Tue, 2023-03-28 at 17:35 +0300, Andy Shevchenko wrote: > >> > On Tue, Mar 28, 2023 at 04:18:30PM +0200, Nuno Sá wrote: > >> > > On Tue, 2023-03-28 at 14:46 +0100, Mark Brown wrote: > >> > > > On Tue, Mar 28, 2023 at 03:26:44PM +0200, Nuno Sá wrote: > >> > > > > >> > > > > IIRC, regmap_read() is not really reentrant and it is used in > >> > > > > the IIO driver on the sysfs interface. So, yeah, I think you > >> > > > > need the regmap lock and better just leave the config as is. > >> > > > > Yes, the lock is > >> > > > > opt- > >> > > > > out > >> > > > > so let's not disable it :) > >> > > > > >> > > > All the regmap operations are fully thread safe. > >> > > > >> > > Even if 'config->disable_locking' is set? I think that is what's > >> > > being discussed in here... > >> > > >> > In case the driver has its own lock to serialize IO how on earth the > >> > regmap lock is needed. That's what I asked the author of the driver. > >> > He told the code > >> > >> Well, if the driver has it's own locking, then sure we do not need > >> regmap's lock... > >> > >> > doesn't require the regmap lock, and I tend to believe the author. > >> > So, why to > >> > keep it? > >> > >> However, if you look at the adc driver, I can see plain regmap_read() > >> calls without any "outside" locking. > > > >Then author of the code should know what they are doing. Right? > Actually, I do not want to disable regmap lock that's why I did not update it. If you have something like func1() regmap_read(reg1) regmap_read/write(reg2) func2() regmap_read/write(regX) // X may or may not be 1 or 2 and func1() and func2() can be run in parallel then the code is racy. Do you have such in your code? -- With Best Regards, Andy Shevchenko