Message ID | 1c77cca2bb4a61133ebfc6833516981c98fb48b4.1685082026.git.mazziesaccount@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | fix fwnode_irq_get[_byname()] returnvalue | expand |
On Fri, 26 May 2023 09:39:37 +0300 Matti Vaittinen <mazziesaccount@gmail.com> wrote: > The fwnode_irq_get_byname() was changed to not return 0 upon failure so > return value check can be adjusted to reflect the change. > > Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Comments follow though... > --- > Revision history: > v5 =>: > - No changes > v4 => v5: > - Added back after this was accidentally dropped at v4. > > Depends on the mentioned return value change which is in patch 1/2. The 1/8? Or just use 1/N and you never have to update it. > return value change does also cause a functional change here. Eg. when > IRQ mapping fails, the fwnode_irq_get_byname() no longer returns zero. > This will cause also the probe here to return nonzero failure. I guess > this is desired behaviour - but I would appreciate any confirmation. > > Please, see also previous discussion here: > https://lore.kernel.org/all/fbd52f5f5253b382b8d7b3e8046134de29f965b8.1666710197.git.mazziesaccount@gmail.com/ > > Another suggestion has been to drop the check altogether. I am slightly > reluctant on doing that unless it gets confirmed that is the "right > thing to do". I'd be more inclined to also fail in the setup->irq < 0 path and drop the later check on basis I can't see the driver doing anything useful wtihout an interrupt. > --- > drivers/i2c/i2c-smbus.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c > index 138c3f5e0093..893fe7cd3e41 100644 > --- a/drivers/i2c/i2c-smbus.c > +++ b/drivers/i2c/i2c-smbus.c > @@ -129,7 +129,7 @@ static int smbalert_probe(struct i2c_client *ara) > } else { > irq = fwnode_irq_get_byname(dev_fwnode(adapter->dev.parent), > "smbus_alert"); > - if (irq <= 0) > + if (irq < 0) > return irq; > } >
diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c index 138c3f5e0093..893fe7cd3e41 100644 --- a/drivers/i2c/i2c-smbus.c +++ b/drivers/i2c/i2c-smbus.c @@ -129,7 +129,7 @@ static int smbalert_probe(struct i2c_client *ara) } else { irq = fwnode_irq_get_byname(dev_fwnode(adapter->dev.parent), "smbus_alert"); - if (irq <= 0) + if (irq < 0) return irq; }