From patchwork Mon Apr 30 08:51:02 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Lei X-Patchwork-Id: 155813 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 23F54B6F13 for ; Mon, 30 Apr 2012 18:51:30 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755518Ab2D3Iv2 (ORCPT ); Mon, 30 Apr 2012 04:51:28 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:41790 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755270Ab2D3Iv0 (ORCPT ); Mon, 30 Apr 2012 04:51:26 -0400 Received: by mail-pb0-f46.google.com with SMTP id rp8so3043819pbb.19 for ; Mon, 30 Apr 2012 01:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=RAvT7Y8oTTEsKrMdtedt0iLG+Wc+/6vmNTaVb6qTJvU=; b=AiipNgON7cnIxGOXBon4m2XO9PGNUq6KrEwmikL6hEIDnZ84NmRTwnK8DBbKITYIki fg3Wfw0EADvC9rZDjFKbUD3LwTQj6DO65FlKhsk4iXDZTVZ0nRnsFobYNZlW3o4jmen0 Up3aMkZMf6WgWFpjcwzLJKHO0PBEyOlQJTvlswLab6bs6IEfHzstcenuSipHjZSrfICU oFfeB53Z0pngN+tCyP3ZMX0kDifJ4UCHexVYMuD8DKM+WAL+/AWYHLdKSBs/NZiELQ3N DFQoVHanKpmVUrBo/iFYvGg7qI5bpdp9b43CwjjZRftVpq+7G0AQpbCFoRrhJ5rDSAlc 4LLg== Received: by 10.68.232.163 with SMTP id tp3mr12361092pbc.70.1335775886634; Mon, 30 Apr 2012 01:51:26 -0700 (PDT) Received: from localhost ([183.37.192.221]) by mx.google.com with ESMTPS id ot5sm15433067pbb.26.2012.04.30.01.51.23 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 30 Apr 2012 01:51:26 -0700 (PDT) From: Ming Lei To: "David S. Miller" , Greg Kroah-Hartman Cc: netdev@vger.kernel.org, linux-usb@vger.kernel.org, Ming Lei Subject: [PATCH 1/3] usbnet: fix leak of transfer buffer of dev->interrupt Date: Mon, 30 Apr 2012 16:51:02 +0800 Message-Id: <1335775864-4873-2-git-send-email-tom.leiming@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1335775864-4873-1-git-send-email-tom.leiming@gmail.com> References: <1335775864-4873-1-git-send-email-tom.leiming@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The transfer buffer of dev->interrupt is allocated in .probe path, but not freed in .disconnet path, so mark the interrupt URB as URB_FREE_BUFFER to free the buffer when the URB is destroyed. Signed-off-by: Ming Lei Acked-by: Oliver Neukum --- drivers/net/usb/usbnet.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index db99536..5b38a3a 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -210,6 +210,7 @@ static int init_status (struct usbnet *dev, struct usb_interface *intf) } else { usb_fill_int_urb(dev->interrupt, dev->udev, pipe, buf, maxp, intr_complete, dev, period); + dev->interrupt->transfer_flags |= URB_FREE_BUFFER; dev_dbg(&intf->dev, "status ep%din, %d bytes period %d\n", usb_pipeendpoint(pipe), maxp, period);