i2c: remove check that can never be true
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 26 Nov 2020 07:23:31 +0000 (08:23 +0100)
committerWolfram Sang <wsa@kernel.org>
Fri, 11 Dec 2020 14:43:49 +0000 (15:43 +0100)
A driver remove callback is only called if the device was bound before.
So it's sure that both dev and dev->driver are valid and dev is an i2c
device. If the check fails something louder than "return 0" might be
appropriate because the problem is grave (something like memory
corruption), otherwise the check is useless.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/i2c-core-base.c

index 6528d9e..63ebf72 100644 (file)
@@ -549,12 +549,9 @@ put_sync_adapter:
 
 static int i2c_device_remove(struct device *dev)
 {
-       struct i2c_client       *client = i2c_verify_client(dev);
+       struct i2c_client       *client = to_i2c_client(dev);
        struct i2c_driver       *driver;
 
-       if (!client || !dev->driver)
-               return 0;
-
        driver = to_i2c_driver(dev->driver);
        if (driver->remove) {
                int status;