diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-03-22 09:20:59 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-03-22 09:20:59 +0000 |
commit | 50eaaa0d038aa6cc5e6d30c0547cafad13a390e7 (patch) | |
tree | d84e772902fa48fe628ef5d55542dbc2ec0bf268 /README | |
parent | d010a28168a6883ef74e1f7c55c6576cf19bba4f (diff) |
wctdm24xxp, wcte12xp: Fix several problems with buffer processing.
* If the receive packet isn't the correct size, we can't just drop it, we have
to resubmit it to the receive queue immediately so it will get cleaned up
properly.
* It isn't safe to leave the buffers on any lists while calling
the function to resubmit it to the descriptor ring, since it may be freed
which potentially results in a corrupted list.
* If the card is held up in a state where it is waiting for receive data, there
is a chance that when the transmit process is started up again it could DMA
data into a buffer that has already been freed. By using our own freelist,
there isn't a chance that the board will DMA data into memory that has been
recycled for another purpose.
* Disable the tasklet when processing hard underruns in order to not corrupt the
descriptor rings.
* Make sure voicebus_stop and voicebus_release aren't running at the same time
as the hard underrun handler. This too can result in corrupted descriptor
lists.
DAHDI-560.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8379 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions