On 07/26/2011 12:39 PM, Greg KH wrote:
+
+ if (drv->remove) {
+ dev_dbg(_dev, "remove\n");
+ status = drv->remove(dev);
+ } else {
+ status = 0;
+ }
Again, why would remove ever be NULL?
This whole thing isn't needed at all.
greg k-h
Yeah, I see.
But Greg, why does i2c-core do this?
like:drivers/i2c/i2c-core.c:
static int i2c_device_remove(struct device *dev)
{
struct i2c_client *client = i2c_verify_client(dev);
struct i2c_driver *driver;
int status;
if (!client || !dev->driver)
return 0;
driver = to_i2c_driver(dev->driver);
if (driver->remove) {
dev_dbg(dev, "remove\n");
status = driver->remove(client);
} else {
dev->driver = NULL;
status = 0;
}
if (status == 0) {
client->driver = NULL;
i2c_set_clientdata(client, NULL);
}
return status;
}
And now, I'm in a fog, can you clear me/us ?
--
Thanks
Best Regards
Wanlong Gao
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html