Commit 611c0202 authored by Michael Ellerman's avatar Michael Ellerman
Browse files

Merge branch 'fixes' into next

Merge our fixes branch to bring in some changes that are prerequisites
for work in next.
parents 9a04b0fe 2e7ec190
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ config PPC
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_OPTIONAL_KERNEL_RWX		if ARCH_HAS_STRICT_KERNEL_RWX
	select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
	select ARCH_SPLIT_ARG64			if PPC32
	select ARCH_STACKWALK
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_DEBUG_PAGEALLOC	if PPC_BOOK3S || PPC_8xx || 40x
@@ -285,7 +286,7 @@ config PPC
	#

config PPC_LONG_DOUBLE_128
	depends on PPC64
	depends on PPC64 && ALTIVEC
	def_bool $(success,test "$(shell,echo __LONG_DOUBLE_128__ | $(CC) -E -P -)" = 1)

config PPC_BARRIER_NOSPEC
+6 −0
Original line number Diff line number Diff line
@@ -32,6 +32,11 @@ static inline void arch_enter_lazy_mmu_mode(void)

	if (radix_enabled())
		return;
	/*
	 * apply_to_page_range can call us this preempt enabled when
	 * operating on kernel page tables.
	 */
	preempt_disable();
	batch = this_cpu_ptr(&ppc64_tlb_batch);
	batch->active = 1;
}
@@ -47,6 +52,7 @@ static inline void arch_leave_lazy_mmu_mode(void)
	if (batch->index)
		__flush_tlb_pending(batch);
	batch->active = 0;
	preempt_enable();
}

#define arch_flush_lazy_mmu_mode()      do {} while (0)
+1 −0
Original line number Diff line number Diff line
@@ -602,6 +602,7 @@ ____##func(struct pt_regs *regs)
/* kernel/traps.c */
DECLARE_INTERRUPT_HANDLER_NMI(system_reset_exception);
#ifdef CONFIG_PPC_BOOK3S_64
DECLARE_INTERRUPT_HANDLER_RAW(machine_check_early_boot);
DECLARE_INTERRUPT_HANDLER_ASYNC(machine_check_exception_async);
#endif
DECLARE_INTERRUPT_HANDLER_NMI(machine_check_exception);
+7 −0
Original line number Diff line number Diff line
@@ -104,6 +104,13 @@ long sys_ppc_ftruncate64(unsigned int fd, u32 reg4,
			 unsigned long len1, unsigned long len2);
long sys_ppc32_fadvise64(int fd, u32 unused, u32 offset1, u32 offset2,
			 size_t len, int advice);
long sys_ppc_sync_file_range2(int fd, unsigned int flags,
			      unsigned int offset1,
			      unsigned int offset2,
			      unsigned int nbytes1,
			      unsigned int nbytes2);
long sys_ppc_fallocate(int fd, int mode, u32 offset1, u32 offset2,
		       u32 len1, u32 len2);
#endif
#ifdef CONFIG_COMPAT
long compat_sys_mmap2(unsigned long addr, size_t len,
+7 −0
Original line number Diff line number Diff line
@@ -813,6 +813,13 @@ kernel_dbg_exc:
	EXCEPTION_COMMON(0x260)
	CHECK_NAPPING()
	addi	r3,r1,STACK_FRAME_OVERHEAD
	/*
	 * XXX: Returning from performance_monitor_exception taken as a
	 * soft-NMI (Linux irqs disabled) may be risky to use interrupt_return
	 * and could cause bugs in return or elsewhere. That case should just
	 * restore registers and return. There is a workaround for one known
	 * problem in interrupt_exit_kernel_prepare().
	 */
	bl	performance_monitor_exception
	b	interrupt_return

Loading