From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58F95C433DB for ; Tue, 9 Feb 2021 13:41:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1678D64E0D for ; Tue, 9 Feb 2021 13:41:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231666AbhBINlb (ORCPT ); Tue, 9 Feb 2021 08:41:31 -0500 Received: from mx2.suse.de ([195.135.220.15]:60528 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231536AbhBINjn (ORCPT ); Tue, 9 Feb 2021 08:39:43 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 50111AFF6; Tue, 9 Feb 2021 13:39:02 +0000 (UTC) From: Oscar Salvador To: Andrew Morton Cc: David Hildenbrand , Michal Hocko , VlastimilBabkavbabka@suse.cz, pasha.tatashin@soleen.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Anshuman Khandual , Oscar Salvador Subject: [PATCH v2 4/7] mm,memory_hotplug: Enforce struct page size to be multiple of PMD Date: Tue, 9 Feb 2021 14:38:51 +0100 Message-Id: <20210209133854.17399-5-osalvador@suse.de> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20210209133854.17399-1-osalvador@suse.de> References: <20210209133854.17399-1-osalvador@suse.de> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When struct page's size is not multiple of PMD, these do not get fully populated when adding sections, hence two sections will intersect the same the PMD. This goes against the vmemmap-per-device premise, so reject it if that is the case. Signed-off-by: Oscar Salvador --- mm/memory_hotplug.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 95695483a622..d3fb036d33fd 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -57,10 +57,11 @@ static __meminit int memmap_on_memory_store(const char *val, const struct kernel_param *kp) { /* - * Fail silently in case we cannot enable it due to platform constraints. + * Fail silently in case we cannot enable it due to system constraints. * User can always check whether it is enabled or not via /sys/module. */ - if (!IS_ENABLED(CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE)) + if (!IS_ENABLED(CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE) || + (PMD_SIZE % sizeof(struct page))) return 0; return param_set_bool(val, kp); -- 2.16.3