arm64: mm: Try to fix alignment faults
Change-Id: I7ceba0ae2270b95d42eb1c8f13c0ff605429283e Signed-off-by: Simon Xue <xxm@rock-chips.com>
This commit is contained in:
parent
560194a6c5
commit
85623ff322
|
|
@ -13,3 +13,5 @@ KASAN_SANITIZE_physaddr.o += n
|
|||
|
||||
obj-$(CONFIG_KASAN) += kasan_init.o
|
||||
KASAN_SANITIZE_kasan_init.o := n
|
||||
|
||||
obj-$(CONFIG_ROCKCHIP_ARM64_ALIGN_FAULT_FIX) += fixup_fault.o
|
||||
|
|
|
|||
|
|
@ -702,9 +702,17 @@ static int __kprobes do_translation_fault(unsigned long far,
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ROCKCHIP_ARM64_ALIGN_FAULT_FIX
|
||||
extern int alignment_fixup_helper(unsigned long addr, unsigned int esr,
|
||||
struct pt_regs *regs);
|
||||
#endif
|
||||
static int do_alignment_fault(unsigned long far, unsigned int esr,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
#ifdef CONFIG_ROCKCHIP_ARM64_ALIGN_FAULT_FIX
|
||||
if (!alignment_fixup_helper(far, esr, regs))
|
||||
return 0;
|
||||
#endif
|
||||
do_bad_area(far, esr, regs);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -28,6 +28,12 @@ config ROCKCHIP_AMP
|
|||
Say y here to enable Rockchip AMP support.
|
||||
This option protects resources used by AMP.
|
||||
|
||||
config ROCKCHIP_ARM64_ALIGN_FAULT_FIX
|
||||
bool "Rockchip align fault fix support"
|
||||
depends on ARM64 && NO_GKI
|
||||
help
|
||||
Say y here to enable Rockchip align fault fix support.
|
||||
|
||||
config ROCKCHIP_CPUINFO
|
||||
tristate "Rockchip cpuinfo support"
|
||||
depends on (ROCKCHIP_EFUSE || ROCKCHIP_OTP) && (ARM64 || ARM)
|
||||
|
|
|
|||
Loading…
Reference in New Issue