Loading arch/powerpc/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading arch/powerpc/include/asm/book3s/64/tlbflush-hash.h +6 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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) Loading arch/powerpc/include/asm/interrupt.h +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading arch/powerpc/include/asm/syscalls.h +7 −0 Original line number Diff line number Diff line Loading @@ -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, Loading arch/powerpc/kernel/exceptions-64e.S +7 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
arch/powerpc/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading
arch/powerpc/include/asm/book3s/64/tlbflush-hash.h +6 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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) Loading
arch/powerpc/include/asm/interrupt.h +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
arch/powerpc/include/asm/syscalls.h +7 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
arch/powerpc/kernel/exceptions-64e.S +7 −0 Original line number Diff line number Diff line Loading @@ -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