From: David Brownell Date: Tue, 22 May 2007 17:49:16 +0000 (+0200) Subject: i2c: Legacy i2c drivers shouldn't issue uevents X-Git-Tag: v2.6.22-rc3~93^2~2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de81d2aaebc8e5e5167cb93f674c57705898e45e;p=linux-2.6 i2c: Legacy i2c drivers shouldn't issue uevents Prevent legacy drivers from issuing uevents for device creation/removal, so that userspace can't cause modprobing loops for them. This became a problem for some legacy PC drivers. I can't easily see it becoming an issue with I2C legacy drivers, but consistency-in-paranoia seems likely to be a good thing here. For usable i2c-level driver model uevents, just switch to a new-style driver. Signed-off-by: David Brownell Signed-off-by: Jean Delvare --- diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 64f8e56d30..435925eba4 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -697,9 +697,10 @@ int i2c_attach_client(struct i2c_client *client) if (client->driver) client->dev.driver = &client->driver->driver; - if (client->driver && !is_newstyle_driver(client->driver)) + if (client->driver && !is_newstyle_driver(client->driver)) { client->dev.release = i2c_client_release; - else + client->dev.uevent_suppress = 1; + } else client->dev.release = i2c_client_dev_release; snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),