From: Zhouyang Jia Date: Tue, 12 Jun 2018 03:28:52 +0000 (+0800) Subject: gpio: max732x: add error handling for i2c_new_dummy X-Git-Tag: v4.19-rc1~131^2~72 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f3a049e784b337e9fa08f2f9046c955cc80af535;p=linux.git gpio: max732x: add error handling for i2c_new_dummy 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 Signed-off-by: Linus Walleij --- diff --git a/drivers/gpio/gpio-max732x.c b/drivers/gpio/gpio-max732x.c index 9d8bcc69f245..f03cb0ba7726 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;