From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758776Ab3FMNdA (ORCPT ); Thu, 13 Jun 2013 09:33:00 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:54674 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1758066Ab3FMN2J (ORCPT ); Thu, 13 Jun 2013 09:28:09 -0400 X-IronPort-AV: E=Sophos;i="4.87,858,1363104000"; d="scan'208";a="7537699" From: Tang Chen To: tglx@linutronix.de, mingo@elte.hu, hpa@zytor.com, akpm@linux-foundation.org, tj@kernel.org, trenn@suse.de, yinghai@kernel.org, jiang.liu@huawei.com, wency@cn.fujitsu.com, laijs@cn.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com, mgorman@suse.de, minchan@kernel.org, mina86@mina86.com, gong.chen@linux.intel.com, vasilis.liaskovitis@profitbricks.com, lwoodman@redhat.com, riel@redhat.com, jweiner@redhat.com, prarit@redhat.com Cc: x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, "Rafael J. Wysocki" , linux-acpi@vger.kernel.org Subject: [Part1 PATCH v5 04/22] x86, ACPI: Search buffer above 4GB in a second try for acpi initrd table override Date: Thu, 13 Jun 2013 21:02:51 +0800 Message-Id: <1371128589-8953-5-git-send-email-tangchen@cn.fujitsu.com> X-Mailer: git-send-email 1.7.10.1 In-Reply-To: <1371128589-8953-1-git-send-email-tangchen@cn.fujitsu.com> References: <1371128589-8953-1-git-send-email-tangchen@cn.fujitsu.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2013/06/13 20:58:16, Serialize by Router on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2013/06/13 20:58:32, Serialize complete at 2013/06/13 20:58:32 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yinghai Lu Now we only search buffer for new acpi tables in initrd under 4GB. In some case, like user use memmap to exclude all low ram, we may not find range for it under 4GB. So do second try to search for buffer above 4GB. Since later accessing to the tables is using early_ioremap(), using memory above 4GB is OK. Signed-off-by: Yinghai Lu Cc: "Rafael J. Wysocki" Cc: linux-acpi@vger.kernel.org Tested-by: Thomas Renninger Reviewed-by: Tang Chen Tested-by: Tang Chen --- drivers/acpi/osl.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 93e3194..42c48fc 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -627,6 +627,10 @@ void __init acpi_initrd_override(void *data, size_t size) /* under 4G at first, then above 4G */ acpi_tables_addr = memblock_find_in_range(0, (1ULL<<32) - 1, all_tables_size, PAGE_SIZE); + if (!acpi_tables_addr) + acpi_tables_addr = memblock_find_in_range(0, + ~(phys_addr_t)0, + all_tables_size, PAGE_SIZE); if (!acpi_tables_addr) { WARN_ON(1); return; -- 1.7.1