Anshuman Khandual
fb42f8b729
perf branch: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform
...
This updates the perf tool with arch specific branch type classification
used for BRBE on arm64 platform as added in the kernel earlier.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James Clark <james.clark@arm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Suzuki Poulouse <suzuki.poulose@arm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-9-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:20 -03:00
Anshuman Khandual
bcb96ce6d2
perf branch: Add branch privilege information request flag
...
This updates the perf tools with branch privilege information request flag
i.e PERF_SAMPLE_BRANCH_PRIV_SAVE that has been added earlier in the kernel.
This also updates 'perf record' documentation, branch_modes[], and generic
branch privilege level enumeration as added earlier in the kernel.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James Clark <james.clark@arm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Suzuki Poulouse <suzuki.poulose@arm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-8-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:20 -03:00
Anshuman Khandual
0ddea8e2a0
perf branch: Extend branch type classification
...
This updates the perf tool with generic branch type classification with new
ABI extender place holder i.e PERF_BR_EXTEND_ABI, the new 4 bit branch type
field i.e perf_branch_entry.new_type, new generic page fault related branch
types and some arch specific branch types as added earlier in the kernel.
Committer note:
Add an extra entry to the branch_type_name array to cope with
PERF_BR_EXTEND_ABI, to address build warnings on some compiler/systems,
like:
75 8.89 ubuntu:20.04-x-powerpc64el : FAIL gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04)
inlined from 'branch_type_stat_display' at util/branch.c:152:4:
/usr/powerpc64le-linux-gnu/include/bits/stdio2.h:100:10: error: '%8s' directive argument is null [-Werror=format-overflow=]
100 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: James Clark <james.clark@arm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Stephen Rothwell <sfr@canb.auug.org.au >
Cc: Suzuki Poulouse <suzuki.poulose@arm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-7-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:20 -03:00
Anshuman Khandual
1c96b6e45f
perf branch: Add system error and not in transaction branch types
...
This updates the perf tool with generic branch type classification with
two new branch types i.e system error (PERF_BR_SERROR) and not in
transaction (PERF_BR_NO_TX) which got updated earlier in the kernel.
This also updates corresponding branch type strings in
branch_type_name().
Committer notes:
At perf tools merge time this is only on PeterZ's tree, at:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git perf/core
So for testing one has to build a kernel with that branch, then test
the tooling side from:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git perf/core
Reviewed-by: James Clark <james.clark@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Suzuki Poulouse <suzuki.poulose@arm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220824044822.70230-6-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-10-04 08:55:20 -03:00
Anshuman Khandual
88081cfb69
x86/perf: Assert all platform event flags are within PERF_EVENT_FLAG_ARCH
...
Ensure all platform specific event flags are within PERF_EVENT_FLAG_ARCH.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220907091924.439193-5-anshuman.khandual@arm.com
2022-09-07 21:54:01 +02:00
Anshuman Khandual
91207f6261
arm64/perf: Assert all platform event flags are within PERF_EVENT_FLAG_ARCH
...
Ensure all platform specific event flags are within PERF_EVENT_FLAG_ARCH.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220907091924.439193-4-anshuman.khandual@arm.com
2022-09-07 21:54:01 +02:00
Anshuman Khandual
f67dd218fa
perf/core: Assert PERF_EVENT_FLAG_ARCH does not overlap with generic flags
...
This just ensures that PERF_EVENT_FLAG_ARCH does not overlap with generic
hardware event flags.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220907091924.439193-3-anshuman.khandual@arm.com
2022-09-07 21:54:00 +02:00
Anshuman Khandual
7517f08b9a
perf/core: Expand PERF_EVENT_FLAG_ARCH
...
Two hardware event flags on x86 platform has overshot PERF_EVENT_FLAG_ARCH
(0x0000ffff). These flags are PERF_X86_EVENT_PEBS_LAT_HYBRID (0x20000) and
PERF_X86_EVENT_AMD_BRS (0x10000). Lets expand PERF_EVENT_FLAG_ARCH mask to
accommodate those flags, and also create room for two more in the future.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220907091924.439193-2-anshuman.khandual@arm.com
2022-09-07 21:54:00 +02:00
Anshuman Khandual
03b02db93b
perf: Consolidate branch sample filter helpers
...
Besides the branch type filtering requests, 'event.attr.branch_sample_type'
also contains various flags indicating which additional information should
be captured, along with the base branch record. These flags help configure
the underlying hardware, and capture the branch records appropriately when
required e.g after PMU interrupt. But first, this moves an existing helper
perf_sample_save_hw_index() into the header before adding some more helpers
for other branch sample filter flags.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lkml.kernel.org/r/20220906084414.396220-1-anshuman.khandual@arm.com
2022-09-07 21:54:00 +02:00
Anshuman Khandual
f4054e5225
perf: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform
...
BRBE captured branch types will overflow perf_branch_entry.type and generic
branch types in perf_branch_entry.new_type. So override each available arch
specific branch type in the following manner to comprehensively process all
reported branch types in BRBE.
PERF_BR_ARM64_FIQ PERF_BR_NEW_ARCH_1
PERF_BR_ARM64_DEBUG_HALT PERF_BR_NEW_ARCH_2
PERF_BR_ARM64_DEBUG_EXIT PERF_BR_NEW_ARCH_3
PERF_BR_ARM64_DEBUG_INST PERF_BR_NEW_ARCH_4
PERF_BR_ARM64_DEBUG_DATA PERF_BR_NEW_ARCH_5
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220824044822.70230-5-anshuman.khandual@arm.com
2022-08-29 09:42:42 +02:00
Anshuman Khandual
5402d25aa5
perf: Capture branch privilege information
...
Platforms like arm64 could capture privilege level information for all the
branch records. Hence this adds a new element in the struct branch_entry to
record the privilege level information, which could be requested through a
new event.attr.branch_sample_type based flag PERF_SAMPLE_BRANCH_PRIV_SAVE.
This flag helps user choose whether privilege information is captured.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220824044822.70230-4-anshuman.khandual@arm.com
2022-08-29 09:42:42 +02:00
Anshuman Khandual
b190bc4ac9
perf: Extend branch type classification
...
branch_entry.type now has ran out of space to accommodate more branch types
classification. This will prevent perf branch stack implementation on arm64
(via BRBE) to capture all available branch types. Extending this bit field
i.e branch_entry.type [4 bits] is not an option as it will break user space
ABI both for little and big endian perf tools.
Extend branch classification with a new field branch_entry.new_type via a
new branch type PERF_BR_EXTEND_ABI in branch_entry.type. Perf tools which
could decode PERF_BR_EXTEND_ABI, will then parse branch_entry.new_type as
well.
branch_entry.new_type is a 4 bit field which can hold upto 16 branch types.
The first three branch types will hold various generic page faults followed
by five architecture specific branch types, which can be overridden by the
platform for specific use cases. These architecture specific branch types
gets overridden on arm64 platform for BRBE implementation.
New generic branch types
- PERF_BR_NEW_FAULT_ALGN
- PERF_BR_NEW_FAULT_DATA
- PERF_BR_NEW_FAULT_INST
New arch specific branch types
- PERF_BR_NEW_ARCH_1
- PERF_BR_NEW_ARCH_2
- PERF_BR_NEW_ARCH_3
- PERF_BR_NEW_ARCH_4
- PERF_BR_NEW_ARCH_5
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220824044822.70230-3-anshuman.khandual@arm.com
2022-08-29 09:42:42 +02:00
Anshuman Khandual
a724ec8296
perf: Add system error and not in transaction branch types
...
This expands generic branch type classification by adding two more entries
there in i.e system error and not in transaction. This also updates the x86
implementation to process X86_BR_NO_TX records as appropriate. This changes
branch types reported to user space on x86 platform but it should not be a
problem. The possible scenarios and impacts are enumerated here.
--------------------------------------------------------------------------
| kernel | perf tool | Impact |
--------------------------------------------------------------------------
| old | old | Works as before |
--------------------------------------------------------------------------
| old | new | PERF_BR_UNKNOWN is processed |
--------------------------------------------------------------------------
| new | old | PERF_BR_NO_TX is blocked via old PERF_BR_MAX |
--------------------------------------------------------------------------
| new | new | PERF_BR_NO_TX is recognized |
--------------------------------------------------------------------------
When PERF_BR_NO_TX is blocked via old PERF_BR_MAX (new kernel with old perf
tool) the user space might throw up an warning complaining about an
unrecognized branch types being reported, but it's expected. PERF_BR_SERROR
& PERF_BR_NO_TX branch types will be used for BRBE implementation on arm64
platform.
PERF_BR_NO_TX complements 'abort' and 'in_tx' elements in perf_branch_entry
which represent other transaction states for a given branch record. Because
this completes the transaction state classification.
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: James Clark <james.clark@arm.com >
Link: https://lkml.kernel.org/r/20220824044822.70230-2-anshuman.khandual@arm.com
2022-08-29 09:42:41 +02:00
Anshuman Khandual
92f2b8bafa
drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX
...
The arm_spe_pmu driver will enable SYS_PMSCR_EL1.CX in order to add CONTEXT
packets into the traces, if the owner of the perf event runs with required
capabilities i.e CAP_PERFMON or CAP_SYS_ADMIN via perfmon_capable() helper.
The value of this bit is computed in the arm_spe_event_to_pmscr() function
but the check for capabilities happens in the pmu event init callback i.e
arm_spe_pmu_event_init(). This suggests that the value of the CX bit should
remain consistent for the duration of the perf session.
However, the function arm_spe_event_to_pmscr() may be called later during
the event start callback i.e arm_spe_pmu_start() when the "current" process
is not the owner of the perf session, hence the CX bit setting is currently
not consistent.
One way to fix this, is by caching the required value of the CX bit during
the initialization of the PMU event, so that it remains consistent for the
duration of the session. It uses currently unused 'event->hw.flags' element
to cache perfmon_capable() value, which can be referred during event start
callback to compute SYS_PMSCR_EL1.CX. This ensures consistent availability
of context packets in the trace as per event owner capabilities.
Drop BIT(SYS_PMSCR_EL1_CX_SHIFT) check in arm_spe_pmu_event_init(), because
now CX bit cannot be set in arm_spe_event_to_pmscr() with perfmon_capable()
disabled.
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Alexey Budankov <alexey.budankov@linux.intel.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Fixes: d5d9696b03 ("drivers/perf: Add support for ARMv8.2 Statistical Profiling Extension")
Reported-by: German Gomez <german.gomez@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Link: https://lore.kernel.org/r/20220714061302.2715102-1-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2022-07-19 18:50:09 +01:00
Anshuman Khandual
3d923c5f1e
mm/mmap: drop ARCH_HAS_VM_GET_PAGE_PROT
...
Now all the platforms enable ARCH_HAS_GET_PAGE_PROT. They define and
export own vm_get_page_prot() whether custom or standard
DECLARE_VM_GET_PAGE_PROT. Hence there is no need for default generic
fallback for vm_get_page_prot(). Just drop this fallback and also
ARCH_HAS_GET_PAGE_PROT mechanism.
Link: https://lkml.kernel.org/r/20220711070600.2378316-27-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:41 -07:00
Anshuman Khandual
34516fd83f
sh/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-26-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Cc: Rich Felker <dalias@libc.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:41 -07:00
Anshuman Khandual
91a8da021c
um/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-25-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:41 -07:00
Anshuman Khandual
ca26f936f5
arm/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-24-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:41 -07:00
Anshuman Khandual
5d260625b1
arc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-23-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
6d0b922545
m68k/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-22-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
499c1dd92e
mips/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-21-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
c619b82c55
ia64/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-20-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
fd5d210fa6
s390/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-19-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
0d70836013
csky/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-18-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Guo Ren <guoren@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:40 -07:00
Anshuman Khandual
4147b5e2d5
riscv/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-17-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
53e2fdee5f
nios2/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-16-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Dinh Nguyen <dinguyen@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
4975f604fe
alpha/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-15-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
252358f1a1
parisc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-14-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
b2022dcf45
hexagon/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-13-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Brian Cain <bcain@quicinc.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
2de9eae10d
xtensa/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-12-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Chris Zankel <chris@zankel.net >
Cc: Guo Ren <guoren@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:39 -07:00
Anshuman Khandual
e4e4b99b80
openrisc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-11-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Stafford Horne <shorne@gmail.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:38 -07:00
Anshuman Khandual
f6d1e19c20
loongarch/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-10-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:38 -07:00
Anshuman Khandual
fa3f9f4a91
microblaze/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This enables ARCH_HAS_VM_GET_PAGE_PROT on the platform and exports
standard vm_get_page_prot() implementation via DECLARE_VM_GET_PAGE_PROT,
which looks up a private and static protection_map[] array. Subsequently
all __SXXX and __PXXX macros can be dropped which are no longer needed.
Link: https://lkml.kernel.org/r/20220711070600.2378316-9-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:38 -07:00
Anshuman Khandual
09095f7413
mm/mmap: build protect protection_map[] with ARCH_HAS_VM_GET_PAGE_PROT
...
Now that protection_map[] has been moved inside those platforms that
enable ARCH_HAS_VM_GET_PAGE_PROT. Hence generic protection_map[] array
now can be protected with CONFIG_ARCH_HAS_VM_GET_PAGE_PROT intead of
__P000.
Link: https://lkml.kernel.org/r/20220711070600.2378316-8-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:38 -07:00
Anshuman Khandual
4867fbbdd6
x86/mm: move protection_map[] inside the platform
...
This moves protection_map[] inside the platform and makes it a static.
This also defines a helper function add_encrypt_protection_map() that can
update the protection_map[] array with pgprot_encrypted().
Link: https://lkml.kernel.org/r/20220711070600.2378316-7-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:38 -07:00
Anshuman Khandual
42251045cc
arm64/mm: move protection_map[] inside the platform
...
This moves protection_map[] inside the platform and makes it a static.
Link: https://lkml.kernel.org/r/20220711070600.2378316-6-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:37 -07:00
Anshuman Khandual
25740d31ee
sparc/mm: move protection_map[] inside the platform
...
This moves protection_map[] inside the platform and while here, also
enable ARCH_HAS_VM_GET_PAGE_PROT on 32 bit platforms via
DECLARE_VM_GET_PAGE_PROT.
Link: https://lkml.kernel.org/r/20220711070600.2378316-5-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:37 -07:00
Anshuman Khandual
6eac1eaf21
powerpc/mm: move protection_map[] inside the platform
...
This moves protection_map[] inside the platform and while here, also
enable ARCH_HAS_VM_GET_PAGE_PROT on 32 bit and nohash 64 (aka book3e/64)
platforms via DECLARE_VM_GET_PAGE_PROT.
Link: https://lkml.kernel.org/r/20220711070600.2378316-4-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:37 -07:00
Anshuman Khandual
43957b5d11
mm/mmap: define DECLARE_VM_GET_PAGE_PROT
...
This just converts the generic vm_get_page_prot() implementation into a
new macro i.e DECLARE_VM_GET_PAGE_PROT which later can be used across
platforms when enabling them with ARCH_HAS_VM_GET_PAGE_PROT. This does
not create any functional change.
Link: https://lkml.kernel.org/r/20220711070600.2378316-3-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Suggested-by: Christoph Hellwig <hch@infradead.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:37 -07:00
Anshuman Khandual
840532711d
mm/mmap: build protect protection_map[] with __P000
...
Patch series "mm/mmap: Drop __SXXX/__PXXX macros from across platforms",
v7.
__SXXX/__PXXX macros are unnecessary abstraction layer in creating the
generic protection_map[] array which is used for vm_get_page_prot(). This
abstraction layer can be avoided, if the platforms just define the array
protection_map[] for all possible vm_flags access permission combinations
and also export vm_get_page_prot() implementation.
This series drops __SXXX/__PXXX macros from across platforms in the tree.
First it build protects generic protection_map[] array with '#ifdef
__P000' and moves it inside platforms which enable
ARCH_HAS_VM_GET_PAGE_PROT. Later this build protects same array with
'#ifdef ARCH_HAS_VM_GET_PAGE_PROT' and moves inside remaining platforms
while enabling ARCH_HAS_VM_GET_PAGE_PROT. This adds a new macro
DECLARE_VM_GET_PAGE_PROT defining the current generic vm_get_page_prot(),
in order for it to be reused on platforms that do not require custom
implementation. Finally, ARCH_HAS_VM_GET_PAGE_PROT can just be dropped,
as all platforms now define and export vm_get_page_prot(), via looking up
a private and static protection_map[] array. protection_map[] data type
has been changed as 'static const' on all platforms that do not change it
during boot.
This patch (of 26):
Build protect generic protection_map[] array with __P000, so that it can
be moved inside all the platforms one after the other. Otherwise there
will be build failures during this process.
CONFIG_ARCH_HAS_VM_GET_PAGE_PROT cannot be used for this purpose as only
certain platforms enable this config now.
Link: https://lkml.kernel.org/r/20220711070600.2378316-1-anshuman.khandual@arm.com
Link: https://lkml.kernel.org/r/20220711070600.2378316-2-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Chris Zankel <chris@zankel.net >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Rich Felker <dalias@libc.org >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-07-17 17:14:37 -07:00
Anshuman Khandual
4890cc18f9
arm64/mm: Define defer_reserve_crashkernel()
...
Crash kernel memory reservation gets deferred, when either CONFIG_ZONE_DMA
or CONFIG_ZONE_DMA32 config is enabled on the platform. This deferral also
impacts overall linear mapping creation including the crash kernel itself.
Just encapsulate this deferral check in a new helper for better clarity.
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 <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/20220705062556.1845734-1-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2022-07-05 11:43:47 +01:00
Anshuman Khandual
943189db4f
mm/memory_hotplug: drop 'reason' argument from check_pfn_span()
...
In check_pfn_span(), a 'reason' string is being used to recreate the
caller function name, while printing the warning message. It is really
unnecessary as the warning message could just be printed inside the caller
depending on the return code. Currently there are just two callers for
check_pfn_span() i.e __add_pages() and __remove_pages(). Let's clean this
up.
Link: https://lkml.kernel.org/r/20220531090441.170650-1-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Oscar Salvador <osalvador@suse.de >
Reviewed-by: David Hildenbrand <david@redhat.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-06-16 19:48:28 -07:00
Anshuman Khandual
fb396bb459
arm64/hugetlb: Drop TLB flush from get_clear_flush()
...
This drops now redundant TLB flush in get_clear_flush() which is no longer
required after recent commit 697a1d44af ("tlb: hugetlb: Add more sizes to
tlb_remove_huge_tlb_entry"). It also renames this function i.e dropping off
'_flush' and replacing it with '__contig' as appropriate.
Cc: Will Deacon <will@kernel.org >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/20220510043930.2410985-1-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2022-05-11 13:53:19 +01:00
Anshuman Khandual
3afa793082
mm/mmap: drop arch_vm_get_page_pgprot()
...
There are no platforms left which use arch_vm_get_page_prot(). Just drop
generic arch_vm_get_page_prot().
Link: https://lkml.kernel.org/r/20220414062125.609297-8-anshuman.khandual@arm.com
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:14 -07:00
Anshuman Khandual
5dcfc6a1cc
mm/mmap: drop arch_filter_pgprot()
...
There are no platforms left which subscribe ARCH_HAS_FILTER_PGPROT. Hence
drop generic arch_filter_pgprot() and also config ARCH_HAS_FILTER_PGPROT.
Link: https://lkml.kernel.org/r/20220414062125.609297-7-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:13 -07:00
Anshuman Khandual
91d4ce985f
sparc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This defines and exports a platform specific custom vm_get_page_prot() via
subscribing ARCH_HAS_VM_GET_PAGE_PROT. It localizes
arch_vm_get_page_prot() as sparc_vm_get_page_prot() and moves near
vm_get_page_prot().
Link: https://lkml.kernel.org/r/20220414062125.609297-5-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: David S. Miller <davem@davemloft.net >
Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:13 -07:00
Anshuman Khandual
b3aca728fb
arm64/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This defines and exports a platform specific custom vm_get_page_prot() via
subscribing ARCH_HAS_VM_GET_PAGE_PROT. It localizes arch_vm_get_page_prot()
and moves it near vm_get_page_prot().
Link: https://lkml.kernel.org/r/20220414062125.609297-4-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:13 -07:00
Anshuman Khandual
634093c59a
powerpc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
...
This defines and exports a platform specific custom vm_get_page_prot() via
subscribing ARCH_HAS_VM_GET_PAGE_PROT. While here, this also localizes
arch_vm_get_page_prot() as __vm_get_page_prot() and moves it near
vm_get_page_prot().
Link: https://lkml.kernel.org/r/20220414062125.609297-3-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:13 -07:00
Anshuman Khandual
67436193c2
mm/mmap: add new config ARCH_HAS_VM_GET_PAGE_PROT
...
Patch series "mm/mmap: Drop arch_vm_get_page_prot() and arch_filter_pgprot()", v7.
protection_map[] is an array based construct that translates given
vm_flags combination. This array contains page protection map, which is
populated by the platform via [__S000 .. __S111] and [__P000 .. __P111]
exported macros. Primary usage for protection_map[] is for
vm_get_page_prot(), which is used to determine page protection value for a
given vm_flags. vm_get_page_prot() implementation, could again call
platform overrides arch_vm_get_page_prot() and arch_filter_pgprot(). Some
platforms override protection_map[] that was originally built with
__SXXX/__PXXX with different runtime values.
Currently there are multiple layers of abstraction i.e __SXXX/__PXXX
macros , protection_map[], arch_vm_get_page_prot() and
arch_filter_pgprot() built between the platform and generic MM, finally
defining vm_get_page_prot().
Hence this series proposes to drop later two abstraction levels and
instead just move the responsibility of defining vm_get_page_prot() to the
platform (still utilizing generic protection_map[] array) itself making it
clean and simple.
This first introduces ARCH_HAS_VM_GET_PAGE_PROT which enables the
platforms to define custom vm_get_page_prot(). This starts converting
platforms that define the overrides arch_filter_pgprot() or
arch_vm_get_page_prot() which enables for those constructs to be dropped
off completely.
The series has been inspired from an earlier discuss with Christoph Hellwig
https://lore.kernel.org/all/1632712920-8171-1-git-send-email-anshuman.khandual@arm.com/
This patch (of 7):
Add a new config ARCH_HAS_VM_GET_PAGE_PROT, which when subscribed enables
a given platform to define its own vm_get_page_prot() but still utilizing
the generic protection_map[] array.
Link: https://lkml.kernel.org/r/20220414062125.609297-1-anshuman.khandual@arm.com
Link: https://lkml.kernel.org/r/20220414062125.609297-2-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Suggested-by: Christoph Hellwig <hch@infradead.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Khalid Aziz <khalid.aziz@oracle.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:12 -07:00
Anshuman Khandual
6c862bd059
mm/mmap: clarify protection_map[] indices
...
protection_map[] maps vm_flags access combinations into page protection
value as defined by the platform via __PXXX and __SXXX macros. The array
indices in protection_map[], represents vm_flags access combinations but
it's not very intuitive to derive. This makes it clear and explicit.
Link: https://lkml.kernel.org/r/20220404031840.588321-3-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:12 -07:00
Anshuman Khandual
31d17076b0
mm/debug_vm_pgtable: drop protection_map[] usage
...
Patch series "mm: protection_map[] cleanups".
This patch (of 2):
Although protection_map[] contains the platform defined page protection
map for a given vm_flags combination, vm_get_page_prot() is the right
interface to use. This will also reduce dependency on protection_map[]
which is going to be dropped off completely later on.
Link: https://lkml.kernel.org/r/20220404031840.588321-1-anshuman.khandual@arm.com
Link: https://lkml.kernel.org/r/20220404031840.588321-2-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-04-28 23:16:12 -07:00
Anshuman Khandual
2a2848e7c2
arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE
...
Possible page table entries (or pointers) on non-zero page table levels are
dependent on a single page size i.e PAGE_SIZE and size required for each
individual page table entry i.e 8 bytes. PTRS_PER_[PMD|PUD] as such are not
related to PTRS_PER_PTE in any manner, as being implied currently. So lets
just make this very explicit and compute these macros independently.
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/20220408041009.1259701-1-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2022-04-22 14:45:58 +01:00
Anshuman Khandual
24e988c7fd
mm: generalize ARCH_HAS_FILTER_PGPROT
...
ARCH_HAS_FILTER_PGPROT config has duplicate definitions on platforms that
subscribe it. Instead make it a generic config option which can be
selected on applicable platforms when required.
Link: https://lkml.kernel.org/r/1643004823-16441-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-03-24 19:06:51 -07:00
Anshuman Khandual
4cc79b3303
mm/migration: add trace events for base page and HugeTLB migrations
...
This adds two trace events for base page and HugeTLB page migrations.
These events, closely follow the implementation details like setting and
removing of PTE migration entries, which are essential operations for
migration. The new CREATE_TRACE_POINTS in <mm/rmap.c> covers both
<events/migration.h> and <events/tlb.h> based trace events. Hence drop
redundant CREATE_TRACE_POINTS from other places which could have otherwise
conflicted during build.
Link: https://lkml.kernel.org/r/1643368182-9588-3-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reported-by: kernel test robot <lkp@intel.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Zi Yan <ziy@nvidia.com >
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: Matthew Wilcox <willy@infradead.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-03-24 19:06:45 -07:00
Anshuman Khandual
283fd6fe05
mm/migration: add trace events for THP migrations
...
Patch series "mm/migration: Add trace events", v3.
This adds trace events for all migration scenarios including base page,
THP and HugeTLB.
This patch (of 3):
This adds two trace events for PMD based THP migration without split.
These events closely follow the implementation details like setting and
removing of PMD migration entries, which are essential operations for THP
migration. This moves CREATE_TRACE_POINTS into generic THP from powerpc
for these new trace events to be available on other platforms as well.
Link: https://lkml.kernel.org/r/1643368182-9588-1-git-send-email-anshuman.khandual@arm.com
Link: https://lkml.kernel.org/r/1643368182-9588-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Zi Yan <ziy@nvidia.com >
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com >
Cc: John Hubbard <jhubbard@nvidia.com >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-03-24 19:06:45 -07:00
Anshuman Khandual
07431506e8
mm/hugetlb: generalize ARCH_WANT_GENERAL_HUGETLB
...
ARCH_WANT_GENERAL_HUGETLB config has duplicate definitions on platforms
that subscribe it. Instead make it a generic config option which can be
selected on applicable platforms when required.
Link: https://lkml.kernel.org/r/1643718465-4324-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-03-22 15:57:08 -07:00
Anshuman Khandual
16785bd774
mm: merge pte_mkhuge() call into arch_make_huge_pte()
...
Each call into pte_mkhuge() is invariably followed by
arch_make_huge_pte(). Instead arch_make_huge_pte() can accommodate
pte_mkhuge() at the beginning. This updates generic fallback stub for
arch_make_huge_pte() and available platforms definitions. This makes huge
pte creation much cleaner and easier to follow.
Link: https://lkml.kernel.org/r/1643860669-26307-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu >
Acked-by: Mike Kravetz <mike.kravetz@oracle.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Paul Mackerras <paulus@samba.org >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Mike Kravetz <mike.kravetz@oracle.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-03-22 15:57:04 -07:00
Anshuman Khandual
286f950545
coresight: Drop unused 'none' enum value for each component
...
CORESIGHT_DEV_TYPE_NONE/CORESIGHT_DEV_SUBTYPE_XXXX_NONE values are not used
any where. Actual enumeration can start from 0. Just drop these unused enum
values.
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Leo Yan <leo.yan@linaro.org >
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1645005118-10561-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com >
2022-03-11 10:07:57 +00:00
Anshuman Khandual
3a828845ae
coresight: trbe: Work around the trace data corruption
...
TRBE implementations affected by Arm erratum #1902691 might corrupt trace
data or deadlock, when it's being written into the memory. Workaround this
problem in the driver, by preventing TRBE initialization on affected cpus.
The firmware must have disabled the access to TRBE for the kernel on such
implementations. This will cover the kernel for any firmware that doesn't
do this already. This just updates the TRBE driver as required.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-8-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com >
2022-03-11 10:07:11 +00:00
Anshuman Khandual
f209e9fe5b
coresight: trbe: Work around the invalid prohibited states
...
TRBE implementations affected by Arm erratum #2038923 might get TRBE into
an inconsistent view on whether trace is prohibited within the CPU. As a
result, the trace buffer or trace buffer state might be corrupted. This
happens after TRBE buffer has been enabled by setting TRBLIMITR_EL1.E,
followed by just a single context synchronization event before execution
changes from a context, in which trace is prohibited to one where it isn't,
or vice versa. In these mentioned conditions, the view of whether trace is
prohibited is inconsistent between parts of the CPU, and the trace buffer
or the trace buffer state might be corrupted.
Work around this problem in the TRBE driver by preventing an inconsistent
view of whether the trace is prohibited or not based on TRBLIMITR_EL1.E by
immediately following a change to TRBLIMITR_EL1.E with at least one ISB
instruction before an ERET, or two ISB instructions if no ERET is to take
place. This just updates the TRBE driver as required.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-7-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com >
2022-03-11 10:07:04 +00:00
Anshuman Khandual
ac0ba21002
coresight: trbe: Work around the ignored system register writes
...
TRBE implementations affected by Arm erratum #2064142 might fail to write
into certain system registers after the TRBE has been disabled. Under some
conditions after TRBE has been disabled, writes into certain TRBE registers
TRBLIMITR_EL1, TRBPTR_EL1, TRBBASER_EL1, TRBSR_EL1 and TRBTRG_EL1 will be
ignored and not be effected.
Work around this problem in the TRBE driver by executing TSB CSYNC and DSB
just after the trace collection has stopped and before performing a system
register write to one of the affected registers. This just updates the TRBE
driver as required.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-6-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com >
2022-03-11 10:06:35 +00:00
Anshuman Khandual
1310222c27
arm64/mm: Drop use_1G_block()
...
pud_sect_supported() already checks for PUD level block mapping support i.e
on ARM64_4K_PAGES config. Hence pud_sect_supported(), along with some other
required alignment checks can help completely drop use_1G_block().
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 <anshuman.khandual@arm.com >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1644988012-25455-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2022-03-07 21:44:22 +00:00
Anshuman Khandual
cedd3614e5
perf: Add irq and exception return branch types
...
This expands generic branch type classification by adding two more entries
there in i.e irq and exception return. Also updates the x86 implementation
to process X86_BR_IRET and X86_BR_IRQ records as appropriate. This changes
branch types reported to user space on x86 platform but it should not be a
problem. The possible scenarios and impacts are enumerated here.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://lkml.kernel.org/r/1645681014-3346-1-git-send-email-anshuman.khandual@arm.com
2022-03-01 16:19:01 +01:00
Anshuman Khandual
a8a733b201
arm64/hugetlb: Define __hugetlb_valid_size()
...
arch_hugetlb_valid_size() can be just factored out to create another helper
to be used in arch_hugetlb_migration_supported() as well. This just defines
__hugetlb_valid_size() for that purpose.
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
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1645073557-6150-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2022-02-22 22:11:54 +00:00
Anshuman Khandual
e921da6bc7
arm64/mm: Consolidate TCR_EL1 fields
...
This renames and moves SYS_TCR_EL1_TCMA1 and SYS_TCR_EL1_TCMA0 definitions
into pgtable-hwdef.h thus consolidating all TCR fields in a single header.
This does not cause any functional change.
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
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643121513-21854-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2022-02-15 15:34:22 +00:00
Anshuman Khandual
ae65b443f0
perf tools: Add missing branch_sample_type to perf_event_attr__fprintf()
...
This updates branch sample type with missing PERF_SAMPLE_BRANCH_TYPE_SAVE.
Suggested-by: James Clark <james.clark@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Jiri Olsa <jolsa@redhat.com >
Cc: James Clark <james.clark@arm.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lore.kernel.org/lkml/1643799443-15109-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2022-02-06 09:03:06 -03:00
Anshuman Khandual
708e8af492
arm64: errata: Add detection for TRBE trace data corruption
...
TRBE implementations affected by Arm erratum #1902691 might corrupt trace
data or deadlock, when it's being written into the memory. So effectively
TRBE is broken and hence cannot be used to capture trace data. This adds
a new errata ARM64_ERRATUM_1902691 in arm64 errata framework.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-5-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
2022-01-27 12:01:53 -07:00
Anshuman Khandual
3bd94a8759
arm64: errata: Add detection for TRBE invalid prohibited states
...
TRBE implementations affected by Arm erratum #2038923 might get TRBE into
an inconsistent view on whether trace is prohibited within the CPU. As a
result, the trace buffer or trace buffer state might be corrupted. This
happens after TRBE buffer has been enabled by setting TRBLIMITR_EL1.E,
followed by just a single context synchronization event before execution
changes from a context, in which trace is prohibited to one where it isn't,
or vice versa. In these mentioned conditions, the view of whether trace is
prohibited is inconsistent between parts of the CPU, and the trace buffer
or the trace buffer state might be corrupted. This adds a new errata
ARM64_ERRATUM_2038923 in arm64 errata framework.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-4-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
2022-01-27 12:01:53 -07:00
Anshuman Khandual
607a9afaae
arm64: errata: Add detection for TRBE ignored system register writes
...
TRBE implementations affected by Arm erratum #2064142 might fail to write
into certain system registers after the TRBE has been disabled. Under some
conditions after TRBE has been disabled, writes into certain TRBE registers
TRBLIMITR_EL1, TRBPTR_EL1, TRBBASER_EL1, TRBSR_EL1 and TRBTRG_EL1 will be
ignored and not be effected. This adds a new errata ARM64_ERRATUM_2064142
in arm64 errata framework.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-doc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-3-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
2022-01-27 12:01:53 -07:00
Anshuman Khandual
53960faf2b
arm64: Add Cortex-A510 CPU part definition
...
Add the CPU Partnumbers for the new Arm designs.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1643120437-14352-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
2022-01-27 12:01:53 -07:00
Anshuman Khandual
eb30d838a4
arm64: errata: Update ARM64_ERRATUM_[2119858|2224489] with Cortex-X2 ranges
...
Errata ARM64_ERRATUM_[2119858|2224489] also affect some Cortex-X2 ranges as
well. Lets update these errata definition and detection to accommodate all
new Cortex-X2 based cpu MIDR ranges.
Cc: Will Deacon <will@kernel.org >
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Link: https://lore.kernel.org/r/1642994138-25887-3-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2022-01-24 14:20:50 +00:00
Anshuman Khandual
72bb9dcb6c
arm64: Add Cortex-X2 CPU part definition
...
Add the CPU Partnumbers for the new Arm designs.
Cc: Will Deacon <will@kernel.org >
Cc: Suzuki Poulose <suzuki.poulose@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Link: https://lore.kernel.org/r/1642994138-25887-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2022-01-24 14:20:50 +00:00
Anshuman Khandual
c0e582de60
mm/thp: drop unused trace events hugepage_[invalidate|splitting]
...
The trace events hugepage_[invalidate|splitting], were added via the
commit 9e813308a5 ("powerpc/thp: Add tracepoints to track hugepage
invalidate"). Afterwards their call sites i.e
trace_hugepage_[invalidate|splitting] were just dropped off, leaving
these trace points unused.
Link: https://lkml.kernel.org/r/1641546351-15109-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: David Hildenbrand <david@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Kirill A. Shutemov <kirill@shutemov.name >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-01-15 16:30:31 +02:00
Anshuman Khandual
eaab8e7536
mm/page_alloc.c: modify the comment section for alloc_contig_pages()
...
Clarify that the alloc_contig_pages() allocated range will always be
aligned to the requested nr_pages.
Link: https://lkml.kernel.org/r/1639545478-12160-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: David Hildenbrand <david@redhat.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-01-15 16:30:29 +02:00
Anshuman Khandual
236476180c
mm/debug_vm_pgtable: update comments regarding migration swap entries
...
Commit 4dd845b5a3 ("mm/swapops: rework swap entry manipulation code")
had changed migtation entry related helpers. Just update
debug_vm_pgatble() synced documentation to reflect those changes.
Link: https://lkml.kernel.org/r/1641880417-24848-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Jonathan Corbet <corbet@lwn.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2022-01-15 16:30:26 +02:00
Anshuman Khandual
3de360c3fd
arm64/mm: drop HAVE_ARCH_PFN_VALID
...
CONFIG_SPARSEMEM_VMEMMAP is now the only available memory model on arm64
platforms and free_unused_memmap() would just return without creating any
holes in the memmap mapping. There is no need for any special handling in
pfn_valid() and HAVE_ARCH_PFN_VALID can just be dropped. This also moves
the pfn upper bits sanity check into generic pfn_valid().
[rppt: rebased on v5.15-rc3]
Link: https://lkml.kernel.org/r/1621947349-25421-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: David Hildenbrand <david@redhat.com >
Acked-by: Mike Rapoport <rppt@linux.ibm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: David Hildenbrand <david@redhat.com >
Cc: Mike Rapoport <rppt@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com >
Link: https://lore.kernel.org/r/20210930013039.11260-3-rppt@kernel.org
Signed-off-by: Will Deacon <will@kernel.org >
2021-10-01 14:54:45 +01:00
Anshuman Khandual
f8b46c4b51
arm64/mm: Add pud_sect_supported()
...
Section mapping at PUD level is supported only on 4K pages and currently it
gets verified with explicit #ifdef or IS_ENABLED() constructs. This adds a
new helper pud_sect_supported() for this purpose, which particularly cleans
up the HugeTLB code path. It updates relevant switch statements with checks
for __PAGETABLE_PMD_FOLDED in order to avoid build failures caused with two
identical switch case values in those code blocks.
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
Suggested-by: Mark Rutland <mark.rutland@arm.com >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1632130171-472-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-09-29 16:54:33 +01:00
Anshuman Khandual
9329752bc8
KVM: arm64: Drop unused REQUIRES_VIRT
...
This seems like a residue from the past. REQUIRES_VIRT is no more available
. Hence it can just be dropped along with the related code section.
Cc: Marc Zyngier <maz@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: Alexandru Elisei <alexandru.elisei@arm.com >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628744994-16623-6-git-send-email-anshuman.khandual@arm.com
2021-08-18 09:26:07 +01:00
Anshuman Khandual
6b7982fefc
KVM: arm64: Drop check_kvm_target_cpu() based percpu probe
...
kvm_target_cpu() never returns a negative error code, so check_kvm_target()
would never have 'ret' filled with a negative error code. Hence the percpu
probe via check_kvm_target_cpu() does not make sense as its never going to
find an unsupported CPU, forcing kvm_arch_init() to exit early. Hence lets
just drop this percpu probe (and also check_kvm_target_cpu()) altogether.
While here, this also changes kvm_target_cpu() return type to a u32, making
it explicit that an error code will not be returned from this function.
Cc: Marc Zyngier <maz@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: Alexandru Elisei <alexandru.elisei@arm.com >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Acked-by: Will Deacon <will@kernel.org >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628744994-16623-5-git-send-email-anshuman.khandual@arm.com
2021-08-18 09:26:07 +01:00
Anshuman Khandual
bf249d9e36
KVM: arm64: Drop init_common_resources()
...
Could do without this additional indirection via init_common_resources() by
just calling kvm_set_ipa_limit() directly instead.
Cc: Marc Zyngier <maz@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: Alexandru Elisei <alexandru.elisei@arm.com >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628744994-16623-4-git-send-email-anshuman.khandual@arm.com
2021-08-18 09:26:07 +01:00
Anshuman Khandual
9788c14060
KVM: arm64: Use ARM64_MIN_PARANGE_BITS as the minimum supported IPA
...
Drop hard coded value for the minimum supported IPA range bits (i.e 32).
Instead use ARM64_MIN_PARANGE_BITS which improves the code readability.
Cc: Marc Zyngier <maz@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: Alexandru Elisei <alexandru.elisei@arm.com >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628744994-16623-3-git-send-email-anshuman.khandual@arm.com
2021-08-18 09:26:06 +01:00
Anshuman Khandual
504c6295b9
arm64/mm: Add remaining ID_AA64MMFR0_PARANGE_ macros
...
Currently there are macros only for 48 and 52 bits parange value extracted
from the ID_AA64MMFR0.PARANGE field. This change completes the enumeration
and updates the helper id_aa64mmfr0_parange_to_phys_shift(). While here it
also defines ARM64_MIN_PARANGE_BITS as the absolute minimum shift value PA
range which could be supported on a given platform.
Cc: Marc Zyngier <maz@kernel.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628744994-16623-2-git-send-email-anshuman.khandual@arm.com
2021-08-18 09:26:06 +01:00
Anshuman Khandual
5e5df9571c
KVM: arm64: Restrict IPA size to maximum 48 bits on 4K and 16K page size
...
Even though ID_AA64MMFR0.PARANGE reports 52 bit PA size support, it cannot
be enabled as guest IPA size on 4K or 16K page size configurations. Hence
kvm_ipa_limit must be restricted to 48 bits. This change achieves required
IPA capping.
Before the commit c9b69a0cf0 ("KVM: arm64: Don't constrain maximum IPA
size based on host configuration"), the problem here would have been just
latent via PHYS_MASK_SHIFT (which earlier in turn capped kvm_ipa_limit),
which remains capped at 48 bits on 4K and 16K configs.
Cc: Marc Zyngier <maz@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: Alexandru Elisei <alexandru.elisei@arm.com >
Cc: Suzuki K Poulose <suzuki.poulose@arm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Fixes: c9b69a0cf0 ("KVM: arm64: Don't constrain maximum IPA size based on host configuration")
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628680275-16578-1-git-send-email-anshuman.khandual@arm.com
2021-08-11 16:00:04 +01:00
Anshuman Khandual
b31578f627
arm64/mm: Define ID_AA64MMFR0_TGRAN_2_SHIFT
...
Streamline the Stage-2 TGRAN value extraction from ID_AA64MMFR0 register by
adding a page size agnostic ID_AA64MMFR0_TGRAN_2_SHIFT. This is similar to
the existing Stage-1 TGRAN shift i.e ID_AA64MMFR0_TGRAN_SHIFT.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Marc Zyngier <maz@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Will Deacon <will@kernel.org >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1628569782-30213-1-git-send-email-anshuman.khandual@arm.com
2021-08-11 15:33:46 +01:00
Anshuman Khandual
6fadc1241c
KVM: arm64: perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF
...
ID_AA64DFR0_PMUVER_IMP_DEF which indicate implementation defined PMU, never
actually gets used although there are '0xf' instances scattered all around.
Just do the macro replacement to improve readability.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Marc Zyngier <maz@kernel.org >
Cc: linux-perf-users@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
2021-08-11 15:33:29 +01:00
Anshuman Khandual
fd264b3105
arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF
...
ID_AA64DFR0_PMUVER_IMP_DEF, indicating an "implementation defined" PMU,
never actually gets used although there are '0xf' instances scattered
all around. Use the symbolic name instead of the raw hex constant.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1628652427-24695-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-08-11 11:02:12 +01:00
Anshuman Khandual
79d82cbcbb
arm64/kexec: Test page size support with new TGRAN range values
...
The commit 26f55386f9 ("arm64/mm: Fix __enable_mmu() for new TGRAN range
values") had already switched into testing ID_AA64MMFR0_TGRAN range values.
This just changes system_supports_[4|16|64]kb_granule() helpers to perform
similar range tests as well. While here, it standardizes page size specific
supported min and max TGRAN values.
Cc: Will Deacon <will@kernel.org >
Cc: James Morse <james.morse@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1626237975-1909-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2021-07-30 11:48:02 +01:00
Anshuman Khandual
1c2f7d14d8
mm/thp: define default pmd_pgtable()
...
Currently most platforms define pmd_pgtable() as pmd_page() duplicating
the same code all over. Instead just define a default value i.e
pmd_page() for pmd_pgtable() and let platforms override when required via
<asm/pgtable.h>. All the existing platform that override pmd_pgtable()
have been moved into their respective <asm/pgtable.h> header in order to
precede before the new generic definition. This makes it much cleaner
with reduced code.
Link: https://lkml.kernel.org/r/1623646133-20306-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org >
Acked-by: Mike Rapoport <rppt@linux.ibm.com >
Cc: Nick Hu <nickhu@andestech.com >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Vineet Gupta <vgupta@synopsys.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Brian Cain <bcain@codeaurora.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Ley Foon Tan <ley.foon.tan@intel.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi >
Cc: Stafford Horne <shorne@gmail.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Chris Zankel <chris@zankel.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2021-07-01 11:06:03 -07:00
Anshuman Khandual
fac7757e1f
mm: define default value for FIRST_USER_ADDRESS
...
Currently most platforms define FIRST_USER_ADDRESS as 0UL duplication the
same code all over. Instead just define a generic default value (i.e 0UL)
for FIRST_USER_ADDRESS and let the platforms override when required. This
makes it much cleaner with reduced code.
The default FIRST_USER_ADDRESS here would be skipped in <linux/pgtable.h>
when the given platform overrides its value via <asm/pgtable.h>.
Link: https://lkml.kernel.org/r/1620615725-24623-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org > [m68k]
Acked-by: Guo Ren <guoren@kernel.org > [csky]
Acked-by: Stafford Horne <shorne@gmail.com > [openrisc]
Acked-by: Catalin Marinas <catalin.marinas@arm.com > [arm64]
Acked-by: Mike Rapoport <rppt@linux.ibm.com >
Acked-by: Palmer Dabbelt <palmerdabbelt@google.com > [RISC-V]
Cc: Richard Henderson <rth@twiddle.net >
Cc: Vineet Gupta <vgupta@synopsys.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Brian Cain <bcain@codeaurora.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Ley Foon Tan <ley.foon.tan@intel.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi >
Cc: Stafford Horne <shorne@gmail.com >
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Jeff Dike <jdike@addtoit.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Chris Zankel <chris@zankel.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2021-07-01 11:06:02 -07:00
Anshuman Khandual
cebc774fdc
mm/thp: make ARCH_ENABLE_SPLIT_PMD_PTLOCK dependent on PGTABLE_LEVELS > 2
...
ARCH_ENABLE_SPLIT_PMD_PTLOCK is irrelevant unless there are more than two
page table levels including PMD (also per
Documentation/vm/split_page_table_lock.rst). Make this dependency
explicit on remaining platforms i.e x86 and s390 where
ARCH_ENABLE_SPLIT_PMD_PTLOCK is subscribed.
Link: https://lkml.kernel.org/r/1622013501-20409-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com > # s390
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2021-06-30 20:47:30 -07:00
Anshuman Khandual
16c9afc776
arm64/mm: drop HAVE_ARCH_PFN_VALID
...
CONFIG_SPARSEMEM_VMEMMAP is now the only available memory model on arm64
platforms and free_unused_memmap() would just return without creating any
holes in the memmap mapping. There is no need for any special handling in
pfn_valid() and HAVE_ARCH_PFN_VALID can just be dropped. This also moves
the pfn upper bits sanity check into generic pfn_valid().
Link: https://lkml.kernel.org/r/1621947349-25421-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: David Hildenbrand <david@redhat.com >
Acked-by: Mike Rapoport <rppt@linux.ibm.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: David Hildenbrand <david@redhat.com >
Cc: Mike Rapoport <rppt@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2021-06-30 20:47:29 -07:00
Anshuman Khandual
65ac1a60a5
mm/debug_vm_pgtable: ensure THP availability via has_transparent_hugepage()
...
On certain platforms, THP support could not just be validated via the
build option CONFIG_TRANSPARENT_HUGEPAGE. Instead
has_transparent_hugepage() also needs to be called upon to verify THP
runtime support. Otherwise the debug test will just run into unusable THP
helpers like in the case of a 4K hash config on powerpc platform [1].
This just moves all pfn_pmd() and pfn_pud() after THP runtime validation
with has_transparent_hugepage() which prevents the mentioned problem.
[1] https://bugzilla.kernel.org/show_bug.cgi?id=213069
Link: https://lkml.kernel.org/r/1621397588-19211-1-git-send-email-anshuman.khandual@arm.com
Fixes: 787d563b86 ("mm/debug_vm_pgtable: fix kernel crash by checking for THP support")
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2021-06-29 10:53:47 -07:00
Anshuman Khandual
2062d44da3
arm64/mm: Rename ARM64_SWAPPER_USES_SECTION_MAPS
...
ARM64_SWAPPER_USES_SECTION_MAPS implies that a PMD level huge page mappings
are used for swapper, idmap and vmemmap. Lets make it PMD explicit removing
any possible confusion with generic memory sections and also bit generic as
it's applicable for idmap and vmemmap mappings as well. Hence rename it as
ARM64_KERNEL_USES_PMD_MAPS instead.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1623991622-24294-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-06-21 18:22:23 +01:00
Anshuman Khandual
9163f01130
arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan
...
When using CONFIG_ARM64_SW_TTBR0_PAN, a task's thread_info::ttbr0 must be
the TTBR0_EL1 value used to run userspace. With 52-bit PAs, the PA must be
packed into the TTBR using phys_to_ttbr(), but we forget to do this in some
of the SW PAN code. Thus, if the value is installed into TTBR0_EL1 (as may
happen in the uaccess routines), this could result in UNPREDICTABLE
behaviour.
Since hardware with 52-bit PA support almost certainly has HW PAN, which
will be used in preference, this shouldn't be a practical issue, but let's
fix this for consistency.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: James Morse <james.morse@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Fixes: 529c4b05a3 ("arm64: handle 52-bit addresses in TTBR")
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1623749578-11231-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-06-15 19:03:24 +01:00
Anshuman Khandual
4aaa87ab3d
arm64/mm: Drop SECTION_[SHIFT|SIZE|MASK]
...
SECTION_[SHIFT|SIZE|MASK] are essentially PMD_[SHIFT|SIZE|MASK]. But these
create confusion being similar to generic sparsemem memory sections, which
are derived from SECTION_SIZE_BITS. Section references have always implied
PMD level block mapping. Instead just use all PMD level macros which would
make it explicit and also remove confusion with sparsmem memory sections.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Gavin Shan <gshan@redhat.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1623658706-7182-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-06-15 12:08:39 +01:00
Anshuman Khandual
ca6ece6a76
arm64/mm: Use CONT_PMD_SHIFT for ARM64_MEMSTART_SHIFT
...
ARM64_MEMSTART_SIZE needs to be aligned with CONT_PMD_SIZE on 16K page size
config. Hence just directly use CONT_PMD_SHIFT.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Gavin Shan <gshan@redhat.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Link: https://lore.kernel.org/r/1623663755-8949-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-06-15 12:08:25 +01:00
Anshuman Khandual
0f473ac746
arm64/mm: Drop SWAPPER_INIT_MAP_SIZE
...
The commit cdef5f6e9e ("arm64: mm: allocate pagetables anywhere") had
dropped the last reference to SWAPPER_INIT_MAP_SIZE. Hence just clean up.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Reviewed-by: Gavin Shan <gshan@redhat.com >
Link: https://lore.kernel.org/r/1623665411-20055-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-06-15 12:08:11 +01:00
Anshuman Khandual
40221c7376
arm64/mm: Make vmemmap_free() available only with CONFIG_MEMORY_HOTPLUG
...
vmemmap_free() callsites (mm/sparse.c) and declaration (include/linux/mm.h)
are protected with CONFIG_MEMORY_HOTPLUG. This function is not required if
CONFIG_MEMORY_HOTPLUG is not enabled. Hence move the config wrapper outside
the function definition.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1621842030-23256-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-05-25 19:23:56 +01:00
Anshuman Khandual
e377ab8231
arm64/mm: Remove [PUD|PMD]_TABLE_BIT from [pud|pmd]_bad()
...
Semantics wise, [pud|pmd]_bad() have always implied that a given [PUD|PMD]
entry does not have a pointer to the next level page table. This had been
made clear in the commit a1c76574f3 ("arm64: mm: use *_sect to check for
section maps"). Hence explicitly check for a table entry rather than just
testing a single bit. This basically redefines [pud|pmd]_bad() in terms of
[pud|pmd]_table() making the semantics clear.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Acked-by: Mark Rutland <mark.rutland@arm.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Acked-by: Mark Rutland <mark.rutland@arm.com >
Link: https://lore.kernel.org/r/1620644871-26280-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-05-25 19:04:38 +01:00
Anshuman Khandual
7e04cc9189
arm64/mm: Validate CONFIG_PGTABLE_LEVELS
...
CONFIG_PGTABLE_LEVELS has been statically defined in (arch/arm64/Kconfig)
depending on the page size and requested virtual address range. In order to
validate this page table levels selection this adds a BUILD_BUG_ON() as per
the existing formula ARM64_HW_PGTABLE_LEVELS(). This would help protect any
inadvertent changes to CONFIG_PGTABLE_LEVELS selection.
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com >
Link: https://lore.kernel.org/r/1620649326-24115-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org >
2021-05-25 18:54:39 +01:00