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
Unknown Object (File)
Thu, Dec 12, 1:05 PM
Unknown Object (File)
Wed, Dec 4, 4:02 AM
Unknown Object (File)
Wed, Dec 4, 3:12 AM
Unknown Object (File)
Tue, Dec 3, 1:23 PM
Unknown Object (File)
Oct 17 2024, 2:07 PM
Unknown Object (File)
Oct 14 2024, 6:15 AM
Unknown Object (File)
Sep 27 2024, 4:56 AM
Unknown Object (File)
Sep 25 2024, 10:21 AM

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

Lint
Lint Skipped
Unit
Tests Skipped

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.