In the ndo_open path, a deferred queue open will report a failure, and so the netdev will not be ndo_stop()ed, leaving us with the rx_retry work potentially pending. Don't report a deferred queue as an error, as we are still operational. This means we use the ndo_stop() path for future cleanup, which handles rx_retry_work cancellation. Signed-off-by: Jeremy Kerr --- drivers/net/mctp/mctp-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/mctp/mctp-usb.c b/drivers/net/mctp/mctp-usb.c index cf6f6a93a451..fade65f2f269 100644 --- a/drivers/net/mctp/mctp-usb.c +++ b/drivers/net/mctp/mctp-usb.c @@ -154,7 +154,7 @@ static int mctp_usb_rx_queue(struct mctp_usb *mctp_usb, gfp_t gfp) if (!mctp_usb->rx_stopped) schedule_delayed_work(&mctp_usb->rx_retry_work, RX_RETRY_DELAY); spin_unlock_irqrestore(&mctp_usb->rx_lock, flags); - return rc; + return 0; } static void mctp_usb_in_complete(struct urb *urb) -- 2.47.3