Skip to content

Commit

Permalink
Merge tag 'powerpc-4.13-1' of git://git.kernel.org/pub/scm/linux/kern…
Browse files Browse the repository at this point in the history
…el/git/powerpc/linux

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
  ...
  • Loading branch information
torvalds committed Jul 7, 2017
2 parents b59eea5 + 1e0fc9d commit d691b7e
Show file tree
Hide file tree
Showing 161 changed files with 4,328 additions and 1,082 deletions.
4 changes: 2 additions & 2 deletions Documentation/powerpc/firmware-assisted-dump.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 7 additions & 6 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3781,8 +3781,8 @@ S: Supported
F: drivers/net/ethernet/chelsio/cxgb4vf/

CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
M: Ian Munsie <[email protected]>
M: Frederic Barrat <[email protected]>
M: Andrew Donnellan <[email protected]>
L: [email protected]
S: Supported
F: arch/powerpc/platforms/powernv/pci-cxl.c
Expand Down Expand Up @@ -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 <[email protected]>
L: [email protected]
S: Maintained
Expand Down Expand Up @@ -5417,11 +5417,11 @@ S: Maintained
F: drivers/net/ethernet/freescale/dpaa

FREESCALE SOC DRIVERS
M: Scott Wood <[email protected]>
M: Li Yang <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: Documentation/devicetree/bindings/powerpc/fsl/
F: Documentation/devicetree/bindings/soc/fsl/
F: drivers/soc/fsl/
F: include/linux/fsl/

Expand All @@ -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: [email protected]
L: [email protected]
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: [email protected]
L: [email protected]
S: Maintained
Expand Down Expand Up @@ -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: [email protected]
Expand Down
25 changes: 16 additions & 9 deletions arch/powerpc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -163,14 +156,16 @@ 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
select HAVE_ARCH_MMAP_RND_BITS
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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
11 changes: 11 additions & 0 deletions arch/powerpc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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 \
Expand Down
17 changes: 15 additions & 2 deletions arch/powerpc/Makefile.postlink
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -25,7 +38,7 @@ endif
@true

clean:
@true
rm -f .tmp_symbols.txt

PHONY += FORCE clean

Expand Down
5 changes: 4 additions & 1 deletion arch/powerpc/boot/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,16 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
$(addprefix $(obj)/,$(libfdtheader))

src-wlib-y := string.S crt0.S crtsavres.S stdio.c decompress.c main.c \
src-wlib-y := string.S crt0.S stdio.c decompress.c main.c \
$(libfdt) libfdt-wrapper.c \
ns16550.c serial.c simple_alloc.c div64.S util.S \
elf_util.c $(zlib-y) devtree.c stdlib.c \
oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
uartlite.c mpc52xx-psc.c opal.c
src-wlib-$(CONFIG_PPC64_BOOT_WRAPPER) += opal-calls.S
ifndef CONFIG_PPC64_BOOT_WRAPPER
src-wlib-y += crtsavres.S
endif
src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c
Expand Down
8 changes: 4 additions & 4 deletions arch/powerpc/boot/crtsavres.S
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,13 @@
* the executable file might be covered by the GNU General Public License.
*/

#ifdef __powerpc64__
#error "On PPC64, FPR save/restore functions are provided by the linker."
#endif

.file "crtsavres.S"
.section ".text"

/* On PowerPC64 Linux, these functions are provided by the linker. */
#ifndef __powerpc64__

#define _GLOBAL(name) \
.type name,@function; \
.globl name; \
Expand Down Expand Up @@ -230,4 +231,3 @@ _GLOBAL(_rest32gpr_31_x)
mtlr 0
mr 1,11
blr
#endif
2 changes: 1 addition & 1 deletion arch/powerpc/boot/dts/ac14xx.dts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
*/


#include <mpc5121.dtsi>
#include "mpc5121.dtsi"

/ {
model = "ac14xx";
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/boot/dts/digsy_mtc.dts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@

i2c@3d00 {
eeprom@50 {
compatible = "at,24c08";
compatible = "atmel,24c08";
reg = <0x50>;
};

Expand Down
8 changes: 4 additions & 4 deletions arch/powerpc/boot/dts/fsl/b4qds.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -166,19 +166,19 @@
reg = <0>;

eeprom@50 {
compatible = "at24,24c64";
compatible = "atmel,24c64";
reg = <0x50>;
};
eeprom@51 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x51>;
};
eeprom@53 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x53>;
};
eeprom@57 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x57>;
};
rtc@68 {
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/boot/dts/fsl/c293pcie.dts
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
&soc {
i2c@3000 {
eeprom@50 {
compatible = "st,24c1024";
compatible = "st,24c1024", "atmel,24c1024";
reg = <0x50>;
};

Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
&board_soc {
i2c@3000 {
eeprom@50 {
compatible = "st,24c256";
compatible = "st,24c256", "atmel,24c256";
reg = <0x50>;
};

Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/boot/dts/fsl/p1023rdb.dts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@

i2c@3000 {
eeprom@53 {
compatible = "at24,24c04";
compatible = "atmel,24c04";
reg = <0x53>;
};

Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/boot/dts/fsl/p2041rdb.dts
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
reg = <0x48>;
};
eeprom@50 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x50>;
};
rtc@68 {
Expand All @@ -142,7 +142,7 @@

i2c@118100 {
eeprom@50 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x50>;
};
};
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/boot/dts/fsl/p3041ds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,11 @@

i2c@118100 {
eeprom@51 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x51>;
};
eeprom@52 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x52>;
};
};
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/boot/dts/fsl/p4080ds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,11 @@

i2c@118100 {
eeprom@51 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x51>;
};
eeprom@52 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x52>;
};
rtc@68 {
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/boot/dts/fsl/p5020ds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,11 @@

i2c@118100 {
eeprom@51 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x51>;
};
eeprom@52 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x52>;
};
};
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/boot/dts/fsl/p5040ds.dts
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,11 @@

i2c@118100 {
eeprom@51 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x51>;
};
eeprom@52 {
compatible = "at24,24c256";
compatible = "atmel,24c256";
reg = <0x52>;
};
};
Expand Down
Loading

0 comments on commit d691b7e

Please sign in to comment.