diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index 1916ee1600b47c201203b35d7eb7664b636619dd..80efe0a53a557e5152521256a88f6883150c4ba7 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -462,6 +462,7 @@ static void typec_altmode_release(struct device *dev) typec_altmode_put_partner(alt); altmode_id_remove(alt->adev.dev.parent, alt->id); + put_device(alt->adev.dev.parent); kfree(alt); } @@ -509,6 +510,8 @@ typec_register_altmode(struct device *parent, alt->adev.dev.type = &typec_altmode_dev_type; dev_set_name(&alt->adev.dev, "%s.%u", dev_name(parent), id); + get_device(alt->adev.dev.parent); + /* Link partners and plugs with the ports */ if (is_port) BLOCKING_INIT_NOTIFIER_HEAD(&alt->nh);