Page MenuHomeFreeBSD

if_awg: store mbuf and dma mapping in the last segment of a tx frame instead of the first
ClosedPublic

Authored by guyyur_gmail.com on Nov 10 2017, 5:00 PM.
Tags
None
Referenced Files
F149689818: D13031.id35430.diff
Thu, Mar 26, 7:06 AM
F149656109: D13031.id35430.diff
Thu, Mar 26, 1:04 AM
Unknown Object (File)
Tue, Mar 24, 8:17 PM
Unknown Object (File)
Fri, Mar 20, 5:38 PM
Unknown Object (File)
Fri, Mar 20, 7:27 AM
Unknown Object (File)
Fri, Mar 20, 7:26 AM
Unknown Object (File)
Tue, Mar 17, 9:53 PM
Unknown Object (File)
Sun, Mar 15, 4:58 PM
Subscribers

Details

Summary

According to the datasheet, TX_DESC_CTL is cleared when whole frame is transmitted or all
data in the current descriptor's buffer are transmitted.
When the mbuf and mapping are stored in the first segment and in a scenario where a tx
completion interrupt arrives for a frame and only the start of the next frame was transmitted,
at the time of interrupt processing the mbuf and mapping will be freed when processing the
first segment of the next frame but the other untrasmitted segments still need to use them.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable