| From 03026197bb657d784220b040c6173267a0375741 Mon Sep 17 00:00:00 2001 |
| From: Jing Xiangfeng <jingxiangfeng@huawei.com> |
| Date: Thu, 17 Jun 2021 15:32:26 +0800 |
| Subject: usb: typec: Add the missed altmode_id_remove() in typec_register_altmode() |
| |
| From: Jing Xiangfeng <jingxiangfeng@huawei.com> |
| |
| commit 03026197bb657d784220b040c6173267a0375741 upstream. |
| |
| typec_register_altmode() misses to call altmode_id_remove() in an error |
| path. Add the missed function call to fix it. |
| |
| Fixes: 8a37d87d72f0 ("usb: typec: Bus type for alternate modes") |
| Cc: stable <stable@vger.kernel.org> |
| Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> |
| Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com> |
| Link: https://lore.kernel.org/r/20210617073226.47599-1-jingxiangfeng@huawei.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/typec/class.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/typec/class.c |
| +++ b/drivers/usb/typec/class.c |
| @@ -446,8 +446,10 @@ typec_register_altmode(struct device *pa |
| int ret; |
| |
| alt = kzalloc(sizeof(*alt), GFP_KERNEL); |
| - if (!alt) |
| + if (!alt) { |
| + altmode_id_remove(parent, id); |
| return ERR_PTR(-ENOMEM); |
| + } |
| |
| alt->adev.svid = desc->svid; |
| alt->adev.mode = desc->mode; |