linux/drivers/usb/gadget
Anton Vorontsov 37c4fd8c75 USB: fsl_udc_core: Fix kernel oops on module removal
fsl_udc_release() calls dma_free_coherent() with an inappropriate
device passed to it, and since the device has no dma_ops, the following
oops pops up:

  Kernel BUG at d103ce9c [verbose debug info unavailable]
  Oops: Exception in kernel mode, sig: 5 [#1]
  ...
  NIP [d103ce9c] fsl_udc_release+0x50/0x80 [fsl_usb2_udc]
  LR [d103ce74] fsl_udc_release+0x28/0x80 [fsl_usb2_udc]
  Call Trace:
  [cfbc7dc0] [d103ce74] fsl_udc_release+0x28/0x80 [fsl_usb2_udc]
  [cfbc7dd0] [c01a35c4] device_release+0x2c/0x90
  [cfbc7de0] [c016b480] kobject_cleanup+0x58/0x98
  [cfbc7e00] [c016c52c] kref_put+0x54/0x6c
  [cfbc7e10] [c016b360] kobject_put+0x34/0x64
  [cfbc7e20] [c01a1d0c] put_device+0x1c/0x2c
  [cfbc7e30] [d103dbfc] fsl_udc_remove+0xc0/0x1e4 [fsl_usb2_udc]
  ...

This patch fixes the issue by passing dev->parent, which points to
a correct device.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Li Yang <leoli@freescale.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-10-30 14:57:33 -07:00
..
amd5536udc.c USB: gadget: Drop NULL test on list_entry result 2009-09-23 06:46:28 -07:00
amd5536udc.h
at91_udc.c USB: gadget: double free_irq() in at91udc_probe() 2009-09-23 06:46:37 -07:00
at91_udc.h
atmel_usba_udc.c
atmel_usba_udc.h
audio.c USB audio gadget: Prefix all macro definitions with UAC_ in linux/usb/audio.h 2009-09-23 06:46:20 -07:00
cdc2.c
ci13xxx_udc.c
ci13xxx_udc.h
composite.c USB: gadget: Read buffer overflow 2009-09-23 06:46:32 -07:00
config.c
dummy_hcd.c USB: dummy-hcd: accept mismatch between wLength and transfer length 2009-09-23 06:46:30 -07:00
epautoconf.c
ether.c USB: gadget: Fix EEM driver comments and VID/PID 2009-10-14 14:54:44 -07:00
f_acm.c
f_audio.c USB audio gadget: Un-inline generic_[gs]et_cmd 2009-09-23 06:46:20 -07:00
f_ecm.c
f_eem.c USB: gadget: Add EEM gadget driver 2009-09-23 06:46:35 -07:00
f_loopback.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
f_obex.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
f_phonet.c
f_rndis.c USB: gadget: Add EEM gadget driver 2009-09-23 06:46:35 -07:00
f_serial.c
f_sourcesink.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
f_subset.c
file_storage.c
fsl_mx3_udc.c
fsl_qe_udc.c USB: fsl_qe_udc: Add fsl,mpc8323-qe-usb compatible entry 2009-09-23 06:46:37 -07:00
fsl_qe_udc.h
fsl_udc_core.c USB: fsl_udc_core: Fix kernel oops on module removal 2009-10-30 14:57:33 -07:00
fsl_usb2_udc.h
g_zero.h
gadget_chips.h
gmidi.c USB audio gadget: Prefix all macro definitions with UAC_ in linux/usb/audio.h 2009-09-23 06:46:20 -07:00
goku_udc.c
goku_udc.h
imx_udc.c USB: gadget: imx_udc: Use resource size 2009-10-09 13:52:07 -07:00
imx_udc.h
inode.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
Kconfig ARM: Fix lubbock defconfig build 2009-10-21 13:20:32 +01:00
langwell_udc.c
langwell_udc.h
lh7a40x_udc.c
lh7a40x_udc.h
m66592-udc.c
m66592-udc.h
Makefile
ndis.h
net2280.c
net2280.h
omap_udc.c
omap_udc.h
printer.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
pxa25x_udc.c USB: gadget: pxa25x: basic transceiver support 2009-09-23 06:46:23 -07:00
pxa25x_udc.h USB: gadget: pxa25x: basic transceiver support 2009-09-23 06:46:23 -07:00
pxa27x_udc.c
pxa27x_udc.h
r8a66597-udc.c
r8a66597-udc.h usb: r8a66597-udc unaligned fifo fix 2009-10-06 10:59:03 +09:00
rndis.c USB: gadget: Add EEM gadget driver 2009-09-23 06:46:35 -07:00
rndis.h USB: gadget: Add EEM gadget driver 2009-09-23 06:46:35 -07:00
s3c2410_udc.c USB: s3c2410: unregister should call unbind, not disconnect 2009-09-23 06:46:35 -07:00
s3c2410_udc.h
s3c-hsotg.c USB: gadget: s3c-hsotg: missing parentheses 2009-09-23 06:46:28 -07:00
serial.c
u_audio.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
u_audio.h
u_ether.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
u_ether.h USB: gadget: Add EEM gadget driver 2009-09-23 06:46:35 -07:00
u_phonet.h
u_serial.c USB: double put_tty_driver(gs_tty_driver) in gserial_setup() 2009-09-23 06:46:37 -07:00
u_serial.h
usbstring.c
zero.c