Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50c3304a authored by Hans Verkuil's avatar Hans Verkuil Committed by Jean Delvare
Browse files

i2c: Keep client->driver and client->dev.driver in sync



Ensure that client->driver is set to NULL if the probe() returns an
error (this keeps client->driver and client->dev.driver in sync).

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent 5edc68b8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -90,12 +90,16 @@ static int i2c_device_probe(struct device *dev)
{
	struct i2c_client	*client = to_i2c_client(dev);
	struct i2c_driver	*driver = to_i2c_driver(dev->driver);
	int status;

	if (!driver->probe)
		return -ENODEV;
	client->driver = driver;
	dev_dbg(dev, "probe\n");
	return driver->probe(client);
	status = driver->probe(client);
	if (status)
		client->driver = NULL;
	return status;
}

static int i2c_device_remove(struct device *dev)