diff options
author | imp <imp@FreeBSD.org> | 2013-12-11 05:32:29 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2013-12-11 05:32:29 +0000 |
commit | 43b6b3d843c1f8a46fc002de344ed8e05765b588 (patch) | |
tree | 50955b16701aa475cb89f44ca9e1547fcb97fe6a /sys/dev/usb/controller/xhci.c | |
parent | f8785b45de145b6bed126413e86bd265e04904c9 (diff) | |
download | FreeBSD-src-43b6b3d843c1f8a46fc002de344ed8e05765b588.zip FreeBSD-src-43b6b3d843c1f8a46fc002de344ed8e05765b588.tar.gz |
Fix one race and one fence post error. When the TX buffer was
completely full, we'd not complete any of the mbufs due to the fence
post error (this creates a large leak). When this is fixed, we still
leak, but at a much smaller rate due to a race between ateintr and
atestart_locked as well as an asymmetry where atestart_locked is
called from elsewhere. Ensure that we free in-flight packets that
have completed there as well. Also remove needless check for NULL on
mb, checked earlier in the loop and simplify a redundant if.
MFC after: 3 days
Diffstat (limited to 'sys/dev/usb/controller/xhci.c')
0 files changed, 0 insertions, 0 deletions