From a498aea4a3946b0991dbd36278a7d3a2160c4654 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Sat, 30 Sep 2006 17:18:59 +0200 Subject: [PATCH] --- yaml --- r: 37488 b: refs/heads/master c: 77ed74da26f50fa28471571ee7a2251b77526d84 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/i2c/i2c-core.c | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index b3d96b72767f..5726327b1948 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5ffd1a6aaacc25be8cd0770a51ec6d46add3a276 +refs/heads/master: 77ed74da26f50fa28471571ee7a2251b77526d84 diff --git a/trunk/drivers/i2c/i2c-core.c b/trunk/drivers/i2c/i2c-core.c index 01233f0f7771..7ca81f42d14b 100644 --- a/trunk/drivers/i2c/i2c-core.c +++ b/trunk/drivers/i2c/i2c-core.c @@ -420,14 +420,6 @@ int i2c_attach_client(struct i2c_client *client) } list_add_tail(&client->list,&adapter->clients); - if (adapter->client_register) { - if (adapter->client_register(client)) { - dev_dbg(&adapter->dev, "client_register " - "failed for client [%s] at 0x%02x\n", - client->name, client->addr); - } - } - client->usage_count = 0; client->dev.parent = &client->adapter->dev; @@ -445,10 +437,17 @@ int i2c_attach_client(struct i2c_client *client) res = device_create_file(&client->dev, &dev_attr_client_name); if (res) goto out_unregister; - -out_unlock: mutex_unlock(&adapter->clist_lock); - return res; + + if (adapter->client_register) { + if (adapter->client_register(client)) { + dev_dbg(&adapter->dev, "client_register " + "failed for client [%s] at 0x%02x\n", + client->name, client->addr); + } + } + + return 0; out_unregister: init_completion(&client->released); /* Needed? */ @@ -458,7 +457,9 @@ int i2c_attach_client(struct i2c_client *client) list_del(&client->list); dev_err(&adapter->dev, "Failed to attach i2c client %s at 0x%02x " "(%d)\n", client->name, client->addr, res); - goto out_unlock; +out_unlock: + mutex_unlock(&adapter->clist_lock); + return res; }