From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754667AbeARAHP (ORCPT ); Wed, 17 Jan 2018 19:07:15 -0500 Received: from smtp-fw-6002.amazon.com ([52.95.49.90]:51118 "EHLO smtp-fw-6002.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752062AbeARAHN (ORCPT ); Wed, 17 Jan 2018 19:07:13 -0500 X-IronPort-AV: E=Sophos;i="5.46,374,1511827200"; d="scan'208";a="327771627" From: =?UTF-8?q?Jan=20H=2E=20Sch=C3=B6nherr?= To: Andrew Morton , Dan Williams Cc: =?UTF-8?q?Jan=20H=2E=20Sch=C3=B6nherr?= , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] mm: Fix memory size alignment in devm_memremap_pages_release() Date: Thu, 18 Jan 2018 01:06:01 +0100 Message-Id: <20180118000602.5527-1-jschoenh@amazon.de> X-Mailer: git-send-email 2.9.3.1.gcba166c.dirty MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The functions devm_memremap_pages() and devm_memremap_pages_release() use different ways to calculate the section-aligned amount of memory. The latter function may use an incorrect size if the memory region is small but straddles a section border. Use the same code for both. Fixes: 5f29a77cd957 ("mm: fix mixed zone detection in devm_memremap_pages") Signed-off-by: Jan H. Schönherr --- kernel/memremap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/memremap.c b/kernel/memremap.c index 403ab9c..4712ce6 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@ -301,7 +301,8 @@ static void devm_memremap_pages_release(struct device *dev, void *data) /* pages are dead and unused, undo the arch mapping */ align_start = res->start & ~(SECTION_SIZE - 1); - align_size = ALIGN(resource_size(res), SECTION_SIZE); + align_size = ALIGN(res->start + resource_size(res), SECTION_SIZE) + - align_start; mem_hotplug_begin(); arch_remove_memory(align_start, align_size); -- 2.9.3.1.gcba166c.dirty