In the future i2c_acpi_new_device() will return error pointer in some cases. Prepare i2c-multi-instantiate driver to support that. Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> --- drivers/platform/x86/i2c-multi-instantiate.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/i2c-multi-instantiate.c b/drivers/platform/x86/i2c-multi-instantiate.c index 5456581b473c..16a0eabe1e31 100644 --- a/drivers/platform/x86/i2c-multi-instantiate.c +++ b/drivers/platform/x86/i2c-multi-instantiate.c @@ -72,9 +72,14 @@ static int i2c_multi_inst_probe(struct platform_device *pdev) board_info.irq = ret; } multi->clients[i] = i2c_acpi_new_device(dev, i, &board_info); - if (!multi->clients[i]) { + if (IS_ERR(multi->clients[i])) + ret = PTR_ERR(multi->clients[i]); + else if (!multi->clients[i]) + ret = -EPROBE_DEFER; /* Wait for i2c-adapter to load */ + else + ret = 0; + if (ret) { dev_err(dev, "Error creating i2c-client, idx %d\n", i); - ret = -ENODEV; goto error; } } -- 2.19.2