[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] linux-4.7.* under xen-4.6.* gives "unhandled page fault (ec=0000)" at boot. -- Root cause found.
Den 17. aug. 2016 21:56, I wrote (to xen-users, as I am no developer): > I'm on gentoo, running gentoo-sources kernel for dom0. > > I am unable to run gentoo-sources-4.7.{0,1}. I'm running under xen, > currently at 4.6.3-r1 I am now on linux gentoo-sources-4.7.2, and the bug is stil present. I have done some digging on my own, and found that protecting two instances of " for_each_efi_memory_desc(md) {" with something like "if( efi.memmap.map != NULL) {" will allow my dom0 to boot and run. My line-numbers may be a bit off due to copious use of pr_info. The locations are: - linux/arch/x86/platform/efi/efi.c line 121 in function efi_find_mirror() - /usr/src/linux/arch/x86/platform/efi/quirks.c line 253 in function efi_free_boot_services(void) Searching the web lead me first to a solution which I believe to be wrong, changing the comparison operator in for_each_efi_memory_desc. It also lead me to someone mentioning that efi.memmap.map is not used when running under xen. That info may also be bogus for all I know. As an example, the latter function now (correct ? ) looks like this after my mis-treatment: void __init efi_free_boot_services(void) { efi_memory_desc_t *md; if( efi.memmap.map != NULL) { pr_info("efi_free_boot_services: efi.memmap.map is %p\n",efi.memmap.map); for_each_efi_memory_desc(md) { unsigned long long start = md->phys_addr; unsigned long long size = md->num_pages << EFI_PAGE_SHIFT; if (md->type != EFI_BOOT_SERVICES_CODE && md->type != EFI_BOOT_SERVICES_DATA) continue; /* Do not free, someone else owns it: */ if (md->attribute & EFI_MEMORY_RUNTIME) continue; free_bootmem_late(start, size); } } else { pr_info("efi_free_boot_services: efi.memmap.map is (null)\n"); } efi_unmap_memmap(); } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |