Re: [PATCH 2/4] iio: pressure: mpl3115: clean up interrupt handling and locking
Andy Shevchenko <[email protected]>
| Newsgroups | dev.linux.lists.linux-kernel-mentees,org.kernel.vger.linux-iio |
|---|---|
| Message-ID | <CAHp75VeeAOnUj018z_JdSKZagXP7yYaw7okm0jdT8BBp_DM6iQ@mail.gmail.com> |
On Sat, May 30, 2026 at 1:40 PM SeungJu Cheon <[email protected]> wrote: > > Return IRQ_NONE instead of IRQ_HANDLED when reading > INT_SOURCE fails. > > On shared interrupt lines, returning IRQ_HANDLED after a > failed register read may prevent other handlers from being > invoked. > Switch the trigger handler from explicit mutex_lock/unlock > to scoped_guard() for consistency with the locking style > used elsewhere in the driver. Split these two. Moving to scoped_guard() is a separate refactoring. > Move mpl3115_config_interrupt() above the interrupt handler > in preparation for the FIFO support added in a subsequent > patch. > No functional change intended. But this is a lie. The change is a (big enough) functional change and actually it feels and sounds like it deserves a Fixes tag. ... > +reg1_cleanup: > + i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1, > + data->ctrl_reg1); And if this fails?.. (Okay, this is not this patch issue, it's an original code.) > + return ret; > +} ... > -static int mpl3115_config_interrupt(struct mpl3115_data *data, > - u8 ctrl_reg1, u8 ctrl_reg4) > -{ > - int ret; > - > - ret = i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1, > - ctrl_reg1); > - if (ret < 0) > - return ret; > - > - ret = i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG4, > - ctrl_reg4); > - if (ret < 0) > - goto reg1_cleanup; > - > - data->ctrl_reg1 = ctrl_reg1; > - data->ctrl_reg4 = ctrl_reg4; > - > - return 0; > - > -reg1_cleanup: > - i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1, > - data->ctrl_reg1); > - return ret; > -} If you need to move it up, split this move to a separate patch. -- With Best Regards, Andy Shevchenko