usb: typec: Add the missed altmode_id_remove() in typec_register_altmode()
diff mbox series

Message ID 20210617073226.47599-1-jingxiangfeng@huawei.com
State Accepted
Commit 03026197bb657d784220b040c6173267a0375741
Headers show
Series
  • usb: typec: Add the missed altmode_id_remove() in typec_register_altmode()
Related show

Commit Message

Jing Xiangfeng June 17, 2021, 7:32 a.m. UTC
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")
Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
---
 drivers/usb/typec/class.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Heikki Krogerus June 17, 2021, 10:18 a.m. UTC | #1
On Thu, Jun 17, 2021 at 03:32:26PM +0800, Jing Xiangfeng wrote:
> 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")
> Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> ---
>  drivers/usb/typec/class.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index b9429c9f65f6..aeef453aa658 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -517,8 +517,10 @@ typec_register_altmode(struct device *parent,
>  	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;
> -- 
> 2.26.0.106.g9fadedd

Patch
diff mbox series

diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index b9429c9f65f6..aeef453aa658 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -517,8 +517,10 @@  typec_register_altmode(struct device *parent,
 	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;