Page MenuHomeFreeBSD

busdma: Avoid an M_NOWAIT allocation in alloc_bounce_zone()
Needs ReviewPublic

Authored by markj on Sun, Nov 17, 4:17 PM.

Details

Reviewers
mhorne
jhb
Summary

alloc_bounce_zone() already performs some M_WAITOK allocations to
allocate sysctl nodes, so we can certainly allocate the bounce zone
itself using M_WAITOK.

Follow the usual dance: look for an existing bounce zone which
satisifies the constraints, then drop the lock and allocate, then
reacquire the lock and look again before proceeding to initialize the
zone.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 60643
Build 57527: arc lint + arc unit