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
F132229535: D13031.id35430.diff
Wed, Oct 15, 12:23 AM
F132229534: D13031.id35039.diff
Wed, Oct 15, 12:23 AM
F132229526: D13031.id.diff
Wed, Oct 15, 12:23 AM
F132192035: D13031.diff
Tue, Oct 14, 3:43 PM
Unknown Object (File)
Sun, Oct 12, 9:07 AM
Unknown Object (File)
Wed, Oct 8, 12:20 AM
Unknown Object (File)
Tue, Oct 7, 11:13 PM
Unknown Object (File)
Thu, Sep 25, 4:28 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