mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 01:49:20 -04:00
usb: typec: ucsi: yoga-c630: fix error and remove paths
Fix memory leak and call ucsi_destroy() from the driver's remove
function and probe's error path in order to remove debugfs files and
free the memory. Also call yoga_c630_ec_unregister_notify() in the
probe's error path.
Fixes: 2ea6d07efe ("usb: typec: ucsi: add Lenovo Yoga C630 glue driver")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20250621-c630-ucsi-v1-1-a86de5e11361@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
860295a6bb
commit
168c3896f3
@@ -133,17 +133,30 @@ static int yoga_c630_ucsi_probe(struct auxiliary_device *adev,
|
||||
|
||||
ret = yoga_c630_ec_register_notify(ec, &uec->nb);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_destroy;
|
||||
|
||||
return ucsi_register(uec->ucsi);
|
||||
ret = ucsi_register(uec->ucsi);
|
||||
if (ret)
|
||||
goto err_unregister;
|
||||
|
||||
return 0;
|
||||
|
||||
err_unregister:
|
||||
yoga_c630_ec_unregister_notify(uec->ec, &uec->nb);
|
||||
|
||||
err_destroy:
|
||||
ucsi_destroy(uec->ucsi);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void yoga_c630_ucsi_remove(struct auxiliary_device *adev)
|
||||
{
|
||||
struct yoga_c630_ucsi *uec = auxiliary_get_drvdata(adev);
|
||||
|
||||
yoga_c630_ec_unregister_notify(uec->ec, &uec->nb);
|
||||
ucsi_unregister(uec->ucsi);
|
||||
yoga_c630_ec_unregister_notify(uec->ec, &uec->nb);
|
||||
ucsi_destroy(uec->ucsi);
|
||||
}
|
||||
|
||||
static const struct auxiliary_device_id yoga_c630_ucsi_id_table[] = {
|
||||
|
||||
Reference in New Issue
Block a user