diff --git a/[refs] b/[refs] index 0304b42d0505..5061e27f1659 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8041f92a204c06aa5bef5f42a5108e3886c0b215 +refs/heads/master: 311fda8e8b495e026fa1d24d9d5a211fc8be2aef diff --git a/trunk/drivers/staging/cptm1217/clearpad_tm1217.c b/trunk/drivers/staging/cptm1217/clearpad_tm1217.c index 0fe713e72e9d..5456f82c3066 100644 --- a/trunk/drivers/staging/cptm1217/clearpad_tm1217.c +++ b/trunk/drivers/staging/cptm1217/clearpad_tm1217.c @@ -462,8 +462,8 @@ static int cp_tm1217_probe(struct i2c_client *client, if (input_dev == NULL) { dev_err(ts->dev, "cp_tm1217:Input Device Struct alloc failed\n"); - kfree(ts); - return -ENOMEM; + retval = -ENOMEM; + goto fail; } input_info = &ts->cp_input_info[i]; snprintf(input_info->name, sizeof(input_info->name), @@ -486,6 +486,7 @@ static int cp_tm1217_probe(struct i2c_client *client, dev_err(ts->dev, "Input dev registration failed for %s\n", input_dev->name); + input_free_device(input_dev); goto fail; } input_info->input = input_dev;