From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Sender: "Gustavo F. Padovan" Date: Thu, 1 Dec 2011 21:47:41 +0900 From: Gustavo Padovan To: Cong Wang Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org, Marcel Holtmann , linux-bluetooth@vger.kernel.org Subject: Re: [Patch] btusb: fix a memory leak in btusb_send_frame() Message-ID: <20111201124741.GC2894@joana> References: <1321925578-5407-1-git-send-email-amwang@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1321925578-5407-1-git-send-email-amwang@redhat.com> List-ID: Hi Cong, * Cong Wang [2011-11-22 09:32:57 +0800]: > This patch fixes the following memory leak reported by kmemleak: > > unreferenced object 0xffff880060a53840 (size 192): > comm "softirq", pid 0, jiffies 4320571771 (age 1406.569s) > hex dump (first 32 bytes): > 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > backtrace: > [] create_object+0x187/0x28b > [] kmemleak_alloc+0x73/0x98 > [] __kmalloc+0xfc/0x123 > [] usb_alloc_urb+0x1e/0x48 > [] btusb_send_frame+0x86/0x385 [btusb] > [] hci_send_frame+0xa0/0xa5 [bluetooth] > [] hci_cmd_task+0xa0/0xfb [bluetooth] > [] tasklet_action+0x8f/0xef > [] __do_softirq+0xf4/0x1db > [] run_ksoftirqd+0x84/0x129 > [] kthread+0xa0/0xa8 > [] kernel_thread_helper+0x4/0x10 > [] 0xffffffffffffffff > > The problem is that when inc_tx() returns non-zero, we forgot > to call usb_free_urb(). > > Cc: Marcel Holtmann > Cc: "Gustavo F. Padovan" > Signed-off-by: WANG Cong > > --- > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index fe4ebc3..eabc437 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -777,9 +777,8 @@ skip_waking: > usb_mark_last_busy(data->udev); > } > > - usb_free_urb(urb); > - > done: > + usb_free_urb(urb); > return err; > } Patch has been applied, thanks. Gustavo