Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1370569pxb; Fri, 21 Jan 2022 16:47:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzRXCODmIfMPjrQa1i9g1S1PQlYC7JCkF1OZodyt+T33Qb8hA0ZnNU2AzhYmCf6pw5MGifM X-Received: by 2002:a05:6a00:1a0b:b0:4c6:ec84:4103 with SMTP id g11-20020a056a001a0b00b004c6ec844103mr5625552pfv.76.1642812438472; Fri, 21 Jan 2022 16:47:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642812438; cv=none; d=google.com; s=arc-20160816; b=G+r5+ekXy1O59wTYry2XsBPu6aLud6IkMbZFEKlPWvYf8YF4CBaDg+e1fsH5FrwYGs 9qDx+5zVldlvnAd552TfBvOXjnuVanqozRJyw4185NNz7g4Du48tgYcMFkr1pB7DXua7 XQMTocsBDD9Zhyxtqlg1cUla/Ot2+N2Hao/svcp7v8cNrFw3APGGHS3PtrYyTPFNvlte wFmLBkdcMXejj6+EjHcvb85XJy0yQd5dXo/pyLYPwGLA24JHm8yHK7YuTzpyLMixBbn4 X9YHfqrw37bU/HBpmO9eGk8b+qljZqekyzoLWNEBeOdBXbPn2IiAyQXyIDQU2e01Iem3 dS6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=W9Vbp+K29C6u4kwcCC5fa/Jeprohj65mEG69AYAz1nc=; b=SGUiWP+eBKXiX7HQaR+3gh/rTN9xi+taDcLDtBplp9+G1+qODfAUki8sVgDMwMzy/x 9Y8X1eeQtmeWLt+H744f2eplLFMQr1Qsbo+mgc6jWhJqX4t5ThoCC3GxhOW6/lNZbt7g KOr/MEtsssNKc+G9upiwCdlgQxq3PwFEb15n6cwmL/omff+9mrG+CQzTdrAQqTPRNgnn TRvQaS2esALS3+kiPTuNIotxWV3W6QvgGxRlCeuya4cf9ss54ZvRFGoje9ZZQZmBT4WO BuMINrRB/aoF8RINnpXEKzW7hvSWf/iUUFLsPTwgtvdrdl7NV4ZBVBg6f6KpH8JmJ+6j tsXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=di7jITcS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v19si9562571pfu.36.2022.01.21.16.47.07; Fri, 21 Jan 2022 16:47:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=di7jITcS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1380031AbiAUKkG (ORCPT + 99 others); Fri, 21 Jan 2022 05:40:06 -0500 Received: from mga12.intel.com ([192.55.52.136]:47859 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238090AbiAUKj7 (ORCPT ); Fri, 21 Jan 2022 05:39:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642761599; x=1674297599; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=yc2EonG4xKNYkgh/4jCFbgWhGutbT/2bF8p8hppsmQU=; b=di7jITcSMIu7URtXLwK+gmbkB/1psU42f0HoZzperlyOz50LEREvD/kP ufR4vKa3YCFHoiUmqvCe5pwLyCzA+hBiQuaNtqcTb52v85hPKLNB/es3j PGOnVRS1pbU3GqHZ63Kppc3vIMAjb/CM6p63LL2zvoksKBVb+WXkXhFPG PTF0x9gC4tRQysave1eOQj2l2TeWP8jB0JeW1bVLg+oe4nS8ihZOAgbJ/ BR6c9vN15OxY4MWdNfECL/TelQtiplu5kp85Iehr208Surz6xa0EzWlkO PpVbEUGQ4/HWgNwTszLKDOkNj9LsVJ09uhbGkGCYJOkIMXhh7bhLn09G1 A==; X-IronPort-AV: E=McAfee;i="6200,9189,10233"; a="225608828" X-IronPort-AV: E=Sophos;i="5.88,304,1635231600"; d="scan'208";a="225608828" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2022 02:39:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,304,1635231600"; d="scan'208";a="475910023" Received: from dev2 (HELO DEV2.igk.intel.com) ([10.237.148.94]) by orsmga003.jf.intel.com with ESMTP; 21 Jan 2022 02:39:56 -0800 From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= To: x86@kernel.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" Cc: linux-kernel@vger.kernel.org, =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= , Cezary Rojewski , "Rafael J . Wysocki" Subject: [PATCH] x86: Preserve ACPI memory area during hibernation Date: Fri, 21 Jan 2022 11:39:38 +0100 Message-Id: <20220121103938.2602637-1-amadeuszx.slawinski@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When overriding NHLT ACPI-table tests show that on some platforms there is problem that NHLT contains garbage after hibernation/resume cycle. Problem stems from the fact that ACPI override performs early memory allocation using memblock_phys_alloc_range() in memblock_phys_alloc_range(). This memory block is later being marked as ACPI memory block in arch_reserve_mem_area(). Later when memory areas are considered for hibernation it is being marked as nosave in e820__register_nosave_regions(). Fix this by skipping ACPI memory area altogether when considering areas to mark as nosave. Signed-off-by: Amadeusz Sławiński Reviewed-by: Cezary Rojewski Acked-by: Rafael J. Wysocki --- arch/x86/kernel/e820.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index bc0657f0deed..88c1b785ffe4 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -758,6 +758,18 @@ void __init e820__register_nosave_regions(unsigned long limit_pfn) for (i = 0; i < e820_table->nr_entries; i++) { struct e820_entry *entry = &e820_table->entries[i]; + /* + * Areas containing ACPI tables should be preserved during + * hibernation to prevent potential problems caused by BIOS + * upgrades when offline, as well as to preserve initrd + * ACPI tables overrides which are applied on boot. + * See also acpi_table_upgrade() & arch_reserve_mem_area() + */ + if (entry->type == E820_TYPE_ACPI) { + pfn = PFN_UP(entry->addr + entry->size); + continue; + } + if (pfn < PFN_UP(entry->addr)) register_nosave_region(pfn, PFN_UP(entry->addr)); -- 2.25.1