Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jul 2003 12:58:25 +0200
From:      Gary Jennejohn <garyj@jennejohn.org>
To:        Lukas Ertl <l.ertl@univie.ac.at>, John-Mark Gurney <gurney_j@efn.org>, freebsd-current@freebsd.org, Mark Blackman <mark@exonetric.com>
Subject:   Re: device driver memory leak in 5.1-20030726? 
Message-ID:  <200307281058.h6SAwPWM009155@peedub.jennejohn.org>
In-Reply-To: Message from John-Mark Gurney <gurney_j@efn.org>  of "Sun, 27 Jul 2003 18:06:41 PDT." <20030728010641.GQ10708@funkthat.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

John-Mark Gurney writes:
> 
> --E/DnYTRukya0zdZ1
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
> 
> Lukas Ertl wrote this message on Mon, Jul 28, 2003 at 01:11 +0200:
> > Then I have no explanation.  I'm running the box with a WiFi card,
> > generating lots of network traffic, and the box is running fine, no
> > panics, and low devbuf allocation.  I'm running the box with the USB
> > Bluetooth dongle, generating much less traffic (it's just a 9.6kbit GSM
> > link), and the box panics within half an hour in kmem_malloc, with devbuf
> > allocation up to 74MB.  It must be either in the Bluetooth code or in the
> > USB code.
> 
> Upon futher looking at the code, I have a better fix for this.  Let me
> know how things go for you.
> 

It appears to me that the test in usb_block_allocmem() should be
(p->tag->parent == tag || p->tag->parent == tag->parent) and NOT
p->tag == tag! That's because bus_dma_tag_create() uses the tag
passed into usb_block_allocmem() as newtag->parent!

Unfortunately, bus_dma_tag is an opaque type and there's no way to
access the parent member anywhere but in the MD busdma_machdep.c :-(

Anyway, as written there's no way that I can see that the code can
work correctly.

---
Gary Jennejohn / garyj[at]jennejohn.org gj[at]freebsd.org gj[at]denx.de



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307281058.h6SAwPWM009155>