Message ID | 1528774132-38287-1-git-send-email-jiazhouyang09@gmail.com |
---|---|
State | New |
Headers | show |
Series | gpio: max732x: add error handling for i2c_new_dummy | expand |
On Tue, Jun 12, 2018 at 6:28 AM, Zhouyang Jia <jiazhouyang09@gmail.com> wrote: > When i2c_new_dummy fails, the lack of error-handling code may > cause unexpected results. What results? Where is the analisys? Would driver work w/o these dummy devices?
On Tue, Jun 12, 2018 at 5:28 AM, Zhouyang Jia <jiazhouyang09@gmail.com> wrote: > When i2c_new_dummy fails, the lack of error-handling code may > cause unexpected results. > > This patch adds error-handling code after calling i2c_new_dummy. > > Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com> Patch applied for non-critical fixes. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jun 14, 2018 at 5:27 PM, Linus Walleij <linus.walleij@linaro.org> wrote: > On Tue, Jun 12, 2018 at 5:28 AM, Zhouyang Jia <jiazhouyang09@gmail.com> wrote: > >> When i2c_new_dummy fails, the lack of error-handling code may >> cause unexpected results. >> >> This patch adds error-handling code after calling i2c_new_dummy. >> >> Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com> > > Patch applied for non-critical fixes. It might potentially be a regression if the driver used to work when dummy device creation failed. > > Yours, > Linus Walleij
diff --git a/drivers/gpio/gpio-max732x.c b/drivers/gpio/gpio-max732x.c index 9d8bcc6..f03cb0b 100644 --- a/drivers/gpio/gpio-max732x.c +++ b/drivers/gpio/gpio-max732x.c @@ -653,6 +653,12 @@ static int max732x_probe(struct i2c_client *client, chip->client_group_a = client; if (nr_port > 8) { c = i2c_new_dummy(client->adapter, addr_b); + if (!c) { + dev_err(&client->dev, + "Failed to allocate I2C device\n"); + ret = -ENODEV; + goto out_failed; + } chip->client_group_b = chip->client_dummy = c; } break; @@ -660,6 +666,12 @@ static int max732x_probe(struct i2c_client *client, chip->client_group_b = client; if (nr_port > 8) { c = i2c_new_dummy(client->adapter, addr_a); + if (!c) { + dev_err(&client->dev, + "Failed to allocate I2C device\n"); + ret = -ENODEV; + goto out_failed; + } chip->client_group_a = chip->client_dummy = c; } break;
When i2c_new_dummy fails, the lack of error-handling code may cause unexpected results. This patch adds error-handling code after calling i2c_new_dummy. Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com> --- drivers/gpio/gpio-max732x.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)