usb: gadget: f_ecm: Use atomic_t to track in-flight request
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Thu, 9 Jan 2020 13:17:22 +0000 (13:17 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jan 2020 09:40:22 +0000 (10:40 +0100)
commitd710562e01c48d59be3f60d58b7a85958b39aeda
tree9b4c503cf335912b6c577807eaa917540a3a915c
parent5b24c28cfe136597dc3913e1c00b119307a20c7e
usb: gadget: f_ecm: Use atomic_t to track in-flight request

Currently ecm->notify_req is used to flag when a request is in-flight.
ecm->notify_req is set to NULL and when a request completes it is
subsequently reset.

This is fundamentally buggy in that the unbind logic of the ECM driver will
unconditionally free ecm->notify_req leading to a NULL pointer dereference.

Fixes: da741b8c56d6 ("usb ethernet gadget: split CDC Ethernet function")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_ecm.c