diff options
author | adrian <adrian@FreeBSD.org> | 2016-06-13 00:13:20 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2016-06-13 00:13:20 +0000 |
commit | 7a215a20fc05b86e1894a98263f5fc71dbc9e300 (patch) | |
tree | 99b19e2257a0c89e508a88147a805c140a90afc5 /lib/libusb | |
parent | 891559e499c0d2d1d6203ec3540ff759160338f3 (diff) | |
download | FreeBSD-src-7a215a20fc05b86e1894a98263f5fc71dbc9e300.zip FreeBSD-src-7a215a20fc05b86e1894a98263f5fc71dbc9e300.tar.gz |
[iwm] Fix up busdma use in the RX path
When allocating a new mbuf or bus_dmamap_load()-ing it fails,
we can just keep the old mbuf since we are dropping that packet anyway.
Instead of doing bus_dmamap_create() and bus_dmamap_destroy() all the time,
create an extra bus_dmamap_t which we can use to safely try
bus_dmamap_load()-ing the new mbuf. On success we just swap the spare
bus_dmamap_t with the data->map of that ring entry.
Tested:
Tested with Intel AC7260, verified with vmstat -m that new kernel no
longer visibly leaks memory from the M_DEVBUF malloc type.
Before, leakage was 1KB every few seconds while ping(8)-ing over the wlan
connection.
Submitted by: Imre Vadasz <imre@vdsz.com>
Approved by: re@
Obtained from: DragonflyBSD.git cc440b26818b5dfdd9af504d71c1b0e6522b53ef
Differential Revision: https://reviews.freebsd.org/D6742
Diffstat (limited to 'lib/libusb')
0 files changed, 0 insertions, 0 deletions