Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Panic on yesterday's -current amd64
Hi,
> panic: kernel diagnostic assertion "offset < map->dm_mapsize" failed:
> file "/usr/src/sys/arch/x86/x86/bus_dma.c", line 826 bad offset 0x0 >=
> 0x0
> cpu0: Begin traceback...
> vpanic() at netbsd:vpanic+0x173
> kern_assert() at netbsd:kern_assert+0x4b
> bus_dmamap_sync() at netbsd:bus_dmamap_sync+0x326
> rge_rxeof() at netbsd:rge_rxeof+0x179
Looking at the diagnostic and the code [#], we are trying to sync a zero-
length region. Wrapping the bus_dmamap_sync() and bus_dmamap_unload()
calls (lines 1242 to 1244) with `if (rxq->rxq_dmamap->dm_mapsize)` would
stop this panic, but it isn't immediately clear to me why we ended up with
it as zero size in the first place.
Regards,
Julian
[#] The diagnostic also fails on offset = 0 and length = 0:
https://nxr.netbsd.org/xref/src/sys/arch/x86/x86/bus_dma.c#826
and we always have offset 0, therefore we must have length 0 here:
https://nxr.netbsd.org/xref/src/sys/dev/pci/if_rge.c#1242
--
Home |
Main Index |
Thread Index |
Old Index