]> git.baikalelectronics.ru Git - kernel.git/commit
usb: gadget: mv_u3d: request_irq() after initializing UDC
authorNadezda Lutovinova <lutovinova@ispras.ru>
Wed, 18 Aug 2021 14:12:47 +0000 (17:12 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Sep 2021 07:47:35 +0000 (09:47 +0200)
commite90b6f21843ec77f83b2cfaddfda3b996e936765
treea6f2ea5c85d436202004a4dca5932ede1ad0931d
parent9d88a3ffa75e8d8412f662301721ffc4228a6dd5
usb: gadget: mv_u3d: request_irq() after initializing UDC

[ Upstream commit 2af0c5ffadaf9d13eca28409d4238b4e672942d3 ]

If IRQ occurs between calling  request_irq() and  mv_u3d_eps_init(),
then null pointer dereference occurs since u3d->eps[] wasn't
initialized yet but used in mv_u3d_nuke().

The patch puts registration of the interrupt handler after
initializing of neccesery data.

Found by Linux Driver Verification project (linuxtesting.org).

Fixes: 2d307e9c8b81 ("usb: gadget: Gadget directory cleanup - group UDC drivers")
Acked-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Nadezda Lutovinova <lutovinova@ispras.ru>
Link: https://lore.kernel.org/r/20210818141247.4794-1-lutovinova@ispras.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/udc/mv_u3d_core.c