From: Lorenzo Bianconi Date: Fri, 24 Aug 2018 08:17:49 +0000 (+0200) Subject: mt76x2u: run device cleanup routine if resume fails X-Git-Tag: Ubuntu-5.10.0-12.13~6665^2~198^2~69 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=9b2fd48d36e25b9be9ddb8be8cc1eb263a1d1843;p=mirror_ubuntu-hirsute-kernel.git mt76x2u: run device cleanup routine if resume fails Cleanup {tx,rx} and mcu queues if resume operation fails Fixes: ee676cd5017c ("mt76: add driver code for MT76x2u based devices") Signed-off-by: Lorenzo Bianconi Signed-off-by: Kalle Valo --- diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_usb.c b/drivers/net/wireless/mediatek/mt76/mt76x2_usb.c index f5338c364a85..2a465c4e1009 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x2_usb.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x2_usb.c @@ -108,16 +108,24 @@ static int __maybe_unused mt76x2u_resume(struct usb_interface *intf) mt76u_mcu_complete_urb, &usb->mcu.cmpl); if (err < 0) - return err; + goto err; err = mt76u_submit_rx_buffers(&dev->mt76); if (err < 0) - return err; + goto err; tasklet_enable(&usb->rx_tasklet); tasklet_enable(&usb->tx_tasklet); - return mt76x2u_init_hardware(dev); + err = mt76x2u_init_hardware(dev); + if (err < 0) + goto err; + + return 0; + +err: + mt76x2u_cleanup(dev); + return err; } MODULE_DEVICE_TABLE(usb, mt76x2u_device_table);