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 5, 1:37 AM
Unknown Object (File)
Tue, Dec 3, 11:18 PM
Unknown Object (File)
Mar 4 2024, 1:09 AM
Unknown Object (File)
Feb 7 2024, 8:40 PM
Unknown Object (File)
Feb 4 2024, 6:25 PM
Unknown Object (File)
Dec 30 2023, 6:09 AM
Unknown Object (File)
Dec 20 2023, 8:33 AM
Unknown Object (File)
Dec 14 2023, 12:35 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.