linux/drivers/usb/renesas_usbhs
Yoshihiro Shimoda 894f2fc44f usb: renesas_usbhs: avoid NULL pointer derefernce in usbhsf_pkt_handler()
When unexpected situation happened (e.g. tx/rx irq happened while
DMAC is used), the usbhsf_pkt_handler() was possible to cause NULL
pointer dereference like the followings:

Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 80000007 [#1] SMP ARM
Modules linked in: usb_f_acm u_serial g_serial libcomposite
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.5.0-rc6-00842-gac57066-dirty #63
Hardware name: Generic R8A7790 (Flattened Device Tree)
task: c0729c00 ti: c0724000 task.ti: c0724000
PC is at 0x0
LR is at usbhsf_pkt_handler+0xac/0x118
pc : [<00000000>]    lr : [<c03257e0>]    psr: 60000193
sp : c0725db8  ip : 00000000  fp : c0725df4
r10: 00000001  r9 : 00000193  r8 : ef3ccab4
r7 : ef3cca10  r6 : eea4586c  r5 : 00000000  r4 : ef19ceb4
r3 : 00000000  r2 : 0000009c  r1 : c0725dc4  r0 : ef19ceb4

This patch adds a condition to avoid the dereference.

Fixes: e73a989 ("usb: renesas_usbhs: add DMAEngine support")
Cc: <stable@vger.kernel.org> # v3.1+
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2016-03-30 16:02:37 +03:00
..
common.c usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00
common.h usb: renesas_usbhs: add support for USB-DMAC 2015-03-13 10:41:19 -05:00
fifo.c usb: renesas_usbhs: avoid NULL pointer derefernce in usbhsf_pkt_handler() 2016-03-30 16:02:37 +03:00
fifo.h usb: renesas_usbhs: constify usbhs_pkt_handle structures 2016-01-24 19:45:09 -08:00
Kconfig usb: renesas_usbhs: Use ARCH_RENESAS 2016-02-20 20:21:53 -08:00
Makefile usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00
mod_gadget.c usb: renesas_usbhs: gadget: fix giveback status code in usbhsg_pipe_disable() 2016-03-04 15:14:48 +02:00
mod_host.c usb: renesas_usbhs: Modify pipe configuration 2015-12-15 09:12:41 -06:00
mod.c usb: renesas_usbhs: avoid uninitialized variable use 2015-05-22 08:52:16 -05:00
mod.h
pipe.c usb: renesas_usbhs: Don't check CSSTS bit if peripheral mode 2016-03-04 15:14:28 +02:00
pipe.h usb: renesas_usbhs: constify usbhs_pkt_handle structures 2016-01-24 19:45:09 -08:00
rcar2.c usb: renesas_usbhs: Remove unneeded #include <linux/platform_data/gpio-rcar.h> 2015-10-20 16:03:36 +02:00
rcar2.h usb: renesas_usbhs: add R-Car Gen. 2 init and power control 2014-07-16 10:06:32 -05:00
rcar3.c usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00
rcar3.h usb: renesas_usbhs: add R-Car Gen3 power control 2016-03-04 15:14:28 +02:00