forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'powerpc-5.2-1' of ssh://gitolite.kernel.org/pub/scm/linux/…
…kernel/git/powerpc/linux Pull powerpc updates from Michael Ellerman: "Slightly delayed due to the issue with printk() calling probe_kernel_read() interacting with our new user access prevention stuff, but all fixed now. The only out-of-area changes are the addition of a cpuhp_state, small additions to Documentation and MAINTAINERS updates. Highlights: - Support for Kernel Userspace Access/Execution Prevention (like SMAP/SMEP/PAN/PXN) on some 64-bit and 32-bit CPUs. This prevents the kernel from accidentally accessing userspace outside copy_to/from_user(), or ever executing userspace. - KASAN support on 32-bit. - Rework of where we map the kernel, vmalloc, etc. on 64-bit hash to use the same address ranges we use with the Radix MMU. - A rewrite into C of large parts of our idle handling code for 64-bit Book3S (ie. power8 & power9). - A fast path entry for syscalls on 32-bit CPUs, for a 12-17% speedup in the null_syscall benchmark. - On 64-bit bare metal we have support for recovering from errors with the time base (our clocksource), however if that fails currently we hang in __delay() and never crash. We now have support for detecting that case and short circuiting __delay() so we at least panic() and reboot. - Add support for optionally enabling the DAWR on Power9, which had to be disabled by default due to a hardware erratum. This has the effect of enabling hardware breakpoints for GDB, the downside is a badly behaved program could crash the machine by pointing the DAWR at cache inhibited memory. This is opt-in obviously. - xmon, our crash handler, gets support for a read only mode where operations that could change memory or otherwise disturb the system are disabled. Plus many clean-ups, reworks and minor fixes etc. Thanks to: Christophe Leroy, Akshay Adiga, Alastair D'Silva, Alexey Kardashevskiy, Andrew Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Anton Blanchard, Ben Hutchings, Bo YU, Breno Leitao, Cédric Le Goater, Christopher M. Riedl, Christoph Hellwig, Colin Ian King, David Gibson, Ganesh Goudar, Gautham R. Shenoy, George Spelvin, Greg Kroah-Hartman, Greg Kurz, Horia Geantă, Jagadeesh Pagadala, Joel Stanley, Joe Perches, Julia Lawall, Laurentiu Tudor, Laurent Vivier, Lukas Bulwahn, Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael Neuling, Mukesh Ojha, Nathan Fontenot, Nathan Lynch, Nicholas Piggin, Nick Desaulniers, Oliver O'Halloran, Peng Hao, Qian Cai, Ravi Bangoria, Rick Lindsley, Russell Currey, Sachin Sant, Stewart Smith, Sukadev Bhattiprolu, Thomas Huth, Tobin C. Harding, Tyrel Datwyler, Valentin Schneider, Wei Yongjun, Wen Yang, YueHaibing" * tag 'powerpc-5.2-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (205 commits) powerpc/64s: Use early_mmu_has_feature() in set_kuap() powerpc/book3s/64: check for NULL pointer in pgd_alloc() powerpc/mm: Fix hugetlb page initialization ocxl: Fix return value check in afu_ioctl() powerpc/mm: fix section mismatch for setup_kup() powerpc/mm: fix redundant inclusion of pgtable-frag.o in Makefile powerpc/mm: Fix makefile for KASAN powerpc/kasan: add missing/lost Makefile selftests/powerpc: Add a signal fuzzer selftest powerpc/booke64: set RI in default MSR ocxl: Provide global MMIO accessors for external drivers ocxl: move event_fd handling to frontend ocxl: afu_irq only deals with IRQ IDs, not offsets ocxl: Allow external drivers to use OpenCAPI contexts ocxl: Create a clear delineation between ocxl backend & frontend ocxl: Don't pass pci_dev around ocxl: Split pci.c ocxl: Remove some unused exported symbols ocxl: Remove superfluous 'extern' from headers ocxl: read_pasid never returns an error, so make it void ...
- Loading branch information
Showing
247 changed files
with
7,819 additions
and
4,558 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
DAWR issues on POWER9 | ||
============================ | ||
|
||
On POWER9 the DAWR can cause a checkstop if it points to cache | ||
inhibited (CI) memory. Currently Linux has no way to disinguish CI | ||
memory when configuring the DAWR, so (for now) the DAWR is disabled by | ||
this commit: | ||
On POWER9 the Data Address Watchpoint Register (DAWR) can cause a checkstop | ||
if it points to cache inhibited (CI) memory. Currently Linux has no way to | ||
disinguish CI memory when configuring the DAWR, so (for now) the DAWR is | ||
disabled by this commit: | ||
|
||
commit 9654153158d3e0684a1bdb76dbababdb7111d5a0 | ||
Author: Michael Neuling <[email protected]> | ||
|
@@ -56,3 +56,35 @@ POWER9. Loads and stores to the watchpoint locations will not be | |
trapped in GDB. The watchpoint is remembered, so if the guest is | ||
migrated back to the POWER8 host, it will start working again. | ||
|
||
Force enabling the DAWR | ||
============================= | ||
Kernels (since ~v5.2) have an option to force enable the DAWR via: | ||
|
||
echo Y > /sys/kernel/debug/powerpc/dawr_enable_dangerous | ||
|
||
This enables the DAWR even on POWER9. | ||
|
||
This is a dangerous setting, USE AT YOUR OWN RISK. | ||
|
||
Some users may not care about a bad user crashing their box | ||
(ie. single user/desktop systems) and really want the DAWR. This | ||
allows them to force enable DAWR. | ||
|
||
This flag can also be used to disable DAWR access. Once this is | ||
cleared, all DAWR access should be cleared immediately and your | ||
machine once again safe from crashing. | ||
|
||
Userspace may get confused by toggling this. If DAWR is force | ||
enabled/disabled between getting the number of breakpoints (via | ||
PTRACE_GETHWDBGINFO) and setting the breakpoint, userspace will get an | ||
inconsistent view of what's available. Similarly for guests. | ||
|
||
For the DAWR to be enabled in a KVM guest, the DAWR needs to be force | ||
enabled in the host AND the guest. For this reason, this won't work on | ||
POWERVM as it doesn't allow the HCALL to work. Writes of 'Y' to the | ||
dawr_enable_dangerous file will fail if the hypervisor doesn't support | ||
writing the DAWR. | ||
|
||
To double check the DAWR is working, run this kernel selftest: | ||
tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c | ||
Any errors/failures/skips mean something is wrong. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4347,7 +4347,7 @@ F: drivers/net/ethernet/chelsio/cxgb4vf/ | |
|
||
CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER | ||
M: Frederic Barrat <[email protected]> | ||
M: Andrew Donnellan <andrew.donnellan@au1.ibm.com> | ||
M: Andrew Donnellan <ajd@linux.ibm.com> | ||
L: [email protected] | ||
S: Supported | ||
F: arch/powerpc/platforms/powernv/pci-cxl.c | ||
|
@@ -7483,13 +7483,12 @@ S: Supported | |
F: drivers/net/ethernet/ibm/ibmvnic.* | ||
|
||
IBM Power Virtual Accelerator Switchboard | ||
M: Sukadev Bhattiprolu | ||
M: Sukadev Bhattiprolu <[email protected]> | ||
L: [email protected] | ||
S: Supported | ||
F: arch/powerpc/platforms/powernv/vas* | ||
F: arch/powerpc/platforms/powernv/copy-paste.h | ||
F: arch/powerpc/include/asm/vas.h | ||
F: arch/powerpc/include/uapi/asm/vas.h | ||
|
||
IBM Power Virtual Ethernet Device Driver | ||
M: Thomas Falcon <[email protected]> | ||
|
@@ -7536,14 +7535,14 @@ F: drivers/crypto/vmx/ghash* | |
F: drivers/crypto/vmx/ppc-xlate.pl | ||
|
||
IBM Power PCI Hotplug Driver for RPA-compliant PPC64 platform | ||
M: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> | ||
M: Tyrel Datwyler <[email protected]> | ||
L: [email protected] | ||
L: [email protected] | ||
S: Supported | ||
F: drivers/pci/hotplug/rpaphp* | ||
|
||
IBM Power IO DLPAR Driver for RPA-compliant PPC64 platform | ||
M: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> | ||
M: Tyrel Datwyler <[email protected]> | ||
L: [email protected] | ||
L: [email protected] | ||
S: Supported | ||
|
@@ -10498,7 +10497,7 @@ F: arch/arm/mach-mmp/ | |
|
||
MMU GATHER AND TLB INVALIDATION | ||
M: Will Deacon <[email protected]> | ||
M: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> | ||
M: "Aneesh Kumar K.V" <[email protected]> | ||
M: Andrew Morton <[email protected]> | ||
M: Nick Piggin <[email protected]> | ||
M: Peter Zijlstra <[email protected]> | ||
|
@@ -11299,7 +11298,7 @@ F: tools/objtool/ | |
|
||
OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER | ||
M: Frederic Barrat <[email protected]> | ||
M: Andrew Donnellan <andrew.donnellan@au1.ibm.com> | ||
M: Andrew Donnellan <ajd@linux.ibm.com> | ||
L: [email protected] | ||
S: Supported | ||
F: arch/powerpc/platforms/powernv/ocxl.c | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.