Page MenuHomeFreeBSD

pci_host_generic: Pass a valid end address in generic_pcie_translate_resource
ClosedPublic

Authored by jhb on Mar 4 2024, 10:44 PM.
Tags
None
Referenced Files
F164039823: D44205.diff
Tue, Jul 28, 4:46 AM
F164018560: D44205.diff
Mon, Jul 27, 11:21 PM
Unknown Object (File)
Thu, Jul 23, 10:57 PM
Unknown Object (File)
Tue, Jul 21, 12:48 AM
Unknown Object (File)
Tue, Jul 14, 6:25 PM
Unknown Object (File)
May 20 2026, 5:45 PM
Unknown Object (File)
May 20 2026, 3:37 AM
Unknown Object (File)
May 20 2026, 12:19 AM
Subscribers

Details

Summary

The generic_pcie_containing_range helper added in commit d79b6b8ec267
assumed that the passed in (start, end) range used to locate the
containing mapping range was a valid address range (with end >=
start). The previous version of
generic_pcie_translate_resource_common only used the start address to
locate a mapping range, so the end address of 0 did not matter, but an
end of 0 now causes the first range to match and an incorrect
translation for resources using a later range.

PR: 277211
Reported by: dch, tuexen
Fixes: d79b6b8ec267 pci_host_generic: Don't rewrite resource start address for translation

Diff Detail

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