Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp433943ybx; Mon, 4 Nov 2019 23:21:25 -0800 (PST) X-Google-Smtp-Source: APXvYqyGdnKejCXzBca9IpskVMV6of3gxczGkBrxNn1N+wk5dFbWh6fgEV7yqofzDtr/xZ97d5ea X-Received: by 2002:a17:906:913:: with SMTP id i19mr21496206ejd.23.1572938485714; Mon, 04 Nov 2019 23:21:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572938485; cv=none; d=google.com; s=arc-20160816; b=Pff7S3IUjpzYXZDN78d8CjpzOgQFWwhF7HIKGTlS1HuJkibEidkEnCV94EZtlyXKC6 UH3yj2XRRRrEHXmckNPXo6c4KIXrg7cku2OG+JIFb6Id9BPMnlNJ8u6ao19fk73RRCfI f5Z862dW1genVrwLuN91PShVYdWyZPp0qcTqTlXvn8K1ZajffD/4rBNO9LYbL97q1WWG rcHSSOlvqIAaw0Cp/i+ZFAthjMK3sMFVakAco2jX7KxntfCKApnZ03fdR4cXfAfLr1MD OcpSsQYjYUYSLRe4F/HpHeNBFQfFb/lJMVQbbUSFnooTUR61YkW6DzXo+Jfj9Mc+pSBL 3xOQ== 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:dkim-signature; bh=xAl+CIf0xl/Gmj2Xd3Kt627t2Fo8KQ0bleuWtBaYwt0=; b=ozIK9f6pWl4SdU/dMH5ImAr9Mxoi7fWspJl24dPfKvL7tMoW/S4JAC3m6AVwQG/R6P 2CCzRpiRMhsePWASp14cOsFM4D8FDtNcTMxkn50Q0VafMBIEGlq0SSgYQy49fVYDra8h BBgnBG4cjecTvKzeCxAcFfDtktqQ7FhMpITVHQU42UtMldANsf4HLgQZ7X7EvLIWDxIl yrTcOIIs8u3afDmeKby1cPeyfFsYo1OGCG/XicLY6kVvEhR/tUPz0cpLEx+HKd8BXHeU IEfZgsRihWI1L824nnKOY/vpnFFXDr7ntsEMu5a+cO0jt8hiVmux+aDvBqFP+QrFjuDt AGQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=d4AJP6GB; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i24si12694023ejh.35.2019.11.04.23.21.01; Mon, 04 Nov 2019 23:21:25 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=d4AJP6GB; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388015AbfKEHRu (ORCPT + 99 others); Tue, 5 Nov 2019 02:17:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:37340 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387715AbfKEHRt (ORCPT ); Tue, 5 Nov 2019 02:17:49 -0500 Received: from aquarius.haifa.ibm.com (nesher1.haifa.il.ibm.com [195.110.40.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AD01A20818; Tue, 5 Nov 2019 07:17:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572938268; bh=0lGj0AI/IfAJbVTLRfdK6fD/lMA7GlT+qoua/5oNwys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d4AJP6GBs/LniVfFS2ahF6uWLgrZ8yBukH8Klz6vDbBKOn0ePFcVJ2qFDbpN2z0NH HW5NlgbElXreyTFqvbfIkv5/YUfXO1d9uGUOTusZma2qgZ/6YW8SE6IEfE1n1kLsZr hpzGaAvxkw5eDy0K3e0cvsqid8ZGBAggy+C0KmTA= From: Mike Rapoport To: linux-mm@kvack.org Cc: Andrew Morton , Anton Ivanov , Arnd Bergmann , "David S. Miller" , Geert Uytterhoeven , Greentime Hu , Greg Ungerer , Helge Deller , "James E.J. Bottomley" , Jeff Dike , "Kirill A. Shutemov" , Linus Torvalds , Mark Salter , Matt Turner , Michal Simek , Peter Rosin , Richard Weinberger , Rolf Eike Beer , Russell King , Sam Creasey , Vincent Chen , Vineet Gupta , Mike Rapoport , linux-alpha@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-parisc@vger.kernel.org, linux-um@lists.infradead.org, sparclinux@vger.kernel.org, Mike Rapoport Subject: [PATCH v4 13/13] mm: remove __ARCH_HAS_4LEVEL_HACK and include/asm-generic/4level-fixup.h Date: Tue, 5 Nov 2019 09:15:35 +0200 Message-Id: <1572938135-31886-14-git-send-email-rppt@kernel.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1572938135-31886-1-git-send-email-rppt@kernel.org> References: <1572938135-31886-1-git-send-email-rppt@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Rapoport There are no architectures that use include/asm-generic/4level-fixup.h therefore it can be removed along with __ARCH_HAS_4LEVEL_HACK define. Signed-off-by: Mike Rapoport --- include/asm-generic/4level-fixup.h | 40 -------------------------------------- include/asm-generic/tlb.h | 2 -- include/linux/mm.h | 10 +++++----- mm/memory.c | 8 -------- 4 files changed, 5 insertions(+), 55 deletions(-) delete mode 100644 include/asm-generic/4level-fixup.h diff --git a/include/asm-generic/4level-fixup.h b/include/asm-generic/4level-fixup.h deleted file mode 100644 index e3667c9..0000000 --- a/include/asm-generic/4level-fixup.h +++ /dev/null @@ -1,40 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _4LEVEL_FIXUP_H -#define _4LEVEL_FIXUP_H - -#define __ARCH_HAS_4LEVEL_HACK -#define __PAGETABLE_PUD_FOLDED 1 - -#define PUD_SHIFT PGDIR_SHIFT -#define PUD_SIZE PGDIR_SIZE -#define PUD_MASK PGDIR_MASK -#define PTRS_PER_PUD 1 - -#define pud_t pgd_t - -#define pmd_alloc(mm, pud, address) \ - ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \ - NULL: pmd_offset(pud, address)) - -#define pud_offset(pgd, start) (pgd) -#define pud_none(pud) 0 -#define pud_bad(pud) 0 -#define pud_present(pud) 1 -#define pud_ERROR(pud) do { } while (0) -#define pud_clear(pud) pgd_clear(pud) -#define pud_val(pud) pgd_val(pud) -#define pud_populate(mm, pud, pmd) pgd_populate(mm, pud, pmd) -#define pud_page(pud) pgd_page(pud) -#define pud_page_vaddr(pud) pgd_page_vaddr(pud) - -#undef pud_free_tlb -#define pud_free_tlb(tlb, x, addr) do { } while (0) -#define pud_free(mm, x) do { } while (0) -#define __pud_free_tlb(tlb, x, addr) do { } while (0) - -#undef pud_addr_end -#define pud_addr_end(addr, end) (end) - -#include - -#endif diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 04c0644..5e0c2d0 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -584,7 +584,6 @@ static inline void tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vm } while (0) #endif -#ifndef __ARCH_HAS_4LEVEL_HACK #ifndef pud_free_tlb #define pud_free_tlb(tlb, pudp, address) \ do { \ @@ -594,7 +593,6 @@ static inline void tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vm __pud_free_tlb(tlb, pudp, address); \ } while (0) #endif -#endif #ifndef __ARCH_HAS_5LEVEL_HACK #ifndef p4d_free_tlb diff --git a/include/linux/mm.h b/include/linux/mm.h index cc29227..477b52a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1850,12 +1850,12 @@ static inline void mm_dec_nr_ptes(struct mm_struct *mm) {} int __pte_alloc(struct mm_struct *mm, pmd_t *pmd); int __pte_alloc_kernel(pmd_t *pmd); +#if defined(CONFIG_MMU) + /* - * The following ifdef needed to get the 4level-fixup.h header to work. - * Remove it when 4level-fixup.h has been removed. + * The following ifdef needed to get the 5level-fixup.h header to work. + * Remove it when 5level-fixup.h has been removed. */ -#if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK) - #ifndef __ARCH_HAS_5LEVEL_HACK static inline p4d_t *p4d_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) @@ -1877,7 +1877,7 @@ static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long a return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))? NULL: pmd_offset(pud, address); } -#endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */ +#endif /* CONFIG_MMU */ #if USE_SPLIT_PTE_PTLOCKS #if ALLOC_SPLIT_PTLOCKS diff --git a/mm/memory.c b/mm/memory.c index b1ca51a..50300f0 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4095,19 +4095,11 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) smp_wmb(); /* See comment in __pte_alloc */ ptl = pud_lock(mm, pud); -#ifndef __ARCH_HAS_4LEVEL_HACK if (!pud_present(*pud)) { mm_inc_nr_pmds(mm); pud_populate(mm, pud, new); } else /* Another has populated it */ pmd_free(mm, new); -#else - if (!pgd_present(*pud)) { - mm_inc_nr_pmds(mm); - pgd_populate(mm, pud, new); - } else /* Another has populated it */ - pmd_free(mm, new); -#endif /* __ARCH_HAS_4LEVEL_HACK */ spin_unlock(ptl); return 0; } -- 2.7.4