Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755976AbcK3FS7 (ORCPT ); Wed, 30 Nov 2016 00:18:59 -0500 Received: from mx2.suse.de ([195.135.220.15]:41901 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753078AbcK3FSv (ORCPT ); Wed, 30 Nov 2016 00:18:51 -0500 Subject: Re: [PATCH 2/2] xen/x86: Increase xen_e820_map to E820_X_MAX possible entries To: Alex Thorlton , linux-kernel@vger.kernel.org References: <1479168677-23633-1-git-send-email-athorlton@sgi.com> <1480476287-232878-1-git-send-email-athorlton@sgi.com> <1480476287-232878-3-git-send-email-athorlton@sgi.com> Cc: Russ Anderson , David Vrabel , Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Denys Vlasenko , Boris Ostrovsky , x86@kernel.org, xen-devel@lists.xenproject.org From: Juergen Gross Message-ID: Date: Wed, 30 Nov 2016 06:18:42 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1480476287-232878-3-git-send-email-athorlton@sgi.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2387 Lines: 67 On 30/11/16 04:24, Alex Thorlton wrote: > On systems with sufficiently large e820 tables, and several IOAPICs, it > is possible for the XENMEM_machine_memory_map callback (and its > counterpart, XENMEM_memory_map) to attempt to return an e820 table with > more than 128 entries. This callback adds entries to the BIOS-provided > e820 table to account for IOAPIC registers, which, on sufficiently large > systems, can result in an e820 table that is too large to copy back into > xen_e820_map. > > This change simply increases the size of xen_e820_map to E820_X_MAX to > ensure that there is enough room to store the entire e820 map returned > from this callback. > > Signed-off-by: Alex Thorlton > Suggested-by: Boris Ostrovsky Reviewed-by: Juergen Gross Juergen > Cc: Russ Anderson > Cc: David Vrabel > Cc: Ingo Molnar > Cc: Juergen Gross > Cc: Thomas Gleixner > Cc: "H. Peter Anvin" > Cc: Denys Vlasenko > Cc: Boris Ostrovsky > Cc: x86@kernel.org > Cc: xen-devel@lists.xenproject.org > --- > arch/x86/xen/setup.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c > index f8960fc..8c394e3 100644 > --- a/arch/x86/xen/setup.c > +++ b/arch/x86/xen/setup.c > @@ -41,7 +41,7 @@ > unsigned long xen_released_pages; > > /* E820 map used during setting up memory. */ > -static struct e820entry xen_e820_map[E820MAX] __initdata; > +static struct e820entry xen_e820_map[E820_X_MAX] __initdata; > static u32 xen_e820_map_entries __initdata; > > /* > @@ -750,7 +750,7 @@ char * __init xen_memory_setup(void) > max_pfn = min(max_pfn, xen_start_info->nr_pages); > mem_end = PFN_PHYS(max_pfn); > > - memmap.nr_entries = E820MAX; > + memmap.nr_entries = ARRAY_SIZE(xen_e820_map); > set_xen_guest_handle(memmap.buffer, xen_e820_map); > > op = xen_initial_domain() ? > @@ -923,7 +923,7 @@ char * __init xen_auto_xlated_memory_setup(void) > int i; > int rc; > > - memmap.nr_entries = E820MAX; > + memmap.nr_entries = ARRAY_SIZE(xen_e820_map); > set_xen_guest_handle(memmap.buffer, xen_e820_map); > > rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap); >