linux/drivers/usb/gadget/udc
Aaro Koskinen 99f700366f USB: omap_udc: fix crashes on probe error and module removal
We currently crash if usb_add_gadget_udc_release() fails, since the
udc->done is not initialized until in the remove function.
Furthermore, on module removal the udc data is accessed although
the release function is already triggered by usb_del_gadget_udc()
early in the function.

Fix by rewriting the release and remove functions, basically moving
all the cleanup into the release function, and doing the completion
only in the module removal case.

The patch fixes omap_udc module probe with a failing gadged, and also
allows the removal of omap_udc. Tested by running "modprobe omap_udc;
modprobe -r omap_udc" in a loop.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-11-26 12:37:51 +02:00
..
aspeed-vhub usb: gadget: fix spelling mistakeis "[En]queing" -> "[En]queuing" 2018-10-02 10:28:08 +03:00
bdc treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
amd5536udc_pci.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
amd5536udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
at91_udc.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
at91_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
atmel_usba_udc.c usb: gadget: atmel: remove pointless retrieval of DT name property 2018-10-02 10:43:26 +03:00
atmel_usba_udc.h USB: udc: atmel_usba_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
bcm63xx_udc.c USB: gadget: udc: bcm63xx_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
core.c USB: gadget core: Issue ->disconnect() callback from usb_gadget_disconnect() 2018-10-02 10:44:11 +03:00
dummy_hcd.c usb: gadget: udc: Use scnprintf() instead of snprintf() 2018-03-13 10:47:51 +02:00
fotg210-udc.c usb: gadget: udc: fotg210-udc: Fix a sleep-in-atomic-context bug in fotg210_get_status() 2018-10-02 10:33:24 +03:00
fotg210.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_mxc_udc.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
fsl_qe_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_qe_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_udc_core.c usb: gadget: fsl_udc_core: fixup struct_udc_setup documentation 2018-10-02 10:43:12 +03:00
fsl_usb2_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fusb300_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fusb300_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
goku_udc.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
goku_udc.h usb: gadget: udc: change comparison to bitshift when dealing with a mask 2018-03-08 15:12:00 +02:00
gr_udc.c USB: gadget: udc: gr_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
gr_udc.h USB: gadget: udc: gr_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
Kconfig usb: gadget: udc: renesas_usb3: Add register of usb role switch 2018-07-30 10:39:17 +03:00
lpc32xx_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
m66592-udc.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
m66592-udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
Makefile usb/gadget: Add driver for Aspeed SoC virtual hub 2018-05-15 10:06:53 +03:00
mv_u3d_core.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
mv_u3d.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
mv_udc_core.c usb: gadget: udc: Remove unnecessary parentheses 2018-10-02 10:30:07 +03:00
mv_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2272.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2272.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2280.c USB: net2280: Remove ->disconnect() callback from net2280_pullup() 2018-10-05 10:50:23 +03:00
net2280.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
omap_udc.c USB: omap_udc: fix crashes on probe error and module removal 2018-11-26 12:37:51 +02:00
omap_udc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pch_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
pxa25x_udc.c USB: gadget: pxa25x: Re-use DEFINE_SHOW_ATTRIBUTE() macro 2018-03-08 15:12:00 +02:00
pxa25x_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
pxa27x_udc.c USB: gadget: udc: pxa27x_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
pxa27x_udc.h USB: gadget: udc: pxa27x_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
r8a66597-udc.c usb: gadget: r8a66597: Fix a possible sleep-in-atomic-context bugs in r8a66597_queue() 2018-07-17 10:12:51 +03:00
r8a66597-udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
renesas_usb3.c usb: gadget: udc: renesas_usb3: add support for r8a77990 2018-10-05 10:49:54 +03:00
s3c2410_udc.c USB: gadget: udc: s3c2410_udc: no need to check return value of debugfs_create functions 2018-05-31 12:54:23 +02:00
s3c2410_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
s3c-hsudc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
snps_udc_core.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
snps_udc_plat.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
trace.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
trace.h gadget event trace : add request pointer 2017-12-11 12:36:49 +02:00
udc-xilinx.c usb: gadget: fix spelling mistakeis "[En]queing" -> "[En]queuing" 2018-10-02 10:28:08 +03:00