[PATCH V2] arm64/mm: Drop <asm/page-def.h>

Subsystems: arm64 port (aarch64 architecture), the rest

STALE1806d

4 messages, 2 authors, 2021-09-01 · open the first message on its own page

[PATCH V2] arm64/mm: Drop <asm/page-def.h>

From: Anshuman Khandual <hidden>
Date: 2021-08-20 11:04:32

PAGE_SHIFT (PAGE_SIZE and PAGE_MASK) which is derived from ARM64_PAGE_SHIFT
should be moved into <asm/page.h> instead like in case for other platforms,
and then subsequently <asm/page-def.h> can be just dropped off completely.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <redacted>
---
This applies on 5.14-rc6.

Changes in V2:

- Moved PAGE_XXX macros into <asm/page.h> instead of <asm/pgtable-hwdef.h>
- Changed the commit message accordingly

Changes in V1:

https://lore.kernel.org/lkml/1629441331-19530-1-git-send-email-anshuman.khandual@arm.com/

 arch/arm64/include/asm/memory.h   |  2 +-
 arch/arm64/include/asm/page-def.h | 18 ------------------
 arch/arm64/include/asm/page.h     |  4 +++-
 3 files changed, 4 insertions(+), 20 deletions(-)
 delete mode 100644 arch/arm64/include/asm/page-def.h
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 824a3655dd93..649d26396f9e 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -12,7 +12,7 @@
 
 #include <linux/const.h>
 #include <linux/sizes.h>
-#include <asm/page-def.h>
+#include <asm/page.h>
 
 /*
  * Size of the PCI I/O space. This must remain a power of two so that
diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
deleted file mode 100644
index 2403f7b4cdbf..000000000000
--- a/arch/arm64/include/asm/page-def.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Based on arch/arm/include/asm/page.h
- *
- * Copyright (C) 1995-2003 Russell King
- * Copyright (C) 2017 ARM Ltd.
- */
-#ifndef __ASM_PAGE_DEF_H
-#define __ASM_PAGE_DEF_H
-
-#include <linux/const.h>
-
-/* PAGE_SHIFT determines the page size */
-#define PAGE_SHIFT		CONFIG_ARM64_PAGE_SHIFT
-#define PAGE_SIZE		(_AC(1, UL) << PAGE_SHIFT)
-#define PAGE_MASK		(~(PAGE_SIZE-1))
-
-#endif /* __ASM_PAGE_DEF_H */
diff --git a/arch/arm64/include/asm/page.h b/arch/arm64/include/asm/page.h
index 993a27ea6f54..95c58b00bb71 100644
--- a/arch/arm64/include/asm/page.h
+++ b/arch/arm64/include/asm/page.h
@@ -8,7 +8,9 @@
 #ifndef __ASM_PAGE_H
 #define __ASM_PAGE_H
 
-#include <asm/page-def.h>
+#define PAGE_SHIFT		CONFIG_ARM64_PAGE_SHIFT
+#define PAGE_SIZE		(_AC(1, UL) << PAGE_SHIFT)
+#define PAGE_MASK		(~(PAGE_SIZE-1))
 
 #ifndef __ASSEMBLY__
 
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH V2] arm64/mm: Drop <asm/page-def.h>

From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2021-08-20 18:35:37

On Fri, Aug 20, 2021 at 04:35:16PM +0530, Anshuman Khandual wrote:
PAGE_SHIFT (PAGE_SIZE and PAGE_MASK) which is derived from ARM64_PAGE_SHIFT
should be moved into <asm/page.h> instead like in case for other platforms,
and then subsequently <asm/page-def.h> can be just dropped off completely.
These were moved to page-def.h as part of commit b6531456ba27 ("arm64:
factor out PAGE_* and CONT_* definitions") to avoid some circular header
dependencies.
quoted hunk
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 824a3655dd93..649d26396f9e 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -12,7 +12,7 @@
 
 #include <linux/const.h>
 #include <linux/sizes.h>
-#include <asm/page-def.h>
+#include <asm/page.h>
In 5.14-rc3, asm/page.h still includes asm/memory.h.

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH V2] arm64/mm: Drop <asm/page-def.h>

From: Anshuman Khandual <hidden>
Date: 2021-08-31 03:44:34


On 8/21/21 12:05 AM, Catalin Marinas wrote:
On Fri, Aug 20, 2021 at 04:35:16PM +0530, Anshuman Khandual wrote:
quoted
PAGE_SHIFT (PAGE_SIZE and PAGE_MASK) which is derived from ARM64_PAGE_SHIFT
should be moved into <asm/page.h> instead like in case for other platforms,
and then subsequently <asm/page-def.h> can be just dropped off completely.
These were moved to page-def.h as part of commit b6531456ba27 ("arm64:
factor out PAGE_* and CONT_* definitions") to avoid some circular header
dependencies.
quoted
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 824a3655dd93..649d26396f9e 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -12,7 +12,7 @@
 
 #include <linux/const.h>
 #include <linux/sizes.h>
-#include <asm/page-def.h>
+#include <asm/page.h>
In 5.14-rc3, asm/page.h still includes asm/memory.h.
Dropping <asm/memory.h> from <asm/page.h> does not seem to cause
any problem, will change that. Afterwards build tested it across
page sizes and also with some random configs. Is that circular
dependency still present ? Also wondering why was <asm/memory.h>
included in <asm/page.h> to begin with ?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH V2] arm64/mm: Drop <asm/page-def.h>

From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2021-09-01 13:28:19

On Tue, Aug 31, 2021 at 09:15:30AM +0530, Anshuman Khandual wrote:
On 8/21/21 12:05 AM, Catalin Marinas wrote:
quoted
On Fri, Aug 20, 2021 at 04:35:16PM +0530, Anshuman Khandual wrote:
quoted
PAGE_SHIFT (PAGE_SIZE and PAGE_MASK) which is derived from ARM64_PAGE_SHIFT
should be moved into <asm/page.h> instead like in case for other platforms,
and then subsequently <asm/page-def.h> can be just dropped off completely.
These were moved to page-def.h as part of commit b6531456ba27 ("arm64:
factor out PAGE_* and CONT_* definitions") to avoid some circular header
dependencies.
quoted
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 824a3655dd93..649d26396f9e 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -12,7 +12,7 @@
 
 #include <linux/const.h>
 #include <linux/sizes.h>
-#include <asm/page-def.h>
+#include <asm/page.h>
In 5.14-rc3, asm/page.h still includes asm/memory.h.
Dropping <asm/memory.h> from <asm/page.h> does not seem to cause
any problem, will change that. Afterwards build tested it across
page sizes and also with some random configs. Is that circular
dependency still present ? Also wondering why was <asm/memory.h>
included in <asm/page.h> to begin with ?
asm/memory.h is not included by any of the generic files, however it has
essential definitions like PAGE_OFFSET, THREAD_SIZE. The expectations
from the arch code is to have these defined in asm/page.h (see the
asm-generic/page.h), hence the inclusion. It probably gets included by
other arch headers and that's why you don't get any errors, but I
wouldn't rely on this.

I don't remember how we ended up with a separate memory.h file. On arm64
we inherited it from arch/arm.

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help