Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753587AbdGNFyn (ORCPT ); Fri, 14 Jul 2017 01:54:43 -0400 Received: from cn.fujitsu.com ([59.151.112.132]:45958 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751424AbdGNFyd (ORCPT ); Fri, 14 Jul 2017 01:54:33 -0400 X-IronPort-AV: E=Sophos;i="5.22,518,1449504000"; d="scan'208";a="21279639" From: Dou Liyang To: , CC: , , , , , , , , Dou Liyang , , "Rafael J. Wysocki" , "Zheng, Lv" , Julian Wollrath Subject: [PATCH v7 12/13] ACPI / init: Invoke early ACPI initialization earlier Date: Fri, 14 Jul 2017 13:52:33 +0800 Message-ID: <1500011554-9784-13-git-send-email-douly.fnst@cn.fujitsu.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1500011554-9784-1-git-send-email-douly.fnst@cn.fujitsu.com> References: <1500011554-9784-1-git-send-email-douly.fnst@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.167.226.106] X-yoursite-MailScanner-ID: 5C40046B4C95.A07AF X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: douly.fnst@cn.fujitsu.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1534 Lines: 48 Linux uses acpi_early_init() to put the ACPI table management into the late stage from the early stage where the mapped ACPI tables is temporary and should be unmapped. But, now initializing interrupt delivery mode should map and parse the DMAR table earlier in the early stage. This causes an ACPI error when Linux reallocates the ACPI root tables. Because Linux doesn't unmapped the DMAR table after using in the early stage. Invoke acpi_early_init() earlier before late_time_init(), Keep the DMAR be mapped and parsed in late stage like before. Reported-by: Xiaolong Ye Signed-off-by: Dou Liyang Cc: linux-acpi@vger.kernel.org Cc: Rafael J. Wysocki Cc: Zheng, Lv Cc: Julian Wollrath --- Test in my own PC(Lenovo M4340). Ask help for doing regression testing for the bug said in commit c4e1acbb35e4 ("ACPI / init: Invoke early ACPI initialization later"). init/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/main.c b/init/main.c index df58a41..7a09467 100644 --- a/init/main.c +++ b/init/main.c @@ -654,12 +654,12 @@ asmlinkage __visible void __init start_kernel(void) kmemleak_init(); setup_per_cpu_pageset(); numa_policy_init(); + acpi_early_init(); if (late_time_init) late_time_init(); calibrate_delay(); pidmap_init(); anon_vma_init(); - acpi_early_init(); #ifdef CONFIG_X86 if (efi_enabled(EFI_RUNTIME_SERVICES)) efi_enter_virtual_mode(); -- 2.5.5