From b374d94195756312b78fccd8104bcd52cfa486c6 Mon Sep 17 00:00:00 2001 From: Neill Kapron Date: Tue, 26 Sep 2023 21:35:42 +0000 Subject: [PATCH] Revert "BACKPORT: FROMGIT: usb: gadget: udc: Handle gadget_connect failure during bind operation" This reverts commit 251aa28d1640b0ece15c4d4bd074d0449e858f90. Reason for revert: b/301670242 The connect_lock mutex is not being released in error path. This patch was reverted upstream. Signed-off-by: Neill Kapron Change-Id: I802a9a8afc9f23b1bf91fa4df4bfb5d207373b04 --- drivers/usb/gadget/udc/core.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c index 93695ce5fef0..ed2129be43aa 100644 --- a/drivers/usb/gadget/udc/core.c +++ b/drivers/usb/gadget/udc/core.c @@ -1099,16 +1099,12 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); /* ------------------------------------------------------------------------- */ /* Acquire connect_lock before calling this function. */ -static int usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) +static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) { - int ret; - if (udc->vbus) - ret = usb_gadget_connect_locked(udc->gadget); + usb_gadget_connect_locked(udc->gadget); else - ret = usb_gadget_disconnect_locked(udc->gadget); - - return ret; + usb_gadget_disconnect_locked(udc->gadget); } static void vbus_event_work(struct work_struct *work) @@ -1582,21 +1578,12 @@ static int gadget_bind_driver(struct device *dev) } usb_gadget_enable_async_callbacks(udc); udc->allow_connect = true; - ret = usb_udc_connect_control_locked(udc); - if (ret) - goto err_connect_control; - + usb_udc_connect_control_locked(udc); mutex_unlock(&udc->connect_lock); kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; - err_connect_control: - usb_gadget_disable_async_callbacks(udc); - if (gadget->irq) - synchronize_irq(gadget->irq); - usb_gadget_udc_stop_locked(udc); - err_start: driver->unbind(udc->gadget);