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, 18 Aug 2021 14:42:09 +0000 (16:42 +0200)
commit2af0c5ffadaf9d13eca28409d4238b4e672942d3
tree52a7660484dbb0943731e8cec9365b29b79d37ee
parent1bc220835526ae076eecfb7ed513f80f22cf840d
usb: gadget: mv_u3d: request_irq() after initializing UDC

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: 90fccb529d24 ("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>
drivers/usb/gadget/udc/mv_u3d_core.c