On Wed, Dec 20, 2017 at 6:54 AM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > On Tue, Dec 19, 2017 at 10:59:52PM +0200, Andy Shevchenko wrote: >> @@ -1147,10 +1145,8 @@ static int gc2235_probe(struct i2c_client *client) >> if (ret) >> gc2235_remove(client); > > This error handling is probably wrong... > Thanks for pointing to this, but I'm not going to fix this by the following reasons: 1. I admit the driver's code is ugly 2. It's staging code 3. My patch does not touch those lines 4. My purpose is to get it working first. Feel free to send a followup with a good clean up which I agree with. >> >> - if (ACPI_HANDLE(&client->dev)) >> - ret = atomisp_register_i2c_module(&dev->sd, gcpdev, RAW_CAMERA); >> + return atomisp_register_i2c_module(&dev->sd, gcpdev, RAW_CAMERA); > > In the end this should look something like: > > ret = atomisp_register_i2c_module(&dev->sd, gcpdev, RAW_CAMERA); > if (ret) > goto err_free_something; > > return 0; > >> >> - return ret; >> out_free: >> v4l2_device_unregister_subdev(&dev->sd); >> kfree(dev); > > regards, > dan carpenter > -- With Best Regards, Andy Shevchenko