Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d691b7e7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull powerpc updates from Michael Ellerman:
 "Highlights include:

   - Support for STRICT_KERNEL_RWX on 64-bit server CPUs.

   - Platform support for FSP2 (476fpe) board

   - Enable ZONE_DEVICE on 64-bit server CPUs.

   - Generic & powerpc spin loop primitives to optimise busy waiting

   - Convert VDSO update function to use new update_vsyscall() interface

   - Optimisations to hypercall/syscall/context-switch paths

   - Improvements to the CPU idle code on Power8 and Power9.

  As well as many other fixes and improvements.

  Thanks to: Akshay Adiga, Andrew Donnellan, Andrew Jeffery, Anshuman
  Khandual, Anton Blanchard, Balbir Singh, Benjamin Herrenschmidt,
  Christophe Leroy, Christophe Lombard, Colin Ian King, Dan Carpenter,
  Gautham R. Shenoy, Hari Bathini, Ian Munsie, Ivan Mikhaylov, Javier
  Martinez Canillas, Madhavan Srinivasan, Masahiro Yamada, Matt Brown,
  Michael Neuling, Michal Suchanek, Murilo Opsfelder Araujo, Naveen N.
  Rao, Nicholas Piggin, Oliver O'Halloran, Paul Mackerras, Pavel Machek,
  Russell Currey, Santosh Sivaraj, Stephen Rothwell, Thiago Jung
  Bauermann, Yang Li"

* tag 'powerpc-4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (158 commits)
  powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs
  powerpc/mm/radix: Implement STRICT_RWX/mark_rodata_ro() for Radix
  powerpc/mm/hash: Implement mark_rodata_ro() for hash
  powerpc/vmlinux.lds: Align __init_begin to 16M
  powerpc/lib/code-patching: Use alternate map for patch_instruction()
  powerpc/xmon: Add patch_instruction() support for xmon
  powerpc/kprobes/optprobes: Use patch_instruction()
  powerpc/kprobes: Move kprobes over to patch_instruction()
  powerpc/mm/radix: Fix execute permissions for interrupt_vectors
  powerpc/pseries: Fix passing of pp0 in updatepp() and updateboltedpp()
  powerpc/64s: Blacklist rtas entry/exit from kprobes
  powerpc/64s: Blacklist functions invoked on a trap
  powerpc/64s: Un-blacklist system_call() from kprobes
  powerpc/64s: Move system_call() symbol to just after setting MSR_EE
  powerpc/64s: Blacklist system_call() and system_call_common() from kprobes
  powerpc/64s: Convert .L__replay_interrupt_return to a local label
  powerpc64/elfv1: Only dereference function descriptor for non-text symbols
  cxl: Export library to support IBM XSL
  powerpc/dts: Use #include "..." to include local DT
  powerpc/perf/hv-24x7: Aggregate result elements on POWER9 SMT8
  ...
parents b59eea55 1e0fc9d1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -61,8 +61,8 @@ as follows:
         boot successfully. For syntax of crashkernel= parameter,
         refer to Documentation/kdump/kdump.txt. If any offset is
         provided in crashkernel= parameter, it will be ignored
         as fadump reserves memory at end of RAM for boot memory
         dump preservation in case of a crash.
         as fadump uses a predefined offset to reserve memory
         for boot memory dump preservation in case of a crash.

-- After the low memory (boot memory) area has been saved, the
   firmware will reset PCI and other hardware state.  It will
+7 −6
Original line number Diff line number Diff line
@@ -3781,8 +3781,8 @@ S: Supported
F:	drivers/net/ethernet/chelsio/cxgb4vf/

CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
M:	Ian Munsie <imunsie@au1.ibm.com>
M:	Frederic Barrat <fbarrat@linux.vnet.ibm.com>
M:	Andrew Donnellan <andrew.donnellan@au1.ibm.com>
L:	linuxppc-dev@lists.ozlabs.org
S:	Supported
F:	arch/powerpc/platforms/powernv/pci-cxl.c
@@ -5352,7 +5352,7 @@ S: Maintained
F:	drivers/video/fbdev/fsl-diu-fb.*

FREESCALE DMA DRIVER
M:	Li Yang <leoli@freescale.com>
M:	Li Yang <leoyang.li@nxp.com>
M:	Zhang Wei <zw@zh-kernel.org>
L:	linuxppc-dev@lists.ozlabs.org
S:	Maintained
@@ -5417,11 +5417,11 @@ S: Maintained
F:	drivers/net/ethernet/freescale/dpaa

FREESCALE SOC DRIVERS
M:	Scott Wood <oss@buserror.net>
M:	Li Yang <leoyang.li@nxp.com>
L:	linuxppc-dev@lists.ozlabs.org
L:	linux-arm-kernel@lists.infradead.org
S:	Maintained
F:	Documentation/devicetree/bindings/powerpc/fsl/
F:	Documentation/devicetree/bindings/soc/fsl/
F:	drivers/soc/fsl/
F:	include/linux/fsl/

@@ -5434,14 +5434,14 @@ F: include/soc/fsl/*qe*.h
F:	include/soc/fsl/*ucc*.h

FREESCALE USB PERIPHERAL DRIVERS
M:	Li Yang <leoli@freescale.com>
M:	Li Yang <leoyang.li@nxp.com>
L:	linux-usb@vger.kernel.org
L:	linuxppc-dev@lists.ozlabs.org
S:	Maintained
F:	drivers/usb/gadget/udc/fsl*

FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
M:	Li Yang <leoli@freescale.com>
M:	Li Yang <leoyang.li@nxp.com>
L:	netdev@vger.kernel.org
L:	linuxppc-dev@lists.ozlabs.org
S:	Maintained
@@ -7784,6 +7784,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
S:	Maintained
F:	arch/powerpc/platforms/83xx/
F:	arch/powerpc/platforms/85xx/
F:	Documentation/devicetree/bindings/powerpc/fsl/

LINUX FOR POWERPC PA SEMI PWRFICIENT
L:	linuxppc-dev@lists.ozlabs.org
+16 −9
Original line number Diff line number Diff line
@@ -109,14 +109,6 @@ config GENERIC_LOCKBREAK
	default y
	depends on SMP && PREEMPT

config ARCH_HAS_ILOG2_U32
	bool
	default y

config ARCH_HAS_ILOG2_U64
	bool
	default y if 64BIT

config GENERIC_HWEIGHT
	bool
	default y
@@ -138,6 +130,7 @@ config PPC
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAS_TICK_BROADCAST		if GENERIC_CLOCKEVENTS_BROADCAST
	select ARCH_HAS_UBSAN_SANITIZE_ALL
	select ARCH_HAS_ZONE_DEVICE		if PPC_BOOK3S_64
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
@@ -163,7 +156,7 @@ config PPC
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER
	select GENERIC_TIME_VSYSCALL_OLD
	select GENERIC_TIME_VSYSCALL
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_ARCH_KGDB
@@ -171,6 +164,8 @@ config PPC
	select HAVE_ARCH_MMAP_RND_COMPAT_BITS	if COMPAT
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
	select ARCH_HAS_STRICT_KERNEL_RWX	if (PPC_BOOK3S_64 && !RELOCATABLE && !HIBERNATION)
	select ARCH_OPTIONAL_KERNEL_RWX		if ARCH_HAS_STRICT_KERNEL_RWX
	select HAVE_CBPF_JIT			if !PPC64
	select HAVE_CONTEXT_TRACKING		if PPC64
	select HAVE_DEBUG_KMEMLEAK
@@ -208,6 +203,7 @@ config PPC
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_VIRT_CPU_ACCOUNTING
	select HAVE_IRQ_TIME_ACCOUNTING
	select IRQ_DOMAIN
	select IRQ_FORCED_THREADING
	select MODULES_USE_ELF_RELA
@@ -438,6 +434,17 @@ config PPC_TRANSACTIONAL_MEM
       ---help---
         Support user-mode Transactional Memory on POWERPC.

config LD_HEAD_STUB_CATCH
	bool "Reserve 256 bytes to cope with linker stubs in HEAD text" if EXPERT
	depends on PPC64
	default n
	help
	  Very large kernels can cause linker branch stubs to be generated by
	  code in head_64.S, which moves the head text sections out of their
	  specified location. This option can work around the problem.

	  If unsure, say "N".

config DISABLE_MPROFILE_KERNEL
	bool "Disable use of mprofile-kernel for kernel tracing"
	depends on PPC64 && CPU_LITTLE_ENDIAN
+11 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ endif
LDFLAGS_vmlinux-y := -Bstatic
LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie
LDFLAGS_vmlinux	:= $(LDFLAGS_vmlinux-y)
LDFLAGS_vmlinux += $(call ld-option,--orphan-handling=warn)

ifeq ($(CONFIG_PPC64),y)
ifeq ($(call cc-option-yn,-mcmodel=medium),y)
@@ -189,7 +190,17 @@ else
CHECKFLAGS	+= -D__LITTLE_ENDIAN__
endif

ifdef CONFIG_PPC32
KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
else
ifeq ($(call ld-ifversion, -ge, 225000000, y),y)
# Have the linker provide sfpr if possible.
# There is a corresponding test in arch/powerpc/lib/Makefile
KBUILD_LDFLAGS_MODULE += --save-restore-funcs
else
KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
endif
endif

ifeq ($(CONFIG_476FPE_ERR46),y)
	KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
+15 −2
Original line number Diff line number Diff line
@@ -10,13 +10,26 @@ __archpost:
-include include/config/auto.conf
include scripts/Kbuild.include

quiet_cmd_head_check = CHKHEAD $@
      cmd_head_check = $(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/head_check.sh "$(NM)" "$@"

quiet_cmd_relocs_check = CHKREL  $@
      cmd_relocs_check = $(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@"
ifdef CONFIG_PPC_BOOK3S_64
      cmd_relocs_check =						\
	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@" ; \
	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$@"
else
      cmd_relocs_check =						\
	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@"
endif

# `@true` prevents complaint when there is nothing to be done

vmlinux: FORCE
	@true
ifdef CONFIG_PPC64
	$(call cmd,head_check)
endif
ifdef CONFIG_RELOCATABLE
	$(call if_changed,relocs_check)
endif
@@ -25,7 +38,7 @@ endif
	@true

clean:
	@true
	rm -f .tmp_symbols.txt

PHONY += FORCE clean

Loading