diff options
author | jhb <jhb@FreeBSD.org> | 2008-01-31 16:51:43 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-01-31 16:51:43 +0000 |
commit | 9c769565243961b07fe6ace665b47f5c6de6588d (patch) | |
tree | e79558f411fb99d94f5cb10284ba0d2713fa82db /lib/libdevstat/devstat.h | |
parent | 56d2c18f8e37bb0092ac85afbf4aa482b61b5be1 (diff) | |
download | FreeBSD-src-9c769565243961b07fe6ace665b47f5c6de6588d.zip FreeBSD-src-9c769565243961b07fe6ace665b47f5c6de6588d.tar.gz |
For no good reason I had assumed that ACPI table headers would be page
aligned (or at least not cross a page boundary). However, it turns out
that on at least one machine one table header does cross a page boundary.
This caused problems with the MADT early probe as it uses the crash dump
map to load ACPI tables by loading the RSDT/XSDT into pages 1 ... N and
loading the header of each ACPI table header into page 0 looking for the
MADT. However, if a table header crossed a page boundary, then page 1
would get trashed resulting in a panic. Fix this by reserving the first
2 pages for ACPI table headers (headers are less than a page in size,
so 2 pages will be sufficient) and use pages 2 .. N for the RSDT and XSDT.
Note: amd64 should probably be simplified to just use pmap_mapbios()
for all these tables which will use the direct map and not need the
crash dump hack.
MFC after: 5 days
Tested on: i386
Reported by: Pete French petefrench of ticketswitch.com
Diffstat (limited to 'lib/libdevstat/devstat.h')
0 files changed, 0 insertions, 0 deletions