mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
powerpc/64s/exception: move head-64.h exception code to exception-64s.S
The head-64.h code should deal only with the head code sections and offset calculations. No generated code change except BUG line number constants. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20190802105709.27696-19-npiggin@gmail.com
This commit is contained in:
parent
c31f7134dc
commit
a243281195
2 changed files with 41 additions and 41 deletions
|
@ -169,47 +169,6 @@ end_##sname:
|
||||||
|
|
||||||
#define ABS_ADDR(label) (label - fs_label + fs_start)
|
#define ABS_ADDR(label) (label - fs_label + fs_start)
|
||||||
|
|
||||||
#define EXC_REAL_BEGIN(name, start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN_LOCATION(real_vectors, exc_real_##start##_##name, start, size)
|
|
||||||
|
|
||||||
#define EXC_REAL_END(name, start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_END_LOCATION(real_vectors, exc_real_##start##_##name, start, size)
|
|
||||||
|
|
||||||
#define EXC_VIRT_BEGIN(name, start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN_LOCATION(virt_vectors, exc_virt_##start##_##name, start, size)
|
|
||||||
|
|
||||||
#define EXC_VIRT_END(name, start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_END_LOCATION(virt_vectors, exc_virt_##start##_##name, start, size)
|
|
||||||
|
|
||||||
#define EXC_COMMON_BEGIN(name) \
|
|
||||||
USE_TEXT_SECTION(); \
|
|
||||||
.balign IFETCH_ALIGN_BYTES; \
|
|
||||||
.global name; \
|
|
||||||
_ASM_NOKPROBE_SYMBOL(name); \
|
|
||||||
DEFINE_FIXED_SYMBOL(name); \
|
|
||||||
name:
|
|
||||||
|
|
||||||
#define TRAMP_REAL_BEGIN(name) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN(real_trampolines, name)
|
|
||||||
|
|
||||||
#define TRAMP_VIRT_BEGIN(name) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN(virt_trampolines, name)
|
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
|
|
||||||
#define TRAMP_KVM_BEGIN(name) \
|
|
||||||
TRAMP_VIRT_BEGIN(name)
|
|
||||||
#else
|
|
||||||
#define TRAMP_KVM_BEGIN(name)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define EXC_REAL_NONE(start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN_LOCATION(real_vectors, exc_real_##start##_##unused, start, size); \
|
|
||||||
FIXED_SECTION_ENTRY_END_LOCATION(real_vectors, exc_real_##start##_##unused, start, size)
|
|
||||||
|
|
||||||
#define EXC_VIRT_NONE(start, size) \
|
|
||||||
FIXED_SECTION_ENTRY_BEGIN_LOCATION(virt_vectors, exc_virt_##start##_##unused, start, size); \
|
|
||||||
FIXED_SECTION_ENTRY_END_LOCATION(virt_vectors, exc_virt_##start##_##unused, start, size)
|
|
||||||
|
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
#endif /* _ASM_POWERPC_HEAD_64_H */
|
#endif /* _ASM_POWERPC_HEAD_64_H */
|
||||||
|
|
|
@ -43,6 +43,47 @@
|
||||||
.endif
|
.endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define EXC_REAL_BEGIN(name, start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN_LOCATION(real_vectors, exc_real_##start##_##name, start, size)
|
||||||
|
|
||||||
|
#define EXC_REAL_END(name, start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_END_LOCATION(real_vectors, exc_real_##start##_##name, start, size)
|
||||||
|
|
||||||
|
#define EXC_VIRT_BEGIN(name, start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN_LOCATION(virt_vectors, exc_virt_##start##_##name, start, size)
|
||||||
|
|
||||||
|
#define EXC_VIRT_END(name, start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_END_LOCATION(virt_vectors, exc_virt_##start##_##name, start, size)
|
||||||
|
|
||||||
|
#define EXC_COMMON_BEGIN(name) \
|
||||||
|
USE_TEXT_SECTION(); \
|
||||||
|
.balign IFETCH_ALIGN_BYTES; \
|
||||||
|
.global name; \
|
||||||
|
_ASM_NOKPROBE_SYMBOL(name); \
|
||||||
|
DEFINE_FIXED_SYMBOL(name); \
|
||||||
|
name:
|
||||||
|
|
||||||
|
#define TRAMP_REAL_BEGIN(name) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN(real_trampolines, name)
|
||||||
|
|
||||||
|
#define TRAMP_VIRT_BEGIN(name) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN(virt_trampolines, name)
|
||||||
|
|
||||||
|
#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
|
||||||
|
#define TRAMP_KVM_BEGIN(name) \
|
||||||
|
TRAMP_VIRT_BEGIN(name)
|
||||||
|
#else
|
||||||
|
#define TRAMP_KVM_BEGIN(name)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define EXC_REAL_NONE(start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN_LOCATION(real_vectors, exc_real_##start##_##unused, start, size); \
|
||||||
|
FIXED_SECTION_ENTRY_END_LOCATION(real_vectors, exc_real_##start##_##unused, start, size)
|
||||||
|
|
||||||
|
#define EXC_VIRT_NONE(start, size) \
|
||||||
|
FIXED_SECTION_ENTRY_BEGIN_LOCATION(virt_vectors, exc_virt_##start##_##unused, start, size); \
|
||||||
|
FIXED_SECTION_ENTRY_END_LOCATION(virt_vectors, exc_virt_##start##_##unused, start, size)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We're short on space and time in the exception prolog, so we can't
|
* We're short on space and time in the exception prolog, so we can't
|
||||||
* use the normal LOAD_REG_IMMEDIATE macro to load the address of label.
|
* use the normal LOAD_REG_IMMEDIATE macro to load the address of label.
|
||||||
|
|
Loading…
Reference in a new issue