* Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
[not found] <bug-12087-10286@http.bugzilla.kernel.org/>
@ 2008-11-23 5:35 ` Andrew Morton
2008-11-23 6:03 ` Roland Dreier
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Andrew Morton @ 2008-11-23 5:35 UTC (permalink / raw)
To: netdev; +Cc: bugme-daemon, danielm77, Jay Cliburn
(switched to email. Please respond via emailed reply-to-all, not via the
bugzilla web interface).
On Sat, 22 Nov 2008 21:11:51 -0800 (PST) bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=12087
>
> Summary: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
> Product: Drivers
> Version: 2.5
> KernelVersion: latest git tree
> Platform: All
> OS/Version: Linux
> Tree: Mainline
> Status: NEW
> Severity: normal
> Priority: P1
> Component: Network
> AssignedTo: jgarzik@pobox.com
> ReportedBy: danielm77@spray.se
>
>
> There will be a memory leak in the function alloc_ring when the parameter
> sw_size is nonzero and metadata is NULL. I don't know if that can happen.
>
> Here is the code, taken from the latest git tree.
>
> static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
> size_t sw_size, dma_addr_t * phys, void *metadata)
> {
> size_t len = nelem * elem_size;
> void *s = NULL;
> void *p = dma_alloc_coherent(&pdev->dev, len, phys, GFP_KERNEL);
>
> if (!p)
> return NULL;
> if (sw_size) {
> s = kcalloc(nelem, sw_size, GFP_KERNEL);
>
> if (!s) {
> dma_free_coherent(&pdev->dev, len, p, *phys);
> return NULL;
> }
> }
> if (metadata)
> *(void **)metadata = s;
> memset(p, 0, len);
> return p;
> }
>
>
yeah, that is a bit silly-looking.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
2008-11-23 5:35 ` [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s Andrew Morton
@ 2008-11-23 6:03 ` Roland Dreier
2008-11-23 11:40 ` Jay Cliburn
2008-11-27 8:26 ` Divy Le Ray
2 siblings, 0 replies; 5+ messages in thread
From: Roland Dreier @ 2008-11-23 6:03 UTC (permalink / raw)
To: Andrew Morton; +Cc: netdev, bugme-daemon, danielm77, Jay Cliburn
> There will be a memory leak in the function alloc_ring when the parameter
> sw_size is nonzero and metadata is NULL. I don't know if that can happen.
>
> Here is the code, taken from the latest git tree.
>
> static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
> size_t sw_size, dma_addr_t * phys, void *metadata)
It might make sense to stick a WARN_ON(sw_size && !metadata) in that
function or something like that, but a quick audit of the current code
(there are only 4 callers of alloc_ring() in that file -- and it's
static so we know those are all of them -- all in t3_sge_alloc_qset())
shows that all callers pass non-NULL metadata if sw_size != 0.
- R.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
2008-11-23 5:35 ` [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s Andrew Morton
2008-11-23 6:03 ` Roland Dreier
@ 2008-11-23 11:40 ` Jay Cliburn
2008-11-24 17:04 ` Divy Le Ray
2008-11-27 8:26 ` Divy Le Ray
2 siblings, 1 reply; 5+ messages in thread
From: Jay Cliburn @ 2008-11-23 11:40 UTC (permalink / raw)
To: Andrew Morton; +Cc: netdev, bugme-daemon, danielm77, divy
[adding cxgb3 maintainer to cc list]
On Sat, 22 Nov 2008 21:35:32 -0800
Andrew Morton <akpm@linux-foundation.org> wrote:
>
> (switched to email. Please respond via emailed reply-to-all, not via
> the bugzilla web interface).
>
> On Sat, 22 Nov 2008 21:11:51 -0800 (PST)
> bugme-daemon@bugzilla.kernel.org wrote:
>
> > http://bugzilla.kernel.org/show_bug.cgi?id=12087
> >
> > Summary: [drivers/net/cxgb3/sge.c:563]: Possible memory
> > leak: s Product: Drivers
> > Version: 2.5
> > KernelVersion: latest git tree
> > Platform: All
> > OS/Version: Linux
> > Tree: Mainline
> > Status: NEW
> > Severity: normal
> > Priority: P1
> > Component: Network
> > AssignedTo: jgarzik@pobox.com
> > ReportedBy: danielm77@spray.se
> >
> >
> > There will be a memory leak in the function alloc_ring when the
> > parameter sw_size is nonzero and metadata is NULL. I don't know if
> > that can happen.
> >
> > Here is the code, taken from the latest git tree.
> >
> > static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t
> > elem_size, size_t sw_size, dma_addr_t * phys, void *metadata)
> > {
> > size_t len = nelem * elem_size;
> > void *s = NULL;
> > void *p = dma_alloc_coherent(&pdev->dev, len, phys,
> > GFP_KERNEL);
> >
> > if (!p)
> > return NULL;
> > if (sw_size) {
> > s = kcalloc(nelem, sw_size, GFP_KERNEL);
> >
> > if (!s) {
> > dma_free_coherent(&pdev->dev, len, p,
> > *phys); return NULL;
> > }
> > }
> > if (metadata)
> > *(void **)metadata = s;
> > memset(p, 0, len);
> > return p;
> > }
> >
> >
>
> yeah, that is a bit silly-looking.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
2008-11-23 11:40 ` Jay Cliburn
@ 2008-11-24 17:04 ` Divy Le Ray
0 siblings, 0 replies; 5+ messages in thread
From: Divy Le Ray @ 2008-11-24 17:04 UTC (permalink / raw)
To: Jay Cliburn; +Cc: Andrew Morton, netdev, bugme-daemon, danielm77
Jay Cliburn wrote:
> [adding cxgb3 maintainer to cc list]
Thanks, I'll look at this.
Divy
>
> On Sat, 22 Nov 2008 21:35:32 -0800
> Andrew Morton <akpm@linux-foundation.org> wrote:
>
>>
>> (switched to email. Please respond via emailed reply-to-all, not via
>> the bugzilla web interface).
>>
>> On Sat, 22 Nov 2008 21:11:51 -0800 (PST)
>> bugme-daemon@bugzilla.kernel.org wrote:
>>
>> > http://bugzilla.kernel.org/show_bug.cgi?id=12087
>> >
>> > Summary: [drivers/net/cxgb3/sge.c:563]: Possible memory
>> > leak: s Product: Drivers
>> > Version: 2.5
>> > KernelVersion: latest git tree
>> > Platform: All
>> > OS/Version: Linux
>> > Tree: Mainline
>> > Status: NEW
>> > Severity: normal
>> > Priority: P1
>> > Component: Network
>> > AssignedTo: jgarzik@pobox.com
>> > ReportedBy: danielm77@spray.se
>> >
>> >
>> > There will be a memory leak in the function alloc_ring when the
>> > parameter sw_size is nonzero and metadata is NULL. I don't know if
>> > that can happen.
>> >
>> > Here is the code, taken from the latest git tree.
>> >
>> > static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t
>> > elem_size, size_t sw_size, dma_addr_t * phys, void *metadata)
>> > {
>> > size_t len = nelem * elem_size;
>> > void *s = NULL;
>> > void *p = dma_alloc_coherent(&pdev->dev, len, phys,
>> > GFP_KERNEL);
>> >
>> > if (!p)
>> > return NULL;
>> > if (sw_size) {
>> > s = kcalloc(nelem, sw_size, GFP_KERNEL);
>> >
>> > if (!s) {
>> > dma_free_coherent(&pdev->dev, len, p,
>> > *phys); return NULL;
>> > }
>> > }
>> > if (metadata)
>> > *(void **)metadata = s;
>> > memset(p, 0, len);
>> > return p;
>> > }
>> >
>> >
>>
>> yeah, that is a bit silly-looking.
>> --
>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
2008-11-23 5:35 ` [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s Andrew Morton
2008-11-23 6:03 ` Roland Dreier
2008-11-23 11:40 ` Jay Cliburn
@ 2008-11-27 8:26 ` Divy Le Ray
2 siblings, 0 replies; 5+ messages in thread
From: Divy Le Ray @ 2008-11-27 8:26 UTC (permalink / raw)
To: Andrew Morton; +Cc: netdev, bugme-daemon, danielm77, Jay Cliburn
Andrew Morton wrote:
> (switched to email. Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
>
> On Sat, 22 Nov 2008 21:11:51 -0800 (PST) bugme-daemon@bugzilla.kernel.org wrote:
>
>> http://bugzilla.kernel.org/show_bug.cgi?id=12087
>>
>> Summary: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
>> Product: Drivers
>> Version: 2.5
>> KernelVersion: latest git tree
>> Platform: All
>> OS/Version: Linux
>> Tree: Mainline
>> Status: NEW
>> Severity: normal
>> Priority: P1
>> Component: Network
>> AssignedTo: jgarzik@pobox.com
>> ReportedBy: danielm77@spray.se
>>
>>
>> There will be a memory leak in the function alloc_ring when the parameter
>> sw_size is nonzero and metadata is NULL. I don't know if that can happen.
>>
>> Here is the code, taken from the latest git tree.
>>
>> static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
>> size_t sw_size, dma_addr_t * phys, void *metadata)
>> {
>> size_t len = nelem * elem_size;
>> void *s = NULL;
>> void *p = dma_alloc_coherent(&pdev->dev, len, phys, GFP_KERNEL);
>>
>> if (!p)
>> return NULL;
>> if (sw_size) {
>> s = kcalloc(nelem, sw_size, GFP_KERNEL);
>>
>> if (!s) {
>> dma_free_coherent(&pdev->dev, len, p, *phys);
>> return NULL;
>> }
>> }
>> if (metadata)
>> *(void **)metadata = s;
>> memset(p, 0, len);
>> return p;
>> }
>>
>>
>
> yeah, that is a bit silly-looking.
The following patch should hopefully take care of this issue:
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=5256554489531f3e177e7308752d8f0681cdd5a6
Cheers,
Divy
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-11-27 8:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <bug-12087-10286@http.bugzilla.kernel.org/>
2008-11-23 5:35 ` [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s Andrew Morton
2008-11-23 6:03 ` Roland Dreier
2008-11-23 11:40 ` Jay Cliburn
2008-11-24 17:04 ` Divy Le Ray
2008-11-27 8:26 ` Divy Le Ray
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).