On Wed, Sep 21, 2022 at 8:16 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote: > > On 9/21/22 16:31, Li Zhong wrote: > > Hello, > > > > My static analysis tool reports a possible bug in the adm9240 driver in Linux > > v6.0: > > > > drivers/hwmon/adm9240.c: > > > > adm9240_read() > > adm9240_fan_read() --> Line 509 > > adm9240_write_fan_div() > > > > adm9240_write_fan_div() says 'callers must hold > > data->update_lock'. However, it seems like the context does > > not hold the lock it requires. So it may cause data race when > > setting new fan div. > > > > I am not quite sure whether this is a real bug. Any feedback would be > > appreciated! > > > > You are correct, the code in adm9240_fan_read() should acquire > the mutex before calling adm9240_write_fan_div() and while > manipulating data->fan_div[channel]. > > Guenter Thanks for your patient reply! Can I submit a patch on this? The draft will be something like: + mutex_lock(&data->update_lock) err = adm9240_write_fan_div(data, channel, ++data->fan_div[channel]); if (err) return err; + mutex_unlock(&data->update_lock); Let me know if you have any suggestions!