stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Christophe Leroy <christophe.leroy@c-s.fr>,
	Nicholas Piggin <npiggin@gmail.com>,
	Michael Ellerman <mpe@ellerman.id.au>
Subject: [PATCH 4.14 50/52] powerpc/mm/slice: create header files dedicated to slices
Date: Mon,  4 Jun 2018 08:58:45 +0200	[thread overview]
Message-ID: <20180604065608.612412572@linuxfoundation.org> (raw)
In-Reply-To: <20180604065606.532044490@linuxfoundation.org>

4.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Christophe Leroy <christophe.leroy@c-s.fr>

commit a3286f05bc5a5bc7fc73a9783ec89de78fcd07f8 upstream.

In preparation for the following patch which will enhance 'slices'
for supporting PPC32 in order to fix an issue on hugepages on 8xx,
this patch takes out of page*.h all bits related to 'slices' and put
them into newly created slice.h header files.
While common parts go into asm/slice.h, subarch specific
parts go into respective books3s/64/slice.c and nohash/64/slice.c
'slices'

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


---
 arch/powerpc/include/asm/book3s/64/slice.h |   27 +++++++++++++
 arch/powerpc/include/asm/nohash/64/slice.h |   12 +++++
 arch/powerpc/include/asm/page.h            |    1 
 arch/powerpc/include/asm/page_64.h         |   59 -----------------------------
 arch/powerpc/include/asm/slice.h           |   40 +++++++++++++++++++
 5 files changed, 80 insertions(+), 59 deletions(-)

--- /dev/null
+++ b/arch/powerpc/include/asm/book3s/64/slice.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_POWERPC_BOOK3S_64_SLICE_H
+#define _ASM_POWERPC_BOOK3S_64_SLICE_H
+
+#ifdef CONFIG_PPC_MM_SLICES
+
+#define SLICE_LOW_SHIFT		28
+#define SLICE_LOW_TOP		(0x100000000ul)
+#define SLICE_NUM_LOW		(SLICE_LOW_TOP >> SLICE_LOW_SHIFT)
+#define GET_LOW_SLICE_INDEX(addr)	((addr) >> SLICE_LOW_SHIFT)
+
+#define SLICE_HIGH_SHIFT	40
+#define SLICE_NUM_HIGH		(H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT)
+#define GET_HIGH_SLICE_INDEX(addr)	((addr) >> SLICE_HIGH_SHIFT)
+
+#else /* CONFIG_PPC_MM_SLICES */
+
+#define get_slice_psize(mm, addr)	((mm)->context.user_psize)
+#define slice_set_user_psize(mm, psize)		\
+do {						\
+	(mm)->context.user_psize = (psize);	\
+	(mm)->context.sllp = SLB_VSID_USER | mmu_psize_defs[(psize)].sllp; \
+} while (0)
+
+#endif /* CONFIG_PPC_MM_SLICES */
+
+#endif /* _ASM_POWERPC_BOOK3S_64_SLICE_H */
--- /dev/null
+++ b/arch/powerpc/include/asm/nohash/64/slice.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_POWERPC_NOHASH_64_SLICE_H
+#define _ASM_POWERPC_NOHASH_64_SLICE_H
+
+#ifdef CONFIG_PPC_64K_PAGES
+#define get_slice_psize(mm, addr)	MMU_PAGE_64K
+#else /* CONFIG_PPC_64K_PAGES */
+#define get_slice_psize(mm, addr)	MMU_PAGE_4K
+#endif /* !CONFIG_PPC_64K_PAGES */
+#define slice_set_user_psize(mm, psize)	do { BUG(); } while (0)
+
+#endif /* _ASM_POWERPC_NOHASH_64_SLICE_H */
--- a/arch/powerpc/include/asm/page.h
+++ b/arch/powerpc/include/asm/page.h
@@ -344,5 +344,6 @@ typedef struct page *pgtable_t;
 
 #include <asm-generic/memory_model.h>
 #endif /* __ASSEMBLY__ */
+#include <asm/slice.h>
 
 #endif /* _ASM_POWERPC_PAGE_H */
--- a/arch/powerpc/include/asm/page_64.h
+++ b/arch/powerpc/include/asm/page_64.h
@@ -86,65 +86,6 @@ extern u64 ppc64_pft_size;
 
 #endif /* __ASSEMBLY__ */
 
-#ifdef CONFIG_PPC_MM_SLICES
-
-#define SLICE_LOW_SHIFT		28
-#define SLICE_HIGH_SHIFT	40
-
-#define SLICE_LOW_TOP		(0x100000000ul)
-#define SLICE_NUM_LOW		(SLICE_LOW_TOP >> SLICE_LOW_SHIFT)
-#define SLICE_NUM_HIGH		(H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT)
-
-#define GET_LOW_SLICE_INDEX(addr)	((addr) >> SLICE_LOW_SHIFT)
-#define GET_HIGH_SLICE_INDEX(addr)	((addr) >> SLICE_HIGH_SHIFT)
-
-#ifndef __ASSEMBLY__
-struct mm_struct;
-
-extern unsigned long slice_get_unmapped_area(unsigned long addr,
-					     unsigned long len,
-					     unsigned long flags,
-					     unsigned int psize,
-					     int topdown);
-
-extern unsigned int get_slice_psize(struct mm_struct *mm,
-				    unsigned long addr);
-
-extern void slice_set_user_psize(struct mm_struct *mm, unsigned int psize);
-extern void slice_set_range_psize(struct mm_struct *mm, unsigned long start,
-				  unsigned long len, unsigned int psize);
-
-#endif /* __ASSEMBLY__ */
-#else
-#define slice_init()
-#ifdef CONFIG_PPC_STD_MMU_64
-#define get_slice_psize(mm, addr)	((mm)->context.user_psize)
-#define slice_set_user_psize(mm, psize)		\
-do {						\
-	(mm)->context.user_psize = (psize);	\
-	(mm)->context.sllp = SLB_VSID_USER | mmu_psize_defs[(psize)].sllp; \
-} while (0)
-#else /* CONFIG_PPC_STD_MMU_64 */
-#ifdef CONFIG_PPC_64K_PAGES
-#define get_slice_psize(mm, addr)	MMU_PAGE_64K
-#else /* CONFIG_PPC_64K_PAGES */
-#define get_slice_psize(mm, addr)	MMU_PAGE_4K
-#endif /* !CONFIG_PPC_64K_PAGES */
-#define slice_set_user_psize(mm, psize)	do { BUG(); } while(0)
-#endif /* !CONFIG_PPC_STD_MMU_64 */
-
-#define slice_set_range_psize(mm, start, len, psize)	\
-	slice_set_user_psize((mm), (psize))
-#endif /* CONFIG_PPC_MM_SLICES */
-
-#ifdef CONFIG_HUGETLB_PAGE
-
-#ifdef CONFIG_PPC_MM_SLICES
-#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
-#endif
-
-#endif /* !CONFIG_HUGETLB_PAGE */
-
 #define VM_DATA_DEFAULT_FLAGS \
 	(is_32bit_task() ? \
 	 VM_DATA_DEFAULT_FLAGS32 : VM_DATA_DEFAULT_FLAGS64)
--- /dev/null
+++ b/arch/powerpc/include/asm/slice.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_POWERPC_SLICE_H
+#define _ASM_POWERPC_SLICE_H
+
+#ifdef CONFIG_PPC_BOOK3S_64
+#include <asm/book3s/64/slice.h>
+#else
+#include <asm/nohash/64/slice.h>
+#endif
+
+#ifdef CONFIG_PPC_MM_SLICES
+
+#ifdef CONFIG_HUGETLB_PAGE
+#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
+#endif
+#define HAVE_ARCH_UNMAPPED_AREA
+#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
+
+#ifndef __ASSEMBLY__
+
+struct mm_struct;
+
+unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
+				      unsigned long flags, unsigned int psize,
+				      int topdown);
+
+unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr);
+
+void slice_set_user_psize(struct mm_struct *mm, unsigned int psize);
+void slice_set_range_psize(struct mm_struct *mm, unsigned long start,
+			   unsigned long len, unsigned int psize);
+#endif /* __ASSEMBLY__ */
+
+#else /* CONFIG_PPC_MM_SLICES */
+
+#define slice_set_range_psize(mm, start, len, psize)	\
+	slice_set_user_psize((mm), (psize))
+#endif /* CONFIG_PPC_MM_SLICES */
+
+#endif /* _ASM_POWERPC_SLICE_H */

  parent reply	other threads:[~2018-06-04  7:02 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-04  6:57 [PATCH 4.14 00/52] 4.14.48-stable review Greg Kroah-Hartman
2018-06-04  6:57 ` [PATCH 4.14 01/52] fix io_destroy()/aio_complete() race Greg Kroah-Hartman
2018-06-04  6:57 ` [PATCH 4.14 02/52] mm: fix the NULL mapping case in __isolate_lru_page() Greg Kroah-Hartman
2018-06-04  6:57 ` [PATCH 4.14 03/52] objtool: Support GCC 8s cold subfunctions Greg Kroah-Hartman
2018-06-04  6:57 ` [PATCH 4.14 04/52] objtool: Support GCC 8 switch tables Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 05/52] objtool: Detect RIP-relative switch table references Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 06/52] objtool: Detect RIP-relative switch table references, part 2 Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 07/52] objtool: Fix "noreturn" detection for recursive sibling calls Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 08/52] x86/mce/AMD: Carve out SMCA get_block_address() code Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 09/52] x86/MCE/AMD: Cache SMCA MISC block addresses Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 10/52] Revert "pinctrl: msm: Use dynamic GPIO numbering" Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 11/52] PCI: hv: Fix 2 hang issues in hv_compose_msi_msg() Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 12/52] xfs: convert XFS_AGFL_SIZE to a helper function Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 13/52] xfs: detect agfl count corruption and reset agfl Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 14/52] Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 15/52] Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints " Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 16/52] Input: synaptics - add Intertouch support on X1 Carbon 6th and X280 Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 17/52] Input: synaptics - add Lenovo 80 series ids to SMBus Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 18/52] Input: elan_i2c_smbus - fix corrupted stack Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 19/52] tracing: Fix crash when freeing instances with event triggers Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 20/52] tracing: Make the snapshot trigger work with instances Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 21/52] selinux: KASAN: slab-out-of-bounds in xattr_getsecurity Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 22/52] cfg80211: further limit wiphy names to 64 bytes Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 23/52] kbuild: clang: remove crufty HOSTCFLAGS Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 24/52] drm/i915: Always sanity check engine state upon idling Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 25/52] dma-buf: remove redundant initialization of sg_table Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 26/52] drm/amd/powerplay: Fix enum mismatch Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 27/52] rtlwifi: rtl8192cu: Remove variable self-assignment in rf.c Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 28/52] ASoC: Intel: sst: remove redundant variable dma_dev_name Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 29/52] platform/chrome: cros_ec_lpc: remove redundant pointer request Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 30/52] kbuild: clang: disable unused variable warnings only when constant Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 31/52] tcp: avoid integer overflows in tcp_rcv_space_adjust() Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 32/52] iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 33/52] iio:buffer: make length types match kfifo types Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 34/52] iio:kfifo_buf: check for uint overflow Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 35/52] iio: adc: select buffer for at91-sama5d2_adc Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 36/52] MIPS: lantiq: gphy: Drop reboot/remove reset asserts Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 37/52] MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 38/52] MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 39/52] scsi: scsi_transport_srp: Fix shost to rport translation Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 40/52] stm class: Use vmalloc for the master map Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 41/52] hwtracing: stm: fix build error on some arches Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 42/52] IB/core: Fix error code for invalid GID entry Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 43/52] mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty() Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 44/52] Revert "rt2800: use TXOP_BACKOFF for probe frames" Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 45/52] intel_th: Use correct device when freeing buffers Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 49/52] powerpc/mm/slice: Remove intermediate bitmap copy Greg Kroah-Hartman
2018-06-04  6:58 ` Greg Kroah-Hartman [this message]
2018-06-04  6:58 ` [PATCH 4.14 51/52] powerpc/mm/slice: Enhance for supporting PPC32 Greg Kroah-Hartman
2018-06-04  6:58 ` [PATCH 4.14 52/52] powerpc/mm/slice: Fix hugepage allocation at hint address on 8xx Greg Kroah-Hartman
2018-06-04 13:19 ` [PATCH 4.14 00/52] 4.14.48-stable review Guenter Roeck
2018-06-04 19:45 ` Shuah Khan
2018-06-05  6:20 ` Naresh Kamboju
     [not found] ` <5b15302c.1c69fb81.bb82c.0d31@mx.google.com>
     [not found]   ` <7h602ykv08.fsf@baylibre.com>
2018-06-05  8:27     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180604065608.612412572@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=christophe.leroy@c-s.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).