kern/157287: re0: INVARIANTS panic (Memory modified after free)
Joerg Wunsch
j at uriah.heep.sax.de
Wed May 25 20:40:11 UTC 2011
The following reply was made to PR kern/157287; it has been noted by GNATS.
From: Joerg Wunsch <j at uriah.heep.sax.de>
To: FreeBSD-gnats-submit at freebsd.org, freebsd-bugs at FreeBSD.org
Cc:
Subject: Re: kern/157287: re0: INVARIANTS panic (Memory modified after free)
Date: Wed, 25 May 2011 22:33:13 +0200
Some more analysis on the stack trace:
re_attach+0x118a corresponds to re_allocmem(), line 1085:
/* Allocate DMA'able memory for the RX ring */
error = bus_dmamem_alloc(sc->rl_ldata.rl_rx_list_tag,
(void **)&sc->rl_ldata.rl_rx_list,
BUS_DMA_WAITOK | BUS_DMA_COHERENT | BUS_DMA_ZERO,
&sc->rl_ldata.rl_rx_list_map);
callee bus_dmamem_alloc+0x8a is i386/i386/busdma_machdep.c,
bus_dmamem_alloc() line 526:
/*
* XXX:
* (dmat->alignment < dmat->maxsize) is just a quick hack; the exact
* alignment guarantees of malloc need to be nailed down, and the
* code below should be rewritten to take that into account.
*
* In the meantime, we'll warn the user if malloc gets it wrong.
*/
if ((dmat->maxsize <= PAGE_SIZE) &&
(dmat->alignment < dmat->maxsize) &&
dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) {
*vaddr = malloc(dmat->maxsize, M_DEVBUF, mflags);
} else {
I could not spot anything obvious though.
--
cheers, J"org .-.-. --... ...-- -.. . DL8DTL
http://www.sax.de/~joerg/ NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
More information about the freebsd-net
mailing list