From: Maarten Lankhorst <m.b.lankhorst@gmail.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>, Jim Bos <jim876@xs4all.nl>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Greg KH <gregkh@suse.de>, "H. Peter Anvin" <hpa@linux.intel.com>
Subject: Re: 2.6.39.1 immediately reboots/resets on EFI system
Date: Tue, 07 Jun 2011 11:08:03 +0200 [thread overview]
Message-ID: <4DEDEA73.7010900@gmail.com> (raw)
In-Reply-To: <4DED8752.5070005@kernel.org>
Hi,
Op 07-06-11 04:05, Yinghai Lu schreef:
> On 06/06/2011 06:41 PM, Matthew Garrett wrote:
>> On Mon, Jun 06, 2011 at 05:19:17PM -0700, Yinghai Lu wrote:
>>
>>> assume EFI in ram is not page-aligned?
>> They'll be 4K aligned at least.
>>
>
> can you get boot log with "memblock=debug"?
Well that definitely helped me isolate things. It seems some ranges are reserved already.
I added a simple patch to ignore the reservations there. Just a proof of concept,
don't rate for style. :-)
diff --git a/arch/x86/mm/memblock.c b/arch/x86/mm/memblock.c
index aa11693..013ecf5 100644
--- a/arch/x86/mm/memblock.c
+++ b/arch/x86/mm/memblock.c
@@ -8,7 +8,7 @@
#include <linux/range.h>
/* Check for already reserved areas */
-static bool __init check_with_memblock_reserved_size(u64 *addrp, u64 *sizep, u64 align)
+bool __init check_with_memblock_reserved_size(u64 *addrp, u64 *sizep, u64 align)
{
struct memblock_region *r;
u64 addr = *addrp, last;
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 0d3a4fa..eb3a4d9 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -304,20 +304,29 @@ static void __init print_efi_memmap(void)
}
#endif /* EFI_DEBUG */
+extern bool __init check_with_memblock_reserved_size(u64 *addrp,
+ u64 *sizep,
+ u64 align);
+
void __init efi_reserve_boot_services(void)
{
void *p;
for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
efi_memory_desc_t *md = p;
- unsigned long long start = md->phys_addr;
- unsigned long long size = md->num_pages << EFI_PAGE_SHIFT;
+ u64 start = md->phys_addr;
+ u64 size = md->num_pages << EFI_PAGE_SHIFT;
if (md->type != EFI_BOOT_SERVICES_CODE &&
md->type != EFI_BOOT_SERVICES_DATA)
continue;
-
- memblock_x86_reserve_range(start, start + size, "EFI Boot");
+ if (check_with_memblock_reserved_size(&start, &size, 1<<EFI_PAGE_SHIFT)) {
+ /* Could not reserve, skip it */
+ md->num_pages = 0;
+ printk(KERN_INFO PFX "Could not reserve boot area "
+ "[0x%llx - 0x%llx]\n", start, start+size);
+ } else
+ memblock_x86_reserve_range(start, start+size, "EFI Boot");
}
}
@@ -334,6 +343,10 @@ static void __init efi_free_boot_services(void)
md->type != EFI_BOOT_SERVICES_DATA)
continue;
+ /* Could not reserve boot area */
+ if (size)
+ continue;
+
free_bootmem_late(start, size);
}
}
next prev parent reply other threads:[~2011-06-07 9:08 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-06 11:15 gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ? Jim
2010-11-07 21:31 ` Andi Kleen
2010-11-07 22:41 ` Andreas Schwab
2010-11-07 23:03 ` Andi Kleen
2010-11-08 10:49 ` Richard Guenther
2010-11-08 11:20 ` Andi Kleen
2010-11-08 11:20 ` Richard Guenther
2010-11-08 11:47 ` Paul Koning
2010-11-08 11:53 ` Jakub Jelinek
2010-11-08 12:20 ` Michael Matz
2010-11-08 18:39 ` Dave Korn
2010-11-09 13:00 ` Michael Matz
2010-11-09 13:48 ` Andi Kleen
2010-11-09 13:57 ` Andreas Schwab
2010-11-09 16:43 ` Jim
2010-11-13 11:13 ` [PATCH] i8k: Tell gcc that *regs gets clobbered Jim Bos
2010-11-15 0:52 ` gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ? James Cloos
2010-11-15 3:21 ` Linus Torvalds
2010-11-15 8:56 ` Jakub Jelinek
2010-11-15 9:12 ` Andi Kleen
2010-11-15 9:20 ` Jakub Jelinek
2010-11-15 10:03 ` Jakub Jelinek
2010-11-15 10:54 ` Andi Kleen
2010-11-15 11:16 ` Jakub Jelinek
2010-11-15 11:37 ` Andi Kleen
2010-11-15 17:36 ` Jim Bos
2010-11-15 17:44 ` Jakub Jelinek
2010-11-15 18:17 ` Jim Bos
2010-11-15 18:26 ` Jakub Jelinek
2010-11-15 19:10 ` Jim Bos
2010-11-15 16:04 ` Linus Torvalds
2010-11-15 17:40 ` Jim Bos
2010-11-15 18:08 ` Linus Torvalds
2010-11-15 18:30 ` Jim Bos
2010-11-15 18:37 ` Jim Bos
2010-11-15 18:56 ` Linus Torvalds
2010-11-15 18:58 ` Jakub Jelinek
2010-11-15 19:12 ` Jakub Jelinek
2010-11-15 19:21 ` Linus Torvalds
2010-11-15 19:51 ` Jakub Jelinek
2010-11-15 20:22 ` Jim Bos
2011-06-03 13:05 ` 2.6.39.1 immediately reboots/resets on EFI system Jim Bos
2011-06-03 13:33 ` Matthew Garrett
2011-06-03 14:26 ` Jim Bos
2011-06-03 14:46 ` Matthew Garrett
2011-06-05 10:40 ` Jim Bos
2011-06-05 12:57 ` Maarten Lankhorst
2011-06-06 15:01 ` Maarten Lankhorst
2011-06-06 15:40 ` Jim Bos
2011-06-06 15:44 ` Matthew Garrett
2011-06-06 15:27 ` Maarten Lankhorst
2011-06-06 16:11 ` Jim Bos
2011-06-06 16:43 ` Maarten Lankhorst
2011-06-07 0:19 ` Yinghai Lu
2011-06-07 1:41 ` Matthew Garrett
2011-06-07 2:05 ` Yinghai Lu
2011-06-07 8:25 ` Maarten Lankhorst
2011-06-07 15:14 ` Yinghai Lu
2011-06-07 9:08 ` Maarten Lankhorst [this message]
2011-06-07 12:22 ` Maarten Lankhorst
2011-06-07 22:25 ` Yinghai Lu
2011-06-08 16:44 ` Jim Bos
2011-06-08 19:17 ` Yinghai Lu
2011-06-08 19:23 ` Matthew Garrett
2011-06-08 19:27 ` Yinghai Lu
2011-06-08 19:29 ` Matthew Garrett
2011-06-08 19:35 ` Yinghai Lu
2011-06-08 19:38 ` Matthew Garrett
2011-06-08 19:46 ` Yinghai Lu
2011-06-08 19:52 ` Matthew Garrett
2011-06-08 19:48 ` Yinghai Lu
2011-06-08 19:52 ` Matthew Garrett
2011-06-08 20:03 ` Yinghai Lu
2011-06-08 20:09 ` Matthew Garrett
2011-06-08 20:23 ` Yinghai Lu
2011-06-08 20:30 ` Matthew Garrett
2011-06-08 20:36 ` Yinghai Lu
2011-06-08 20:42 ` Matthew Garrett
2011-06-08 20:46 ` Yinghai Lu
2011-06-08 21:06 ` Matthew Garrett
2011-06-08 21:06 ` Linus Torvalds
2011-06-08 21:28 ` Matthew Garrett
2011-06-08 21:31 ` H. Peter Anvin
2011-06-08 21:36 ` Matthew Garrett
2011-06-08 21:31 ` Linus Torvalds
2011-06-08 21:42 ` Matthew Garrett
2011-06-08 21:51 ` H. Peter Anvin
2011-06-08 22:57 ` Linus Torvalds
2011-06-08 23:54 ` Maarten Lankhorst
2011-06-08 21:38 ` Yinghai Lu
2011-06-10 16:47 ` Matthew Garrett
2011-06-10 17:51 ` Maarten Lankhorst
2011-06-10 17:54 ` Matthew Garrett
2011-06-10 22:45 ` Maarten Lankhorst
2011-06-10 22:58 ` Yinghai Lu
2011-06-10 23:03 ` Matthew Garrett
2011-06-10 23:17 ` Greg KH
2011-06-10 23:22 ` Maarten Lankhorst
2011-06-10 23:25 ` H. Peter Anvin
2011-06-10 23:26 ` Yinghai Lu
2011-06-10 23:32 ` H. Peter Anvin
2011-06-10 23:55 ` Yinghai Lu
2011-06-11 0:00 ` H. Peter Anvin
2011-06-11 0:19 ` Yinghai Lu
2011-06-14 18:06 ` H. Peter Anvin
2011-06-11 15:29 ` Matthew Garrett
2011-06-10 23:00 ` Yinghai Lu
2011-06-13 16:47 ` Matthew Garrett
2011-06-13 17:52 ` Maarten Lankhorst
2011-06-13 18:00 ` Matthew Garrett
2011-06-13 18:14 ` Maarten Lankhorst
2011-06-13 18:17 ` Matthew Garrett
2011-06-13 18:23 ` Maarten Lankhorst
2011-06-13 18:33 ` Matthew Garrett
2011-06-13 18:45 ` Maarten Lankhorst
2011-06-14 14:34 ` Maarten Lankhorst
2011-06-14 14:50 ` Maarten Lankhorst
2011-06-14 14:55 ` Matthew Garrett
2010-11-15 22:43 ` gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ? Andi Kleen
2010-11-15 22:46 ` Jakub Jelinek
2010-11-15 19:53 ` Richard Henderson
2010-11-15 10:24 ` Richard Guenther
2010-11-15 18:45 ` Jeff Law
2010-11-15 19:04 ` Linus Torvalds
2010-11-15 22:07 ` Richard Guenther
2010-11-15 22:58 ` Jeff Law
2010-11-15 23:07 ` Richard Guenther
2010-11-16 4:10 ` Jeff Law
2010-11-15 18:42 ` Jeff Law
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DEDEA73.7010900@gmail.com \
--to=m.b.lankhorst@gmail.com \
--cc=gregkh@suse.de \
--cc=hpa@linux.intel.com \
--cc=jim876@xs4all.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.