From: Bjørn Mork <bjorn@mork.no>
Date: Mon, 21 Jan 2013 05:50:40 +0000 (+0000)
Subject: net: cdc_ncm: fix error path for single interface probing
X-Git-Tag: firefly_0821_release~3680^2~1198^2~29^2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6b4ef60299e30daa8643218fde6152d8a01e2d4b;p=firefly-linux-kernel-4.4.55.git

net: cdc_ncm: fix error path for single interface probing

commit bbc8d92 (net: cdc_ncm: add Huawei devices) implemented
support for devices with a single combined control and data
interface. Fix up the error path so that we do not double
release such interfaces in case of probing failures.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 4041159f6c98..2c4b41ffddb6 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -524,7 +524,8 @@ advance:
 error2:
 	usb_set_intfdata(ctx->control, NULL);
 	usb_set_intfdata(ctx->data, NULL);
-	usb_driver_release_interface(driver, ctx->data);
+	if (ctx->data != ctx->control)
+		usb_driver_release_interface(driver, ctx->data);
 error:
 	cdc_ncm_free((struct cdc_ncm_ctx *)dev->data[0]);
 	dev->data[0] = 0;