[PATCH] i2c: Drop i2c_driver.flags, 2 of 3

Just about every i2c chip driver sets the I2C_DF_NOTIFY flag, so we
can simply make it the default and drop the flag. If any driver really
doesn't want to be notified when i2c adapters are added, that driver
can simply omit to set .attach_adapter. This approach is also more
robust as it prevents accidental NULL pointer dereferences.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Jean Delvare
2005-11-26 20:28:06 +01:00
committed by Greg Kroah-Hartman
parent ff179c8cf5
commit 8a9947552d
91 changed files with 5 additions and 95 deletions

View File

@ -54,7 +54,6 @@ static int ds1337_command(struct i2c_client *client, unsigned int cmd,
static struct i2c_driver ds1337_driver = {
.owner = THIS_MODULE,
.name = "ds1337",
.flags = I2C_DF_NOTIFY,
.attach_adapter = ds1337_attach_adapter,
.detach_client = ds1337_detach_client,
.command = ds1337_command,

View File

@ -235,7 +235,6 @@ static struct i2c_driver ds1374_driver = {
.owner = THIS_MODULE,
.name = DS1374_DRV_NAME,
.id = I2C_DRIVERID_DS1374,
.flags = I2C_DF_NOTIFY,
.attach_adapter = ds1374_attach,
.detach_client = ds1374_detach,
};

View File

@ -71,7 +71,6 @@ static struct i2c_driver eeprom_driver = {
.owner = THIS_MODULE,
.name = "eeprom",
.id = I2C_DRIVERID_EEPROM,
.flags = I2C_DF_NOTIFY,
.attach_adapter = eeprom_attach_adapter,
.detach_client = eeprom_detach_client,
};

View File

@ -1636,7 +1636,6 @@ static struct i2c_driver isp1301_driver = {
.name = "isp1301_omap",
.id = 1301, /* FIXME "official", i2c-ids.h */
.class = I2C_CLASS_HWMON,
.flags = I2C_DF_NOTIFY,
.attach_adapter = isp1301_scan_bus,
.detach_client = isp1301_detach_client,
};

View File

@ -214,7 +214,6 @@ static struct i2c_driver m41t00_driver = {
.owner = THIS_MODULE,
.name = M41T00_DRV_NAME,
.id = I2C_DRIVERID_STM41T00,
.flags = I2C_DF_NOTIFY,
.attach_adapter = m41t00_attach,
.detach_client = m41t00_detach,
};

View File

@ -69,7 +69,6 @@ static int max6875_detach_client(struct i2c_client *client);
static struct i2c_driver max6875_driver = {
.owner = THIS_MODULE,
.name = "max6875",
.flags = I2C_DF_NOTIFY,
.attach_adapter = max6875_attach_adapter,
.detach_client = max6875_detach_client,
};

View File

@ -40,7 +40,6 @@ static int pca9539_detach_client(struct i2c_client *client);
static struct i2c_driver pca9539_driver = {
.owner = THIS_MODULE,
.name = "pca9539",
.flags = I2C_DF_NOTIFY,
.attach_adapter = pca9539_attach_adapter,
.detach_client = pca9539_detach_client,
};

View File

@ -68,7 +68,6 @@ static struct i2c_driver pcf8574_driver = {
.owner = THIS_MODULE,
.name = "pcf8574",
.id = I2C_DRIVERID_PCF8574,
.flags = I2C_DF_NOTIFY,
.attach_adapter = pcf8574_attach_adapter,
.detach_client = pcf8574_detach_client,
};

View File

@ -91,7 +91,6 @@ static struct i2c_driver pcf8591_driver = {
.owner = THIS_MODULE,
.name = "pcf8591",
.id = I2C_DRIVERID_PCF8591,
.flags = I2C_DF_NOTIFY,
.attach_adapter = pcf8591_attach_adapter,
.detach_client = pcf8591_detach_client,
};

View File

@ -362,7 +362,6 @@ static struct i2c_driver rtc8564_driver = {
.owner = THIS_MODULE,
.name = "RTC8564",
.id = I2C_DRIVERID_RTC8564,
.flags = I2C_DF_NOTIFY,
.attach_adapter = rtc8564_probe,
.detach_client = rtc8564_detach,
.command = rtc8564_command

View File

@ -639,7 +639,6 @@ static int __init tps65010_scan_bus(struct i2c_adapter *bus)
static struct i2c_driver tps65010_driver = {
.owner = THIS_MODULE,
.name = "tps65010",
.flags = I2C_DF_NOTIFY,
.attach_adapter = tps65010_scan_bus,
.detach_client = __exit_p(tps65010_detach_client),
};

View File

@ -107,7 +107,6 @@ static int x1205_command(struct i2c_client *client, unsigned int cmd,
static struct i2c_driver x1205_driver = {
.owner = THIS_MODULE,
.name = "x1205",
.flags = I2C_DF_NOTIFY,
.attach_adapter = &x1205_attach,
.detach_client = &x1205_detach,
};

View File

@ -197,7 +197,7 @@ int i2c_add_adapter(struct i2c_adapter *adap)
/* inform drivers of new adapters */
list_for_each(item,&drivers) {
driver = list_entry(item, struct i2c_driver, list);
if (driver->flags & I2C_DF_NOTIFY)
if (driver->attach_adapter)
/* We ignore the return code; if it fails, too bad */
driver->attach_adapter(adap);
}
@ -309,7 +309,7 @@ int i2c_add_driver(struct i2c_driver *driver)
pr_debug("i2c-core: driver [%s] registered\n", driver->name);
/* now look for instances of driver on our adapters */
if (driver->flags & I2C_DF_NOTIFY) {
if (driver->attach_adapter) {
list_for_each(item,&adapters) {
adapter = list_entry(item, struct i2c_adapter, list);
driver->attach_adapter(adapter);

View File

@ -484,7 +484,6 @@ static struct i2c_driver i2cdev_driver = {
.owner = THIS_MODULE,
.name = "dev_driver",
.id = I2C_DRIVERID_I2CDEV,
.flags = I2C_DF_NOTIFY,
.attach_adapter = i2cdev_attach_adapter,
.detach_adapter = i2cdev_detach_adapter,
.detach_client = i2cdev_detach_client,