Received: by 10.213.65.68 with SMTP id h4csp3364984imn; Mon, 9 Apr 2018 20:06:08 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+oELUeOsEzf9YZ2fzQRxan0lFP8/DWajkXPUmiR6h3yyMEar4udsu1IGh9CHizkwbeD0Ht X-Received: by 10.101.78.142 with SMTP id b14mr22389576pgs.406.1523329568099; Mon, 09 Apr 2018 20:06:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523329568; cv=none; d=google.com; s=arc-20160816; b=Hgb0u7BNzLp+N/7ZdQUSNvidy8BY1BHXDEfCxK1voEcOFHNELBtff/HDKqlaw6JOp1 DTO9tZkXYcKeKkcMLhYcFRs4r5U5HZSIC0YdY8lvv6TcLFtuDx81qIB8Km/wD3Gm5Sjz OSbO52wPTGxVmh5Xpm0e0OpSsRxlKuRNcPCWK5xtd1gCCLIxGrzSjSLRdQ3yH6KclMul PujsUCe2E1ps5yKb2wHcf4QVzpXH/kyqToRGsLxWr6IuKQMvNBcCBKU7U2xR2sro5kMe nMREhxK9eBkuckTLHdH9IMhuKBKbRUH7PS6S1e+/IYy4ZSoK2kWm/AM41GYGZIAJS/7e neNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=HYgQUjdrU9zZTxgqAvAuKtyz5aP8iFVWoVx4UTEhfZY=; b=Tz+QVeYjP7KVn0SVSj2XXxqju5BFYGPG0ofeWaH4Oue01zt1V2/cmsIH8WZzwy6uWq ch8bSSXXVri+sXpcJIyaEiJC7euqnBoUILc0Z+4ITwDRsXzPwbYrNJ1MLqskkkQmU5O0 xAkJhOhWL/qvYsdj41i7XDy7Ard60zc+zgRU6RR8+3cAss6Ic6otedF0YXXznQrEZj56 wHxXeOXK4rai/qHXgTaWTgUwAFa0kq5VGe9hHPVVJ7AdusNoGGz3+Md+IV6lYr5I7uk/ YZ3JHn0nR1DmOkiI0ycQkGKxCEi3IzlgnVbjgGGRGnqQkiuZxWWXViWz/3QOoGgRRDM4 10Vg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i1-v6si1584054plt.265.2018.04.09.20.05.31; Mon, 09 Apr 2018 20:06:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752464AbeDJC7U (ORCPT + 99 others); Mon, 9 Apr 2018 22:59:20 -0400 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]:58375 "EHLO out30-133.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751855AbeDJC7S (ORCPT ); Mon, 9 Apr 2018 22:59:18 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R201e4;CH=green;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01429;MF=zoucao@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0T-we2kV_1523329154; Received: from localhost(mailfrom:zoucao@linux.alibaba.com fp:SMTPD_---0T-we2kV_1523329154) by smtp.aliyun-inc.com(127.0.0.1); Tue, 10 Apr 2018 10:59:14 +0800 From: zoucao@linux.alibaba.com To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com Cc: x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] x86/boot/e820: add new chareater "-" to free BIOS memory in memmap bootargs Date: Tue, 10 Apr 2018 10:59:12 +0800 Message-Id: <20180410025912.49830-2-zoucao@linux.alibaba.com> X-Mailer: git-send-email 2.14.1.40.g8e62ba1 In-Reply-To: <20180410025912.49830-1-zoucao@linux.alibaba.com> References: <20180410025912.49830-1-zoucao@linux.alibaba.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: zoucao Normally every BIOS reserved memory is used for some features, we can't use them, but in some conditions, users can ensure some BIOS memories are not used and reserved memory is well to free, they have not a good way to free these memories, here add a new chareater "-" in memmap to free reserved memory. Signed-off-by: zou cao --- 7u/Documentation/kernel-parameters.txt | 6 ++++++ 7u/arch/x86/kernel/e820.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/7u/Documentation/kernel-parameters.txt b/7u/Documentation/kernel-parameters.txt index 9a1abb99a..dbea75e12 100644 --- a/7u/Documentation/kernel-parameters.txt +++ b/7u/Documentation/kernel-parameters.txt @@ -1677,6 +1677,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. or memmap=0x10000$0x18690000 + memmap=nn[KMG]-ss[KMG] + Free E820 reserved memory, as specified by the user. + Region of reserved memory to be free, from ss to ss+nn. + Example: free reserved memory from 0x18690000-0x186a0000 + memmap=0x4101000-0x6aeff000 + memory_corruption_check=0/1 [X86] Some BIOSes seem to corrupt the first 64k of memory when doing things like suspend/resume. diff --git a/7u/arch/x86/kernel/e820.c b/7u/arch/x86/kernel/e820.c index 174da5fc5..b8a042981 100644 --- a/7u/arch/x86/kernel/e820.c +++ b/7u/arch/x86/kernel/e820.c @@ -875,6 +875,9 @@ static int __init parse_memmap_one(char *p) } else if (*p == '$') { start_at = memparse(p+1, &p); e820_add_region(start_at, mem_size, E820_RESERVED); + } else if (*p == '-') { + start_at = memparse(p+1, &p); + e820_remove_range(start_at, mem_size, E820_RESERVED, E820_RAM); } else e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); -- 2.14.1.40.g8e62ba1