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
..
Kconfig ARM: Fix lubbock defconfig build 2009-10-21 13:20:32 +01:00
Makefile
amd5536udc.c
amd5536udc.h
at91_udc.c
at91_udc.h
atmel_usba_udc.c
atmel_usba_udc.h
audio.c
cdc2.c
ci13xxx_udc.c
ci13xxx_udc.h
composite.c
config.c
dummy_hcd.c
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
f_ecm.c
f_eem.c
f_loopback.c
f_obex.c
f_phonet.c
f_rndis.c
f_serial.c
f_sourcesink.c
f_subset.c
file_storage.c
fsl_mx3_udc.c
fsl_qe_udc.c
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
goku_udc.c
goku_udc.h
imx_udc.c
imx_udc.h
inode.c
langwell_udc.c
langwell_udc.h
lh7a40x_udc.c
lh7a40x_udc.h
m66592-udc.c
m66592-udc.h
ndis.h
net2280.c
net2280.h
omap_udc.c
omap_udc.h
printer.c
pxa25x_udc.c
pxa25x_udc.h
pxa27x_udc.c
pxa27x_udc.h
r8a66597-udc.c
r8a66597-udc.h
rndis.c
rndis.h
s3c-hsotg.c
s3c2410_udc.c
s3c2410_udc.h
serial.c
u_audio.c
u_audio.h
u_ether.c
u_ether.h
u_phonet.h
u_serial.c
u_serial.h
usbstring.c
zero.c