diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-01-21 18:17:47 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-01-21 18:17:47 +0000 |
commit | e026b96386aea55bea66bf958610ccd14e92cb3d (patch) | |
tree | 90ecb29706605ccc6d4b32e7b70f8683a1af2af0 /c/src/lib/libbsp/m68k/av5282/network/network.c | |
parent | 2009-01-21 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-e026b96386aea55bea66bf958610ccd14e92cb3d.tar.bz2 |
2009-01-21 Frank Ueberschar <frank.ueberschar@dsa-volgmann.de>
PR 1354/bsps
* network/network.c: In some cases it can occur that an empty mbuf is
put on the descriptor chain. (We found it especially then when
transmitting fragmented IP Packets.) Since the actual buffer
descriptor pointer will be incremented after every inserted mbuf
(txBd = sc->txBdBase + sc->txBdHead;) even if m->m_len of the current
mbuf was zero. This leads to the bug.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/m68k/av5282/network/network.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/m68k/av5282/network/network.c b/c/src/lib/libbsp/m68k/av5282/network/network.c index 7575072425..2dcf1d1e04 100644 --- a/c/src/lib/libbsp/m68k/av5282/network/network.c +++ b/c/src/lib/libbsp/m68k/av5282/network/network.c @@ -548,10 +548,10 @@ fec_sendpacket(struct ifnet *ifp, struct mbuf *m) * The IP fragmentation routine in ip_output * can produce fragments with zero length. */ - txBd = sc->txBdBase + sc->txBdHead; if (m->m_len){ char *p = mtod(m, char *); int offset = (int) p & 0x3; + txBd = sc->txBdBase + sc->txBdHead; if (offset == 0) { txBd->buffer = p; txBd->length = m->m_len; |