DragonFly BSD
DragonFly bugs List (threaded) for 2004-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: panic in bus_dma_tag_destroy()


From: Chuck Tuffli <chuck_tuffli@xxxxxxxxxxx>
Date: Wed, 6 Oct 2004 16:08:49 -0700

On Wed, Oct 06, 2004 at 04:00:06PM -0700, Matthew Dillon wrote:
> 
> :I'm seeing a panic in bus_dma_tag_destroy() on the free of
> :dmat->segments. In comparing this to FBSD 4.10 and 5.x, the code seems
> :closest to the 5.x branch with the exception that 5.x seems to defer
> :the allocation of segments til bus_dmamap_create() while DFly
> :allocates this in bus_dma_tag_create(). The only other thing I noticed
> :was that DFly allocates segments with M_INTWAIT while FBSD allocates
> :it with M_NOWAIT.
> 
>     Get a backtrace from the DDB prompt.   The 'trace' command. If you
>     aren't getting a DDB prompt then compile up a kernel with 'options DDB'
>     in the kernel config.

ok, I'll need to hook up a console.

>     You didn't mention which driver was faililng, but the backtrace should
>     show that.  

it's a new one I'm working on.

>     In anycase, if I understand your analysis the driver must be calling
>     bus_dma_tag_destroy() with a NULL svd->parent_dmat.  I will analyize
>     the driver and determine whether it is appropriate to have 
>     bus_dma_tag_destroy() check for NULL or whether it is appropriate for
>     the driver to check for NULL and not call bus_dma_tag_destroy().

I'm pretty sure svd->parent_dmat is not NULL after allocation. The
call to bus_dma_tag_create() doesn't return an error in any case.
Commenting out lines 235-236 of src/sys/i386/i386/busdma_machdep.c
makes the panic go away for me.

-- 
Chuck Tuffli    <chuck_tuffli@xxxxxxxxxxx>
Agilent Technologies, Storage Area Networking
(916) 788 5086



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]