radio: RTC6226: correctly cleanup videodev

Fix issue: free static videodev structure. Crash might occur
when video_register_device return fail.

CRs-Fixed: 2638184
Change-Id: Ie5b2485caa2649b2baeab5e136a949ec6765bac8
Signed-off-by: xiaowang <xiaowang@codeaurora.org>
This commit is contained in:
xiaowang 2020-03-10 09:57:58 +08:00 • committed by Gerrit - the friendly Code Review server
commit 1339fc5a38

View file

@ -891,7 +891,7 @@ err_wqueue:
err_rds:
kfree(radio->buffer);
err:
video_device_release(&radio->videodev);
video_device_release_empty(&radio->videodev);
err_v4l2:
v4l2_device_unregister(v4l2_dev);
err_vreg:
@ -920,9 +920,10 @@ static int rtc6226_i2c_remove(struct i2c_client *client)
free_irq(client->irq, radio);
kfree(radio->buffer);
video_device_release(&radio->videodev);
v4l2_ctrl_handler_free(&radio->ctrl_handler);
video_unregister_device(&radio->videodev);
if (video_is_registered(&radio->videodev))
video_unregister_device(&radio->videodev);
video_device_release_empty(&radio->videodev);
v4l2_device_unregister(&radio->v4l2_dev);
kfree(radio);
FMDBG("%s exit\n", __func__);