X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fstaging%2Fcptm1217%2Fclearpad_tm1217.c;h=5456f82c30660d72259b02226c30ca61b09fb983;hb=311fda8e8b495e026fa1d24d9d5a211fc8be2aef;hp=0fe713e72e9d4d620e346e214c8feaeebbef1003;hpb=c44eaf41a5a423993932c9a9ad279ee132779b48;p=mv-sheeva.git diff --git a/drivers/staging/cptm1217/clearpad_tm1217.c b/drivers/staging/cptm1217/clearpad_tm1217.c index 0fe713e72e9..5456f82c306 100644 --- a/drivers/staging/cptm1217/clearpad_tm1217.c +++ b/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;