mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
Merge tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc updates from Michael Ellerman:
"Livepatch support for 32-bit is probably the standout new feature,
otherwise mostly just lots of bits and pieces all over the board.
There's a series of commits cleaning up function descriptor handling,
which touches a few other arches as well as LKDTM. It has acks from
Arnd, Kees and Helge.
Summary:
- Enforce kernel RO, and implement STRICT_MODULE_RWX for 603.
- Add support for livepatch to 32-bit.
- Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS.
- Merge vdso64 and vdso32 into a single directory.
- Fix build errors with newer binutils.
- Add support for UADDR64 relocations, which are emitted by some
toolchains. This allows powerpc to build with the latest lld.
- Fix (another) potential userspace r13 corruption in transactional
memory handling.
- Cleanups of function descriptor handling & related fixes to LKDTM.
Thanks to Abdul Haleem, Alexey Kardashevskiy, Anders Roxell, Aneesh
Kumar K.V, Anton Blanchard, Arnd Bergmann, Athira Rajeev, Bhaskar
Chowdhury, Cédric Le Goater, Chen Jingwen, Christophe JAILLET,
Christophe Leroy, Corentin Labbe, Daniel Axtens, Daniel Henrique
Barboza, David Dai, Fabiano Rosas, Ganesh Goudar, Guo Zhengkui, Hangyu
Hua, Haren Myneni, Hari Bathini, Igor Zhbanov, Jakob Koschel, Jason
Wang, Jeremy Kerr, Joachim Wiberg, Jordan Niethe, Julia Lawall, Kajol
Jain, Kees Cook, Laurent Dufour, Madhavan Srinivasan, Mamatha Inamdar,
Maxime Bizon, Maxim Kiselev, Maxim Kochetkov, Michal Suchanek,
Nageswara R Sastry, Nathan Lynch, Naveen N. Rao, Nicholas Piggin,
Nour-eddine Taleb, Paul Menzel, Ping Fang, Pratik R. Sampat, Randy
Dunlap, Ritesh Harjani, Rohan McLure, Russell Currey, Sachin Sant,
Segher Boessenkool, Shivaprasad G Bhat, Sourabh Jain, Thierry Reding,
Tobias Waldekranz, Tyrel Datwyler, Vaibhav Jain, Vladimir Oltean,
Wedson Almeida Filho, and YueHaibing"
* tag 'powerpc-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (179 commits)
powerpc/pseries: Fix use after free in remove_phb_dynamic()
powerpc/time: improve decrementer clockevent processing
powerpc/time: Fix KVM host re-arming a timer beyond decrementer range
powerpc/tm: Fix more userspace r13 corruption
powerpc/xive: fix return value of __setup handler
powerpc/64: Add UADDR64 relocation support
powerpc: 8xx: fix a return value error in mpc8xx_pic_init
powerpc/ps3: remove unneeded semicolons
powerpc/64: Force inlining of prevent_user_access() and set_kuap()
powerpc/bitops: Force inlining of fls()
powerpc: declare unmodified attribute_group usages const
powerpc/spufs: Fix build warning when CONFIG_PROC_FS=n
powerpc/secvar: fix refcount leak in format_show()
powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E
powerpc: Move C prototypes out of asm-prototypes.h
powerpc/kexec: Declare kexec_paca static
powerpc/smp: Declare current_set static
powerpc: Cleanup asm-prototypes.c
powerpc/ftrace: Use STK_GOT in ftrace_mprofile.S
powerpc/ftrace: Regroup PPC64 specific operations in ftrace_mprofile.S
...
This commit is contained in:
@@ -61,3 +61,15 @@ Description:
|
||||
* "CchRHCnt" : Cache Read Hit Count
|
||||
* "CchWHCnt" : Cache Write Hit Count
|
||||
* "FastWCnt" : Fast Write Count
|
||||
|
||||
What: /sys/bus/nd/devices/nmemX/papr/health_bitmap_inject
|
||||
Date: Jan, 2022
|
||||
KernelVersion: v5.17
|
||||
Contact: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, nvdimm@lists.linux.dev,
|
||||
Description:
|
||||
(RO) Reports the health bitmap inject bitmap that is applied to
|
||||
bitmap received from PowerVM via the H_SCM_HEALTH. This is used
|
||||
to forcibly set specific bits returned from Hcall. These is then
|
||||
used to simulate various health or shutdown states for an nvdimm
|
||||
and are set by user-space tools like ndctl by issuing a PAPR DSM.
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
What: /sys/firmware/papr/energy_scale_info
|
||||
Date: February 2022
|
||||
Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
|
||||
Description: Directory hosting a set of platform attributes like
|
||||
energy/frequency on Linux running as a PAPR guest.
|
||||
|
||||
Each file in a directory contains a platform
|
||||
attribute hierarchy pertaining to performance/
|
||||
energy-savings mode and processor frequency.
|
||||
|
||||
What: /sys/firmware/papr/energy_scale_info/<id>
|
||||
Date: February 2022
|
||||
Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
|
||||
Description: Energy, frequency attributes directory for POWERVM servers
|
||||
|
||||
What: /sys/firmware/papr/energy_scale_info/<id>/desc
|
||||
Date: February 2022
|
||||
Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
|
||||
Description: String description of the energy attribute of <id>
|
||||
|
||||
What: /sys/firmware/papr/energy_scale_info/<id>/value
|
||||
Date: February 2022
|
||||
Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
|
||||
Description: Numeric value of the energy attribute of <id>
|
||||
|
||||
What: /sys/firmware/papr/energy_scale_info/<id>/value_desc
|
||||
Date: February 2022
|
||||
Contact: Linux for PowerPC mailing list <linuxppc-dev@ozlabs.org>
|
||||
Description: String value of the energy attribute of <id>
|
||||
@@ -202,6 +202,9 @@ config HAVE_FUNCTION_ERROR_INJECTION
|
||||
config HAVE_NMI
|
||||
bool
|
||||
|
||||
config HAVE_FUNCTION_DESCRIPTORS
|
||||
bool
|
||||
|
||||
config TRACE_IRQFLAGS_SUPPORT
|
||||
bool
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ config IA64
|
||||
select HAVE_SETUP_PER_CPU_AREA
|
||||
select TTY
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_FUNCTION_DESCRIPTORS
|
||||
select HAVE_VIRT_CPU_ACCOUNTING
|
||||
select HUGETLB_PAGE_SIZE_VARIABLE if HUGETLB_PAGE
|
||||
select VIRT_TO_BUS
|
||||
|
||||
@@ -226,7 +226,7 @@ struct got_entry {
|
||||
* Layout of the Function Descriptor
|
||||
*/
|
||||
struct fdesc {
|
||||
uint64_t ip;
|
||||
uint64_t addr;
|
||||
uint64_t gp;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
|
||||
#include <linux/elf.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
typedef struct fdesc func_desc_t;
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
extern char __phys_per_cpu_start[];
|
||||
@@ -27,25 +30,4 @@ extern char __start_gate_brl_fsys_bubble_down_patchlist[], __end_gate_brl_fsys_b
|
||||
extern char __start_unwind[], __end_unwind[];
|
||||
extern char __start_ivt_text[], __end_ivt_text[];
|
||||
|
||||
#define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
|
||||
|
||||
#undef dereference_function_descriptor
|
||||
static inline void *dereference_function_descriptor(void *ptr)
|
||||
{
|
||||
struct fdesc *desc = ptr;
|
||||
void *p;
|
||||
|
||||
if (!get_kernel_nofault(p, (void *)&desc->ip))
|
||||
ptr = p;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
#undef dereference_kernel_function_descriptor
|
||||
static inline void *dereference_kernel_function_descriptor(void *ptr)
|
||||
{
|
||||
if (ptr < (void *)__start_opd || ptr >= (void *)__end_opd)
|
||||
return ptr;
|
||||
return dereference_function_descriptor(ptr);
|
||||
}
|
||||
|
||||
#endif /* _ASM_IA64_SECTIONS_H */
|
||||
|
||||
@@ -602,15 +602,15 @@ get_fdesc (struct module *mod, uint64_t value, int *okp)
|
||||
return value;
|
||||
|
||||
/* Look for existing function descriptor. */
|
||||
while (fdesc->ip) {
|
||||
if (fdesc->ip == value)
|
||||
while (fdesc->addr) {
|
||||
if (fdesc->addr == value)
|
||||
return (uint64_t)fdesc;
|
||||
if ((uint64_t) ++fdesc >= mod->arch.opd->sh_addr + mod->arch.opd->sh_size)
|
||||
BUG();
|
||||
}
|
||||
|
||||
/* Create new one */
|
||||
fdesc->ip = value;
|
||||
fdesc->addr = value;
|
||||
fdesc->gp = mod->arch.gp;
|
||||
return (uint64_t) fdesc;
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ config PARISC
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_REGS
|
||||
select HAVE_SOFTIRQ_ON_OWN_STACK if IRQSTACKS
|
||||
select TRACE_IRQFLAGS_SUPPORT
|
||||
select HAVE_FUNCTION_DESCRIPTORS if 64BIT
|
||||
|
||||
help
|
||||
The PA-RISC microprocessor is designed by Hewlett-Packard and used
|
||||
|
||||
@@ -2,20 +2,14 @@
|
||||
#ifndef _PARISC_SECTIONS_H
|
||||
#define _PARISC_SECTIONS_H
|
||||
|
||||
#ifdef CONFIG_HAVE_FUNCTION_DESCRIPTORS
|
||||
#include <asm/elf.h>
|
||||
typedef Elf64_Fdesc func_desc_t;
|
||||
#endif
|
||||
|
||||
/* nothing to see, move along */
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
extern char __alt_instructions[], __alt_instructions_end[];
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
|
||||
#define HAVE_DEREFERENCE_FUNCTION_DESCRIPTOR 1
|
||||
|
||||
#undef dereference_function_descriptor
|
||||
void *dereference_function_descriptor(void *);
|
||||
|
||||
#undef dereference_kernel_function_descriptor
|
||||
void *dereference_kernel_function_descriptor(void *);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -263,27 +263,6 @@ __get_wchan(struct task_struct *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
void *dereference_function_descriptor(void *ptr)
|
||||
{
|
||||
Elf64_Fdesc *desc = ptr;
|
||||
void *p;
|
||||
|
||||
if (!get_kernel_nofault(p, (void *)&desc->addr))
|
||||
ptr = p;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void *dereference_kernel_function_descriptor(void *ptr)
|
||||
{
|
||||
if (ptr < (void *)__start_opd ||
|
||||
ptr >= (void *)__end_opd)
|
||||
return ptr;
|
||||
|
||||
return dereference_function_descriptor(ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline unsigned long brk_rnd(void)
|
||||
{
|
||||
return (get_random_int() & BRK_RND_MASK) << PAGE_SHIFT;
|
||||
|
||||
@@ -9,6 +9,10 @@ config 64BIT
|
||||
bool
|
||||
default y if PPC64
|
||||
|
||||
config LIVEPATCH_64
|
||||
def_bool PPC64
|
||||
depends on LIVEPATCH
|
||||
|
||||
config MMU
|
||||
bool
|
||||
default y
|
||||
@@ -132,7 +136,7 @@ config PPC
|
||||
select ARCH_HAS_SET_MEMORY
|
||||
select ARCH_HAS_STRICT_KERNEL_RWX if (PPC_BOOK3S || PPC_8xx || 40x) && !HIBERNATION
|
||||
select ARCH_HAS_STRICT_KERNEL_RWX if FSL_BOOKE && !HIBERNATION && !RANDOMIZE_BASE
|
||||
select ARCH_HAS_STRICT_MODULE_RWX if ARCH_HAS_STRICT_KERNEL_RWX && !PPC_BOOK3S_32
|
||||
select ARCH_HAS_STRICT_MODULE_RWX if ARCH_HAS_STRICT_KERNEL_RWX
|
||||
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||||
select ARCH_HAS_UACCESS_FLUSHCACHE
|
||||
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
||||
@@ -198,11 +202,13 @@ config PPC
|
||||
select HAVE_DEBUG_KMEMLEAK
|
||||
select HAVE_DEBUG_STACKOVERFLOW
|
||||
select HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_ARGS if MPROFILE_KERNEL || PPC32
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_REGS if MPROFILE_KERNEL || PPC32
|
||||
select HAVE_EBPF_JIT
|
||||
select HAVE_EFFICIENT_UNALIGNED_ACCESS if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
|
||||
select HAVE_FAST_GUP
|
||||
select HAVE_FTRACE_MCOUNT_RECORD
|
||||
select HAVE_FUNCTION_DESCRIPTORS if PPC64 && !CPU_LITTLE_ENDIAN
|
||||
select HAVE_FUNCTION_ERROR_INJECTION
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_FUNCTION_TRACER
|
||||
@@ -222,7 +228,7 @@ config PPC
|
||||
select HAVE_KPROBES_ON_FTRACE
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS && PPC64
|
||||
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select HAVE_NMI if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
|
||||
select HAVE_OPTPROBES
|
||||
|
||||
@@ -171,7 +171,7 @@ else
|
||||
CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5))
|
||||
CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4)
|
||||
endif
|
||||
else
|
||||
else ifdef CONFIG_PPC_BOOK3E_64
|
||||
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
|
||||
endif
|
||||
|
||||
@@ -213,7 +213,7 @@ CHECKFLAGS += -m$(BITS) -D__powerpc__ -D__powerpc$(BITS)__
|
||||
ifdef CONFIG_CPU_BIG_ENDIAN
|
||||
CHECKFLAGS += -D__BIG_ENDIAN__
|
||||
else
|
||||
CHECKFLAGS += -D__LITTLE_ENDIAN__
|
||||
CHECKFLAGS += -D__LITTLE_ENDIAN__ -D_CALL_ELF=2
|
||||
endif
|
||||
|
||||
ifdef CONFIG_476FPE_ERR46
|
||||
@@ -421,9 +421,9 @@ ifeq ($(KBUILD_EXTMOD),)
|
||||
prepare: vdso_prepare
|
||||
vdso_prepare: prepare0
|
||||
$(if $(CONFIG_VDSO32),$(Q)$(MAKE) \
|
||||
$(build)=arch/powerpc/kernel/vdso32 include/generated/vdso32-offsets.h)
|
||||
$(build)=arch/powerpc/kernel/vdso include/generated/vdso32-offsets.h)
|
||||
$(if $(CONFIG_PPC64),$(Q)$(MAKE) \
|
||||
$(build)=arch/powerpc/kernel/vdso64 include/generated/vdso64-offsets.h)
|
||||
$(build)=arch/powerpc/kernel/vdso include/generated/vdso64-offsets.h)
|
||||
endif
|
||||
|
||||
archprepare: checkbin
|
||||
|
||||
1
arch/powerpc/boot/.gitignore
vendored
1
arch/powerpc/boot/.gitignore
vendored
@@ -16,6 +16,7 @@ kernel-vmlinux.strip.c
|
||||
kernel-vmlinux.strip.gz
|
||||
mktree
|
||||
otheros.bld
|
||||
otheros-too-big.bld
|
||||
uImage
|
||||
cuImage.*
|
||||
dtbImage.*
|
||||
|
||||
30
arch/powerpc/boot/dts/fsl/t1040rdb-rev-a.dts
Normal file
30
arch/powerpc/boot/dts/fsl/t1040rdb-rev-a.dts
Normal file
@@ -0,0 +1,30 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* T1040RDB-REV-A Device Tree Source
|
||||
*
|
||||
* Copyright 2014 - 2015 Freescale Semiconductor Inc.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "t1040rdb.dts"
|
||||
|
||||
/ {
|
||||
model = "fsl,T1040RDB-REV-A";
|
||||
compatible = "fsl,T1040RDB-REV-A";
|
||||
};
|
||||
|
||||
&seville_port0 {
|
||||
label = "ETH5";
|
||||
};
|
||||
|
||||
&seville_port2 {
|
||||
label = "ETH7";
|
||||
};
|
||||
|
||||
&seville_port4 {
|
||||
label = "ETH9";
|
||||
};
|
||||
|
||||
&seville_port6 {
|
||||
label = "ETH11";
|
||||
};
|
||||
@@ -119,7 +119,7 @@
|
||||
managed = "in-band-status";
|
||||
phy-handle = <&phy_qsgmii_0>;
|
||||
phy-mode = "qsgmii";
|
||||
label = "ETH5";
|
||||
label = "ETH3";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
managed = "in-band-status";
|
||||
phy-handle = <&phy_qsgmii_2>;
|
||||
phy-mode = "qsgmii";
|
||||
label = "ETH7";
|
||||
label = "ETH5";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
managed = "in-band-status";
|
||||
phy-handle = <&phy_qsgmii_4>;
|
||||
phy-mode = "qsgmii";
|
||||
label = "ETH9";
|
||||
label = "ETH7";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
managed = "in-band-status";
|
||||
phy-handle = <&phy_qsgmii_6>;
|
||||
phy-mode = "qsgmii";
|
||||
label = "ETH11";
|
||||
label = "ETH9";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -139,12 +139,12 @@
|
||||
fman@400000 {
|
||||
ethernet@e6000 {
|
||||
phy-handle = <&phy_rgmii_0>;
|
||||
phy-connection-type = "rgmii";
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
ethernet@e8000 {
|
||||
phy-handle = <&phy_rgmii_1>;
|
||||
phy-connection-type = "rgmii";
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
mdio0: mdio@fc000 {
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
reg = <0x68>;
|
||||
};
|
||||
|
||||
dtt@48 {
|
||||
dtt@34 {
|
||||
compatible = "maxim,max1237";
|
||||
reg = <0x34>;
|
||||
};
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
reg = <0x68>;
|
||||
};
|
||||
|
||||
dtt@48 {
|
||||
dtt@34 {
|
||||
compatible = "maxim,max1237";
|
||||
reg = <0x34>;
|
||||
};
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#define PPC_STLCX stringify_in_c(stdcx.)
|
||||
#define PPC_CNTLZL stringify_in_c(cntlzd)
|
||||
#define PPC_MTOCRF(FXM, RS) MTOCRF((FXM), RS)
|
||||
#define PPC_SRL stringify_in_c(srd)
|
||||
#define PPC_LR_STKOFF 16
|
||||
#define PPC_MIN_STKFRM 112
|
||||
|
||||
@@ -54,6 +55,7 @@
|
||||
#define PPC_STLCX stringify_in_c(stwcx.)
|
||||
#define PPC_CNTLZL stringify_in_c(cntlzw)
|
||||
#define PPC_MTOCRF stringify_in_c(mtcrf)
|
||||
#define PPC_SRL stringify_in_c(srw)
|
||||
#define PPC_LR_STKOFF 4
|
||||
#define PPC_MIN_STKFRM 16
|
||||
|
||||
|
||||
@@ -19,22 +19,6 @@
|
||||
|
||||
#include <uapi/asm/ucontext.h>
|
||||
|
||||
/* SMP */
|
||||
extern struct task_struct *current_set[NR_CPUS];
|
||||
extern struct task_struct *secondary_current;
|
||||
void start_secondary(void *unused);
|
||||
|
||||
/* kexec */
|
||||
struct paca_struct;
|
||||
struct kimage;
|
||||
extern struct paca_struct kexec_paca;
|
||||
void kexec_copy_flush(struct kimage *image);
|
||||
|
||||
/* pseries hcall tracing */
|
||||
extern struct static_key hcall_tracepoint_key;
|
||||
void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
|
||||
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
|
||||
|
||||
/* Ultravisor */
|
||||
#if defined(CONFIG_PPC_POWERNV) || defined(CONFIG_PPC_SVM)
|
||||
long ucall_norets(unsigned long opcode, ...);
|
||||
@@ -50,49 +34,12 @@ int64_t __opal_call(int64_t a0, int64_t a1, int64_t a2, int64_t a3,
|
||||
int64_t a4, int64_t a5, int64_t a6, int64_t a7,
|
||||
int64_t opcode, uint64_t msr);
|
||||
|
||||
/* VMX copying */
|
||||
int enter_vmx_usercopy(void);
|
||||
int exit_vmx_usercopy(void);
|
||||
int enter_vmx_ops(void);
|
||||
void *exit_vmx_ops(void *dest);
|
||||
|
||||
/* signals, syscalls and interrupts */
|
||||
long sys_swapcontext(struct ucontext __user *old_ctx,
|
||||
struct ucontext __user *new_ctx,
|
||||
long ctx_size);
|
||||
#ifdef CONFIG_PPC32
|
||||
long sys_debug_setcontext(struct ucontext __user *ctx,
|
||||
int ndbg, struct sig_dbg_op __user *dbg);
|
||||
int
|
||||
ppc_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||
struct __kernel_old_timeval __user *tvp);
|
||||
unsigned long __init early_init(unsigned long dt_ptr);
|
||||
void __init machine_init(u64 dt_ptr);
|
||||
#endif
|
||||
long system_call_exception(long r3, long r4, long r5, long r6, long r7, long r8, unsigned long r0, struct pt_regs *regs);
|
||||
notrace unsigned long syscall_exit_prepare(unsigned long r3, struct pt_regs *regs, long scv);
|
||||
notrace unsigned long interrupt_exit_user_prepare(struct pt_regs *regs);
|
||||
notrace unsigned long interrupt_exit_kernel_prepare(struct pt_regs *regs);
|
||||
#ifdef CONFIG_PPC64
|
||||
unsigned long syscall_exit_restart(unsigned long r3, struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_user_restart(struct pt_regs *regs);
|
||||
unsigned long interrupt_exit_kernel_restart(struct pt_regs *regs);
|
||||
#endif
|
||||
|
||||
long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low,
|
||||
u32 len_high, u32 len_low);
|
||||
long sys_switch_endian(void);
|
||||
|
||||
/* prom_init (OpenFirmware) */
|
||||
unsigned long __init prom_init(unsigned long r3, unsigned long r4,
|
||||
unsigned long pp,
|
||||
unsigned long r6, unsigned long r7,
|
||||
unsigned long kbase);
|
||||
|
||||
/* setup */
|
||||
void __init early_setup(unsigned long dt_ptr);
|
||||
void early_setup_secondary(void);
|
||||
|
||||
/* misc runtime */
|
||||
extern u64 __bswapdi2(u64);
|
||||
extern s64 __lshrdi3(s64, int);
|
||||
@@ -103,11 +50,6 @@ extern int __ucmpdi2(u64, u64);
|
||||
|
||||
/* tracing */
|
||||
void _mcount(void);
|
||||
unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip,
|
||||
unsigned long sp);
|
||||
|
||||
void pnv_power9_force_smt4_catch(void);
|
||||
void pnv_power9_force_smt4_release(void);
|
||||
|
||||
/* Transaction memory related */
|
||||
void tm_enable(void);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user