linux/drivers/usb/musb
Grazvydas Ignotas 08f75bf14f usb: musb_gadget: fix crash caused by dangling pointer
usb_ep_ops.disable must clear external copy of the endpoint descriptor,
otherwise musb crashes after loading/unloading several gadget modules
in a row:

Unable to handle kernel paging request at virtual address bf013730
pgd = c0004000
[bf013730] *pgd=8f26d811, *pte=00000000, *ppte=00000000
Internal error: Oops: 7 [#1]
Modules linked in: g_cdc [last unloaded: g_file_storage]
CPU: 0    Not tainted  (3.2.17 #647)
PC is at musb_gadget_enable+0x4c/0x24c
LR is at _raw_spin_lock_irqsave+0x4c/0x58
[<c027c030>] (musb_gadget_enable+0x4c/0x24c) from [<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc])
[<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc]) from [<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc])
[<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc]) from [<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc])
[<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc]) from [<c027b744>] (musb_g_ep0_irq+0x844/0x924)
[<c027b744>] (musb_g_ep0_irq+0x844/0x924) from [<c027a97c>] (musb_interrupt+0x79c/0x864)
[<c027a97c>] (musb_interrupt+0x79c/0x864) from [<c027aaa8>] (generic_interrupt+0x64/0x7c)
[<c027aaa8>] (generic_interrupt+0x64/0x7c) from [<c00797cc>] (handle_irq_event_percpu+0x28/0x178)
...

Cc: stable@vger.kernel.org # v3.1+
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-06-04 18:30:20 +03:00
..
am35x.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
blackfin.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
blackfin.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
cppi_dma.c usb: musb: cppi: add missing include to fix compilation 2012-05-14 12:45:45 -07:00
cppi_dma.h
da8xx.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
davinci.c usb: musb: davinci: Fix build breakage 2012-06-04 18:29:42 +03:00
davinci.h usb: musb: davinci: Fix build breakage 2012-06-04 18:29:42 +03:00
Kconfig usb: musb: enable support for am335x 2012-05-04 13:59:35 +03:00
Makefile usb: musb: Add support for ti81xx platform 2012-05-04 13:59:34 +03:00
musb_core.c usb: musb: Add support for ti81xx platform 2012-05-04 13:59:34 +03:00
musb_core.h usb: musb: drop __deprecated flag 2012-04-18 13:49:20 +03:00
musb_debug.h usb: musb: remove extern qualifier from musb_debug.h header 2011-12-21 13:21:02 +02:00
musb_debugfs.c usb: musb: debugfs: fix error check 2012-02-01 11:02:46 +02:00
musb_dma.h
musb_dsps.c usb: musb: Add support for ti81xx platform 2012-05-04 13:59:34 +03:00
musb_gadget_ep0.c usb: musb: headers cleanup 2011-12-12 11:51:52 +02:00
musb_gadget.c usb: musb_gadget: fix crash caused by dangling pointer 2012-06-04 18:30:20 +03:00
musb_gadget.h usb: musb: gadget: do not poke with gadget's list_head 2011-02-17 21:11:46 +02:00
musb_host.c usb: musb: fix bug in musb_cleanup_urb 2012-04-10 19:11:48 +03:00
musb_host.h usb: musb: drop a gigantic amount of ifdeferry 2011-07-01 14:31:10 -07:00
musb_io.h m68k: Make sure {read,write}s[bwl]() are always defined 2012-04-22 20:16:50 +02:00
musb_regs.h usb: musb: tusb6010: fix compilation 2011-08-12 11:52:50 +03:00
musb_virthub.c usb: musb: Start using struct usb_otg 2012-02-13 13:52:54 +02:00
musbhsdma.c USB: irq: Remove IRQF_DISABLED 2011-09-18 01:39:36 -07:00
musbhsdma.h
omap2430.c usb: musb: omap: fix the error check for pm_runtime_get_sync 2012-04-10 19:11:50 +03:00
omap2430.h
tusb6010_omap.c usb: musb: tusb6010: fix compilation 2011-08-12 11:52:50 +03:00
tusb6010.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00
tusb6010.h
ux500_dma.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
ux500.c Here we have a big rework done by Heikki Krogerus (thanks) which 2012-03-01 08:45:33 -08:00