USB: gadget: ethernet error path potential oops fix
Fix potential (never-observed) oops on rare error path, bugzilla #9594. Fix uses the same test as used earlier. Also make the adjacent "else" block look like an "else" block instead of hiding like a bug. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
340ba5f9ce
commit
e7b13ec923
|
@ -1067,19 +1067,19 @@ done:
|
||||||
|
|
||||||
/* on error, disable any endpoints */
|
/* on error, disable any endpoints */
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
if (!subset_active(dev))
|
if (!subset_active(dev) && dev->status_ep)
|
||||||
(void) usb_ep_disable (dev->status_ep);
|
(void) usb_ep_disable (dev->status_ep);
|
||||||
dev->status = NULL;
|
dev->status = NULL;
|
||||||
(void) usb_ep_disable (dev->in_ep);
|
(void) usb_ep_disable (dev->in_ep);
|
||||||
(void) usb_ep_disable (dev->out_ep);
|
(void) usb_ep_disable (dev->out_ep);
|
||||||
dev->in = NULL;
|
dev->in = NULL;
|
||||||
dev->out = NULL;
|
dev->out = NULL;
|
||||||
} else
|
}
|
||||||
|
|
||||||
/* activate non-CDC configs right away
|
/* activate non-CDC configs right away
|
||||||
* this isn't strictly according to the RNDIS spec
|
* this isn't strictly according to the RNDIS spec
|
||||||
*/
|
*/
|
||||||
if (!cdc_active (dev)) {
|
else if (!cdc_active (dev)) {
|
||||||
netif_carrier_on (dev->net);
|
netif_carrier_on (dev->net);
|
||||||
if (netif_running (dev->net)) {
|
if (netif_running (dev->net)) {
|
||||||
spin_unlock (&dev->lock);
|
spin_unlock (&dev->lock);
|
||||||
|
|
Loading…
Reference in a new issue