Page MenuHomeFreeBSD

x86 busdma: fix mis-use of bus_addr_t where vm_paddr_t is assumed.
ClosedPublic

Authored by kib on Jan 16 2019, 6:32 AM.
Tags
None
Referenced Files
F82077838: D18854.id52884.diff
Thu, Apr 25, 7:26 AM
F82070119: D18854.diff
Thu, Apr 25, 5:43 AM
F82052569: D18854.id.diff
Thu, Apr 25, 1:16 AM
Unknown Object (File)
Tue, Apr 23, 10:14 AM
Unknown Object (File)
Thu, Apr 11, 6:11 PM
Unknown Object (File)
Thu, Apr 11, 9:39 AM
Unknown Object (File)
Thu, Apr 11, 9:38 AM
Unknown Object (File)
Thu, Apr 11, 6:58 AM
Subscribers

Details

Summary

Right now bus_addr_t and vm_paddr_t are always aliases for the same underlying integer type on x86, which makes the interchange hard to detect. Shortly, i386 kernel would use uint64_t for vm_paddr_t to enable automatic use of PAE paging structures if hardware allows it, while bus_addr_t would be extended to 64bit only when PAE option is specified.

Fix all places that were identified as using bus_addr_t while page address was assumed. This was performed by testing the complete PAE merging patch on machine with > 4G of RAM enabled.

Tested by: pho (as part of the larger patch)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Jan 16 2019, 5:38 PM
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state Needs Review.Jan 18 2019, 1:43 PM
This revision was automatically updated to reflect the committed changes.