Skip to content

Commit 5f6e430

Browse files
committed
Merge tag 'powerpc-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc updates from Michael Ellerman: - Add powerpc qspinlock implementation optimised for large system scalability and paravirt. See the merge message for more details - Enable objtool to be built on powerpc to generate mcount locations - Use a temporary mm for code patching with the Radix MMU, so the writable mapping is restricted to the patching CPU - Add an option to build the 64-bit big-endian kernel with the ELFv2 ABI - Sanitise user registers on interrupt entry on 64-bit Book3S - Many other small features and fixes Thanks to Aboorva Devarajan, Angel Iglesias, Benjamin Gray, Bjorn Helgaas, Bo Liu, Chen Lifu, Christoph Hellwig, Christophe JAILLET, Christophe Leroy, Christopher M. Riedl, Colin Ian King, Deming Wang, Disha Goel, Dmitry Torokhov, Finn Thain, Geert Uytterhoeven, Gustavo A. R. Silva, Haowen Bai, Joel Stanley, Jordan Niethe, Julia Lawall, Kajol Jain, Laurent Dufour, Li zeming, Miaoqian Lin, Michael Jeanson, Nathan Lynch, Naveen N. Rao, Nayna Jain, Nicholas Miehlbradt, Nicholas Piggin, Pali Rohár, Randy Dunlap, Rohan McLure, Russell Currey, Sathvika Vasireddy, Shaomin Deng, Stephen Kitt, Stephen Rothwell, Thomas Weißschuh, Tiezhu Yang, Uwe Kleine-König, Xie Shaowen, Xiu Jianfeng, XueBing Chen, Yang Yingliang, Zhang Jiaming, ruanjinjie, Jessica Yu, and Wolfram Sang. * tag 'powerpc-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (181 commits) powerpc/code-patching: Fix oops with DEBUG_VM enabled powerpc/qspinlock: Fix 32-bit build powerpc/prom: Fix 32-bit build powerpc/rtas: mandate RTAS syscall filtering powerpc/rtas: define pr_fmt and convert printk call sites powerpc/rtas: clean up includes powerpc/rtas: clean up rtas_error_log_max initialization powerpc/pseries/eeh: use correct API for error log size powerpc/rtas: avoid scheduling in rtas_os_term() powerpc/rtas: avoid device tree lookups in rtas_os_term() powerpc/rtasd: use correct OF API for event scan rate powerpc/rtas: document rtas_call() powerpc/pseries: unregister VPA when hot unplugging a CPU powerpc/pseries: reset the RCU watchdogs after a LPM powerpc: Take in account addition CPU node when building kexec FDT powerpc: export the CPU node count powerpc/cpuidle: Set CPUIDLE_FLAG_POLLING for snooze state powerpc/dts/fsl: Fix pca954x i2c-mux node names cxl: Remove unnecessary cxl_pci_window_alignment() selftests/powerpc: Fix resource leaks ...
2 parents a6e3e6f + 980411a commit 5f6e430

File tree

196 files changed

+3541
-1257
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+3541
-1257
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,11 @@
10501050
them frequently to increase the rate of SLB faults
10511051
on kernel addresses.
10521052

1053+
stress_hpt [PPC]
1054+
Limits the number of kernel HPT entries in the hash
1055+
page table to increase the rate of hash page table
1056+
faults on kernel addresses.
1057+
10531058
disable= [IPV6]
10541059
See Documentation/networking/ipv6.rst.
10551060

Documentation/powerpc/cpu_families.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Book3S (aka sPAPR)
1010
------------------
1111

1212
- Hash MMU (except 603 and e300)
13+
- Radix MMU (POWER9 and later)
1314
- Software loaded TLB (603 and e300)
1415
- Selectable Software loaded TLB in addition to hash MMU (755, 7450, e600)
1516
- Mix of 32 & 64 bit::
@@ -100,6 +101,18 @@ Book3S (aka sPAPR)
100101
v
101102
+--------------+
102103
| POWER8 |
104+
+--------------+
105+
|
106+
|
107+
v
108+
+--------------+
109+
| POWER9 |
110+
+--------------+
111+
|
112+
|
113+
v
114+
+--------------+
115+
| POWER10 |
103116
+--------------+
104117

105118

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,9 @@ ifdef CONFIG_FTRACE_MCOUNT_USE_CC
933933
endif
934934
endif
935935
ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL
936-
CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT
936+
ifdef CONFIG_HAVE_OBJTOOL_NOP_MCOUNT
937+
CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT
938+
endif
937939
endif
938940
ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
939941
ifdef CONFIG_HAVE_C_RECORDMCOUNT

arch/powerpc/Kconfig

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# SPDX-License-Identifier: GPL-2.0
22
source "arch/powerpc/platforms/Kconfig.cputype"
33

4+
config CC_HAS_ELFV2
5+
def_bool PPC64 && $(cc-option, -mabi=elfv2)
6+
47
config 32BIT
58
bool
69
default y if PPC32
@@ -96,7 +99,7 @@ config LOCKDEP_SUPPORT
9699
config GENERIC_LOCKBREAK
97100
bool
98101
default y
99-
depends on SMP && PREEMPTION
102+
depends on SMP && PREEMPTION && !PPC_QUEUED_SPINLOCKS
100103

101104
config GENERIC_HWEIGHT
102105
bool
@@ -155,7 +158,6 @@ config PPC
155158
select ARCH_USE_CMPXCHG_LOCKREF if PPC64
156159
select ARCH_USE_MEMTEST
157160
select ARCH_USE_QUEUED_RWLOCKS if PPC_QUEUED_SPINLOCKS
158-
select ARCH_USE_QUEUED_SPINLOCKS if PPC_QUEUED_SPINLOCKS
159161
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
160162
select ARCH_WANT_IPC_PARSE_VERSION
161163
select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
@@ -239,6 +241,8 @@ config PPC
239241
select HAVE_MOD_ARCH_SPECIFIC
240242
select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
241243
select HAVE_OPTPROBES
244+
select HAVE_OBJTOOL if PPC32 || MPROFILE_KERNEL
245+
select HAVE_OBJTOOL_MCOUNT if HAVE_OBJTOOL
242246
select HAVE_PERF_EVENTS
243247
select HAVE_PERF_EVENTS_NMI if PPC64
244248
select HAVE_PERF_REGS
@@ -294,6 +298,9 @@ config PPC_BARRIER_NOSPEC
294298
default y
295299
depends on PPC_BOOK3S_64 || PPC_E500
296300

301+
config PPC_HAS_LBARX_LHARX
302+
bool
303+
297304
config EARLY_PRINTK
298305
bool
299306
default y
@@ -529,6 +536,15 @@ config HOTPLUG_CPU
529536

530537
Say N if you are unsure.
531538

539+
config INTERRUPT_SANITIZE_REGISTERS
540+
bool "Clear gprs on interrupt arrival"
541+
depends on PPC64 && ARCH_HAS_SYSCALL_WRAPPER
542+
default PPC_BOOK3E_64 || PPC_PSERIES || PPC_POWERNV
543+
help
544+
Reduce the influence of user register state on interrupt handlers and
545+
syscalls through clearing user state from registers before handling
546+
the exception.
547+
532548
config PPC_QUEUED_SPINLOCKS
533549
bool "Queued spinlocks" if EXPERT
534550
depends on SMP
@@ -583,6 +599,24 @@ config KEXEC_FILE
583599
config ARCH_HAS_KEXEC_PURGATORY
584600
def_bool KEXEC_FILE
585601

602+
config PPC64_BIG_ENDIAN_ELF_ABI_V2
603+
bool "Build big-endian kernel using ELF ABI V2 (EXPERIMENTAL)"
604+
depends on PPC64 && CPU_BIG_ENDIAN
605+
depends on CC_HAS_ELFV2
606+
depends on LD_IS_BFD && LD_VERSION >= 22400
607+
default n
608+
help
609+
This builds the kernel image using the "Power Architecture 64-Bit ELF
610+
V2 ABI Specification", which has a reduced stack overhead and faster
611+
function calls. This internal kernel ABI option does not affect
612+
userspace compatibility.
613+
614+
The V2 ABI is standard for 64-bit little-endian, but for big-endian
615+
it is less well tested by kernel and toolchain. However some distros
616+
build userspace this way, and it can produce a functioning kernel.
617+
618+
This requires GCC and binutils 2.24 or newer.
619+
586620
config RELOCATABLE
587621
bool "Build a relocatable kernel"
588622
depends on PPC64 || (FLATMEM && (44x || PPC_85xx))
@@ -1012,19 +1046,6 @@ config PPC_SECVAR_SYSFS
10121046
read/write operations on these variables. Say Y if you have
10131047
secure boot enabled and want to expose variables to userspace.
10141048

1015-
config PPC_RTAS_FILTER
1016-
bool "Enable filtering of RTAS syscalls"
1017-
default y
1018-
depends on PPC_RTAS
1019-
help
1020-
The RTAS syscall API has security issues that could be used to
1021-
compromise system integrity. This option enforces restrictions on the
1022-
RTAS calls and arguments passed by userspace programs to mitigate
1023-
these issues.
1024-
1025-
Say Y unless you know what you are doing and the filter is causing
1026-
problems for you.
1027-
10281049
endmenu
10291050

10301051
config ISA_DMA_API

arch/powerpc/boot/dts/fsl/t1024qds.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
};
152152

153153
i2c@118000 {
154-
pca9547@77 {
154+
i2c-mux@77 {
155155
compatible = "nxp,pca9547";
156156
reg = <0x77>;
157157
#address-cells = <1>;

arch/powerpc/boot/dts/fsl/t1024rdb.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@
165165
};
166166

167167
i2c@118100 {
168-
pca9546@77 {
168+
i2c-mux@77 {
169169
compatible = "nxp,pca9546";
170170
reg = <0x77>;
171171
#address-cells = <1>;

arch/powerpc/boot/dts/fsl/t104xqds.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@
268268
};
269269

270270
i2c@118000 {
271-
pca9547@77 {
271+
i2c-mux@77 {
272272
compatible = "nxp,pca9547";
273273
reg = <0x77>;
274274
};

arch/powerpc/boot/dts/fsl/t104xrdb.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
};
129129

130130
i2c@118100 {
131-
pca9546@77 {
131+
i2c-mux@77 {
132132
compatible = "nxp,pca9546";
133133
reg = <0x77>;
134134
#address-cells = <1>;

arch/powerpc/boot/dts/fsl/t208xqds.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
};
136136

137137
i2c@118000 {
138-
pca9547@77 {
138+
i2c-mux@77 {
139139
compatible = "nxp,pca9547";
140140
reg = <0x77>;
141141
#address-cells = <1>;

arch/powerpc/boot/dts/fsl/t208xrdb.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
};
139139

140140
i2c@118100 {
141-
pca9546@77 {
141+
i2c-mux@77 {
142142
compatible = "nxp,pca9546";
143143
reg = <0x77>;
144144
};

0 commit comments

Comments
 (0)