summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorVitaly Bordug <vitb@kernel.crashing.org>2007-09-26 22:36:22 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-12 23:55:30 +0200
commit437f375f262417b484f28007c3e8d21bd01d0e01 (patch)
treec687fe67514f56d978a44dae97829319ec89b700 /drivers/usb
parentUSB: drivers/usb/misc/sisusbvga/sisusb.c: kill two unused variables (diff)
downloadlinux-437f375f262417b484f28007c3e8d21bd01d0e01.tar.xz
linux-437f375f262417b484f28007c3e8d21bd01d0e01.zip
USB: serial gadget: Disable endpoints on unload
After Serial gadget is being unloaded, neither serial itself, nor other gadget stuff can be loaded subsequently. Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/serial.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
index afdf71f76f7e..a2a1ebc947d2 100644
--- a/drivers/usb/gadget/serial.c
+++ b/drivers/usb/gadget/serial.c
@@ -1470,6 +1470,12 @@ static void /* __init_or_exit */ gs_unbind(struct usb_gadget *gadget)
dev->dev_ctrl_req = NULL;
}
gs_free_ports(dev);
+ if (dev->dev_notify_ep)
+ usb_ep_disable(dev->dev_notify_ep);
+ if (dev->dev_in_ep)
+ usb_ep_disable(dev->dev_in_ep);
+ if (dev->dev_out_ep)
+ usb_ep_disable(dev->dev_out_ep);
kfree(dev);
set_gadget_data(gadget, NULL);
}