2011/6/9 Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>: > stefano.ceccherini@xxxxxxxxx wrote: >> Log: >> Map B_PAGE_SIZE, and not just acpi_description_header (was actually a >> regression), since the tables are bigger than that. >> Accessing unmapped memory was doing bad things on XenServer. > > That doesn't make any sense at all: the minimum mapping size is B_PAGE_SIZE; > if you map less it will be automatically expanded to it. So unless the header > is larger than B_PAGE_SIZE, this change doesn't really change anything. > Please revert. > > Bye, > Axel. acpi_descriptor_header, as defined in headers/private/kernel/arch/x86/arch_acpi.h typedef struct acpi_descriptor_header { char signature[4]; /* table identifier as ASCII string */ uint32 length; /* length in bytes of the entire table */ uint8 revision; uint8 checksum; /* checksum of entire table */ char oem_id[6]; /* not null terminated */ char oem_table_id[8]; /* oem supplied table identifier */ uint32 oem_revision; /* oem supplied revision number */ char creator_id[4]; /* creator / asl compiler id */ uint32 creator_revision; /* compiler revision */ } _PACKED acpi_descriptor_header; is 36 bytes. Given that with B_PAGE_SIZE in the mmu_map_physical_memory() call xenserver boots haiku, and with sizeof(acpi_description_header) it reboots, I guess something doesn't work correctly.