From patchwork Sun May 15 20:28:27 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Orishko X-Patchwork-Id: 95663 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 372A1B6EF2 for ; Mon, 16 May 2011 06:28:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753185Ab1EOU2r (ORCPT ); Sun, 15 May 2011 16:28:47 -0400 Received: from mail-ey0-f174.google.com ([209.85.215.174]:57358 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751340Ab1EOU2q (ORCPT ); Sun, 15 May 2011 16:28:46 -0400 Received: by eyx24 with SMTP id 24so1097276eyx.19 for ; Sun, 15 May 2011 13:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer; bh=rs8FGNBzxuuSQ6fy2Z7vGLQqoP6LWtWxbevpEmwFXWw=; b=ikpV6F2jUu6wQINJmYH9P/muKYhAHyGlP0617PFIb3nc0kj1cfhcWd76lu9m2c3EI6 lfte+e13I4nTM1Vv9+ai6hlH+Zewoce7a5qxFjIwCSfze/2DjFIi+umCyJ0TFtVUp+hy aGsi2/CrhQCAvjI64n/y6AXqFnqdAvY8jElKk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=dsl1jzEH/2OzWBGWBHaz18cug9pbEkP1zo7kem1JMs2CCGg4oiWPPv85ek10dtxyq/ A/j7xv231soFwzYrq5NPxG1/55pmr5uMZq2sFpOedcUQCVAq7Nim08pvoosKxZwiy+So SKkXyTF2hh+eIFD+QR0URwQm6eJTEqK+RA55E= Received: by 10.213.32.147 with SMTP id c19mr581916ebd.29.1305491325138; Sun, 15 May 2011 13:28:45 -0700 (PDT) Received: from localhost.localdomain (ti0090a380-1377.bb.online.no [85.167.94.103]) by mx.google.com with ESMTPS id y3sm2949580eeh.23.2011.05.15.13.28.42 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 15 May 2011 13:28:44 -0700 (PDT) From: Alexey Orishko To: netdev@vger.kernel.org Cc: linux-usb@vger.kernel.org, davem@davemloft.net, gregkh@suse.de, oliver@neukum.org, Alexey Orishko Subject: [PATCH] CDC NCM: release interfaces fix in unbind() Date: Sun, 15 May 2011 22:28:27 +0200 Message-Id: <1305491307-6548-1-git-send-email-alexey.orishko@stericsson.com> X-Mailer: git-send-email 1.7.4.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Alexey Orishko --- drivers/net/usb/cdc_ncm.c | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 4ab557d..500b1a6 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -54,7 +54,7 @@ #include #include -#define DRIVER_VERSION "06-May-2011" +#define DRIVER_VERSION "15-May-2011" /* CDC NCM subclass 3.2.1 */ #define USB_CDC_NCM_NDP16_LENGTH_MIN 0x10 @@ -652,28 +652,25 @@ error: static void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf) { struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; - struct usb_driver *driver; + struct usb_driver *driver = driver_of(intf); if (ctx == NULL) return; /* no setup */ - driver = driver_of(intf); - - usb_set_intfdata(ctx->data, NULL); - usb_set_intfdata(ctx->control, NULL); - usb_set_intfdata(ctx->intf, NULL); - /* release interfaces, if any */ if (ctx->data_claimed) { + usb_set_intfdata(ctx->data, NULL); usb_driver_release_interface(driver, ctx->data); ctx->data_claimed = 0; } if (ctx->control_claimed) { + usb_set_intfdata(ctx->control, NULL); usb_driver_release_interface(driver, ctx->control); ctx->control_claimed = 0; } + usb_set_intfdata(ctx->intf, NULL); cdc_ncm_free(ctx); }