mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
usb: gadget: rcar: Fix gadget registration lifecycle in remove
The driver currently fails to unregister the USB gadget when the device is removed or the driver is unbound. This leads to dangling pointers in the UDC core and potential memory corruption. Add a call to usb_del_gadget_udc() in the remove path to ensure a clean teardown of the gadget interface. Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Signed-off-by: Michele Bisogno <micbis.openwrt@gmail.com>
This commit is contained in:
committed by
Marek Vasut
parent
9f61fd5b80
commit
6602a93d39
@@ -447,8 +447,11 @@ err_clk:
|
||||
static int usbhs_udc_otg_remove(struct udevice *dev)
|
||||
{
|
||||
struct usbhs_priv_otg_data *priv = dev_get_priv(dev);
|
||||
struct usb_gadget *gadget;
|
||||
|
||||
usbhs_rcar3_power_ctrl(&priv->usbhs_priv, false);
|
||||
gadget = usbhsg_get_gadget(&priv->usbhs_priv);
|
||||
usb_del_gadget_udc(gadget);
|
||||
usbhs_mod_remove(&priv->usbhs_priv);
|
||||
usbhs_fifo_remove(&priv->usbhs_priv);
|
||||
usbhs_pipe_remove(&priv->usbhs_priv);
|
||||
|
||||
Reference in New Issue
Block a user