Page MenuHomeFreeBSD

protect arm busdma bounce page counters with bounce page lock
ClosedPublic

Authored by hselasky on Jun 22 2022, 11:23 PM.
Tags
Referenced Files
F83657113: D35553.id107327.diff
Mon, May 13, 4:57 AM
Unknown Object (File)
Sat, May 4, 6:59 AM
Unknown Object (File)
Sat, May 4, 6:16 AM
Unknown Object (File)
Fri, May 3, 8:55 AM
Unknown Object (File)
Wed, May 1, 6:20 AM
Unknown Object (File)
Mon, Apr 29, 6:27 AM
Unknown Object (File)
Mon, Apr 22, 7:35 AM
Unknown Object (File)
Thu, Apr 18, 3:48 PM

Details

Summary

In bus_dmamap_unload(), the counters for free_bpages and reserved_bpages appear to be vulnerable to unprotected read-modify-write operations that result in accounting that looks like a page leak.

See also https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264836

Please suggest appropriate reviewers.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Jun 23 2022, 8:34 AM

I've suggested some optimizations. Have a look at the PR.

This revision now requires review to proceed.Jun 23 2022, 7:20 PM

Updated patch a bit. Maybe this piece of code can be removed altogether ...

This revision is now accepted and ready to land.Jun 23 2022, 7:21 PM

Andrew: Do you have time to have a quick look here?

It looks correct, however I don't know much about the 32-bit arm busdma code.