]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
The maxsegsz of a dma tag created in de(4) is TULIP_DATA_PER_DESC bytes.
authorPyun YongHyeon <yongari@FreeBSD.org>
Thu, 7 Jun 2007 00:28:47 +0000 (00:28 +0000)
committerPyun YongHyeon <yongari@FreeBSD.org>
Thu, 7 Jun 2007 00:28:47 +0000 (00:28 +0000)
commit78bec5fa2f8d5c533abd19b9f476c9d9f194e4af
treeaed7e52a03aa3df8a5ed0de0afc67e8506a67496
parent4736604759a64afbe34f9bbeac4129d5b78d5ec6
The maxsegsz of a dma tag created in de(4) is TULIP_DATA_PER_DESC bytes.
In Rx path it allocates a new mbuf with m_getcl(9) so the length of
the mbuf is MCLBYTES which is greater than a segment size specified by
the dma tag. This segment size mismatch caused a voluntary panic.
Fix the panic by settting the mbuf length to TULIP_DATA_PER_DESC.

Reported by: Arne H Juul <arnej AT yahoo-inc DOT com>
Tested by: Arne H Juul <arnej AT yahoo-inc DOT com>
sys/dev/de/if_de.c