Page MenuHomeFreeBSD

Use pmap_mapbios() to map ACPI tables on amd64 and i386.
ClosedPublic

Authored by markj on Aug 19 2020, 8:32 PM.

Details

Summary

pmap_kenter_temporary() uses the fixed-size crashdump map. Moreover,
the ACPI table-mapping code was not verifying that the table fits in
this map, so with large tables we could clobber adjacent mappings. The
use of the crashdump map here seems to predate support for "preinit"
mappings on amd64 and i386; I can't see any reason not to use
pmap_mapbios() now, like arm64 does.

Also remove an unused "offset" parameter from map_table() on arm64.

PR: 248746

Test Plan

Booted several amd64 systems and an i386 VM. gallatin@ reported that
this fixes PR 248746 for him.

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 33073
Build 30450: arc lint + arc unit

Event Timeline

markj requested review of this revision.Aug 19 2020, 8:32 PM
markj edited the test plan for this revision. (Show Details)
markj edited reviewers, added: jhb, kib, mav; removed: manu.
This revision is now accepted and ready to land.Aug 19 2020, 9:47 PM

I am not familiar with pmap_mapbios() history, but if it should work now -- great.