Commit 5f6e430f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
  ...
parents a6e3e6f1 980411a4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1050,6 +1050,11 @@
			them frequently to increase the rate of SLB faults
			on kernel addresses.

	stress_hpt	[PPC]
			Limits the number of kernel HPT entries in the hash
			page table to increase the rate of hash page table
			faults on kernel addresses.

	disable=	[IPV6]
			See Documentation/networking/ipv6.rst.

+13 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ Book3S (aka sPAPR)
------------------

- Hash MMU (except 603 and e300)
- Radix MMU (POWER9 and later)
- Software loaded TLB (603 and e300)
- Selectable Software loaded TLB in addition to hash MMU (755, 7450, e600)
- Mix of 32 & 64 bit::
@@ -100,6 +101,18 @@ Book3S (aka sPAPR)
          v
   +--------------+
   |    POWER8    |
   +--------------+
          |
          |
          v
   +--------------+
   |    POWER9    |
   +--------------+
          |
          |
          v
   +--------------+
   |   POWER10    |
   +--------------+


+3 −1
Original line number Diff line number Diff line
@@ -933,8 +933,10 @@ ifdef CONFIG_FTRACE_MCOUNT_USE_CC
  endif
endif
ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL
  ifdef CONFIG_HAVE_OBJTOOL_NOP_MCOUNT
    CC_FLAGS_USING	+= -DCC_USING_NOP_MCOUNT
  endif
endif
ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
  ifdef CONFIG_HAVE_C_RECORDMCOUNT
    BUILD_C_RECORDMCOUNT := y
+36 −15
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
source "arch/powerpc/platforms/Kconfig.cputype"

config CC_HAS_ELFV2
	def_bool PPC64 && $(cc-option, -mabi=elfv2)

config 32BIT
	bool
	default y if PPC32
@@ -96,7 +99,7 @@ config LOCKDEP_SUPPORT
config GENERIC_LOCKBREAK
	bool
	default y
	depends on SMP && PREEMPTION
	depends on SMP && PREEMPTION && !PPC_QUEUED_SPINLOCKS

config GENERIC_HWEIGHT
	bool
@@ -155,7 +158,6 @@ config PPC
	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
	select ARCH_USE_MEMTEST
	select ARCH_USE_QUEUED_RWLOCKS		if PPC_QUEUED_SPINLOCKS
	select ARCH_USE_QUEUED_SPINLOCKS	if PPC_QUEUED_SPINLOCKS
	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
	select ARCH_WANT_IPC_PARSE_VERSION
	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
@@ -239,6 +241,8 @@ config PPC
	select HAVE_MOD_ARCH_SPECIFIC
	select HAVE_NMI				if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
	select HAVE_OPTPROBES
	select HAVE_OBJTOOL			if PPC32 || MPROFILE_KERNEL
	select HAVE_OBJTOOL_MCOUNT		if HAVE_OBJTOOL
	select HAVE_PERF_EVENTS
	select HAVE_PERF_EVENTS_NMI		if PPC64
	select HAVE_PERF_REGS
@@ -294,6 +298,9 @@ config PPC_BARRIER_NOSPEC
	default y
	depends on PPC_BOOK3S_64 || PPC_E500

config PPC_HAS_LBARX_LHARX
	bool

config EARLY_PRINTK
	bool
	default y
@@ -529,6 +536,15 @@ config HOTPLUG_CPU

	  Say N if you are unsure.

config INTERRUPT_SANITIZE_REGISTERS
	bool "Clear gprs on interrupt arrival"
	depends on PPC64 && ARCH_HAS_SYSCALL_WRAPPER
	default PPC_BOOK3E_64 || PPC_PSERIES || PPC_POWERNV
	help
	  Reduce the influence of user register state on interrupt handlers and
	  syscalls through clearing user state from registers before handling
	  the exception.

config PPC_QUEUED_SPINLOCKS
	bool "Queued spinlocks" if EXPERT
	depends on SMP
@@ -583,6 +599,24 @@ config KEXEC_FILE
config ARCH_HAS_KEXEC_PURGATORY
	def_bool KEXEC_FILE

config PPC64_BIG_ENDIAN_ELF_ABI_V2
	bool "Build big-endian kernel using ELF ABI V2 (EXPERIMENTAL)"
	depends on PPC64 && CPU_BIG_ENDIAN
	depends on CC_HAS_ELFV2
	depends on LD_IS_BFD && LD_VERSION >= 22400
	default n
	help
	  This builds the kernel image using the "Power Architecture 64-Bit ELF
	  V2 ABI Specification", which has a reduced stack overhead and faster
	  function calls. This internal kernel ABI option does not affect
          userspace compatibility.

	  The V2 ABI is standard for 64-bit little-endian, but for big-endian
	  it is less well tested by kernel and toolchain. However some distros
	  build userspace this way, and it can produce a functioning kernel.

	  This requires GCC and binutils 2.24 or newer.

config RELOCATABLE
	bool "Build a relocatable kernel"
	depends on PPC64 || (FLATMEM && (44x || PPC_85xx))
@@ -1012,19 +1046,6 @@ config PPC_SECVAR_SYSFS
	  read/write operations on these variables. Say Y if you have
	  secure boot enabled and want to expose variables to userspace.

config PPC_RTAS_FILTER
	bool "Enable filtering of RTAS syscalls"
	default y
	depends on PPC_RTAS
	help
	  The RTAS syscall API has security issues that could be used to
	  compromise system integrity. This option enforces restrictions on the
	  RTAS calls and arguments passed by userspace programs to mitigate
	  these issues.

	  Say Y unless you know what you are doing and the filter is causing
	  problems for you.

endmenu

config ISA_DMA_API
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@
		};

		i2c@118000 {
			pca9547@77 {
			i2c-mux@77 {
				compatible = "nxp,pca9547";
				reg = <0x77>;
				#address-cells = <1>;
Loading