04ff6cbc91
More optimization issues when compiling with Clang. Panics happen when the device goes into standby with the following report. <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM:: MIF down. cur_count: 5, acc_count: 5 <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM:: MIF_UP history: <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM: mifuser: 0x540000, time: 5:35:40, latency: 1955[usec] <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM: mifuser: 0x400000, time: 5:35:40, latency: 1956[usec] <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM: mifuser: 0x100000, time: 5:35:41, latency: 1954[usec] <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM: mifuser: 0x400000, time: 5:35:41, latency: 1955[usec] <6>[ 1470.900859] [0: Binder:4157_2: 8735] EXYNOS-PM: mifuser: 0x100000, time: 5:35:41, latency: 1955[usec] <0>[ 1470.900859] [0: Binder:4157_2: 8735] Unable to handle kernel paging request at virtual address ffffff800b346f9c <2>[ 1470.900859] [0: Binder:4157_2: 8735] sec_debug_set_extra_info_fault = KERN / 0xffffff800b346f9c <1>[ 1470.900859] [0: Binder:4157_2: 8735] Mem abort info: <1>[ 1470.900859] [0: Binder:4157_2: 8735] Exception class = DABT (current EL), IL = 32 bits <1>[ 1470.900859] [0: Binder:4157_2: 8735] SET = 0, FnV = 0 <1>[ 1470.900859] [0: Binder:4157_2: 8735] EA = 0, S1PTW = 0 <1>[ 1470.900859] [0: Binder:4157_2: 8735] Data abort info: <1>[ 1470.900859] [0: Binder:4157_2: 8735] ISV = 0, ISS = 0x00000061 <1>[ 1470.900859] [0: Binder:4157_2: 8735] CM = 0, WnR = 1 <1>[ 1470.900859] [0: Binder:4157_2: 8735] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a66a000 <1>[ 1470.900859] [0: Binder:4157_2: 8735] [ffffff800b346f9c] *pgd=000000097cdfe003, *pud=000000097cdfe003, *pmd=00000009740b7003, *pte=00e800000203f707 <0>[ 1470.900859] [0: Binder:4157_2: 8735] Internal error: Oops: 96000061 [#1] PREEMPT SMP <4>[ 1470.900859] [0: Binder:4157_2: 8735] Modules linked in: <0>[ 1470.900859] [0: Binder:4157_2: 8735] Process Binder:4157_2 (pid: 8735, stack limit = 0xffffff8039708000) <0>[ 1470.900859] [0: Binder:4157_2: 8735] debug-snapshot: core register saved(CPU:0) <0>[ 1470.900859] [0: Binder:4157_2: 8735] L2ECTLR_EL1: 0000000000000007 <0>[ 1470.900859] [0: Binder:4157_2: 8735] L2ECTLR_EL1 valid_bit(30) is NOT set (0x0) <0>[ 1470.900859] [0: Binder:4157_2: 8735] CPUMERRSR: 0000000008000001, L2MERRSR: 0000000010200c00 <0>[ 1470.900859] [0: Binder:4157_2: 8735] CPUMERRSR valid_bit(31) is NOT set (0x0) <0>[ 1470.900859] [0: Binder:4157_2: 8735] L2MERRSR valid_bit(31) is NOT set (0x0) <0>[ 1470.900859] [0: Binder:4157_2: 8735] debug-snapshot: context saved(CPU:0) <6>[ 1470.900859] [0: Binder:4157_2: 8735] debug-snapshot: item - log_kevents is disabled <6>[ 1470.900859] [0: Binder:4157_2: 8735] TIF_FOREIGN_FPSTATE: 1, FP/SIMD depth 0, cpu: 0 <4>[ 1470.900859] [0: Binder:4157_2: 8735] CPU: 0 PID: 8735 Comm: Binder:4157_2 Not tainted 4.14.113 - Fresh Core-user #1 <4>[ 1470.900859] [0: Binder:4157_2: 8735] Hardware name: Samsung A50 LTN OPEN rev04 board based on Exynos9610 (DT) <4>[ 1470.900859] [0: Binder:4157_2: 8735] task: ffffffc0466d6000 task.stack: ffffff8039708000 <4>[ 1470.900859] [0: Binder:4157_2: 8735] PC is at acpm_get_inform+0x90/0x100 <4>[ 1470.900859] [0: Binder:4157_2: 8735] LR is at acpm_get_inform+0x7c/0x100 <4>[ 1470.900859] [0: Binder:4157_2: 8735] pc : [<ffffff8008505cd4>] lr : [<ffffff8008505cc0>] pstate: 604001c5 <4>[ 1470.900859] [0: Binder:4157_2: 8735] sp : ffffff803970bac0 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x29: ffffff803970bac0 x28: ffffffc0466d6000 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x27: ffffff8008e44b64 x26: ffffff8008e44b3e <4>[ 1470.900859] [0: Binder:4157_2: 8735] x25: ffffff8009e5f210 x24: 0000000010624dd3 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x23: 0000000000000029 x22: 0000000000000018 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x21: ffffff8009e2c000 x20: ffffff8008ef6785 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x19: ffffff8008ef674c x18: 00000000000000a0 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x17: ffffff8009b3023c x16: 0000000000000001 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x15: ffffff8008c8a964 x14: 202c303030303031 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x13: 7830203a72657375 x12: 0000000000000000 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x11: 0000000000000000 x10: ffffffffffffffff <4>[ 1470.900859] [0: Binder:4157_2: 8735] x9 : ffffff800b346f00 x8 : ffffff800b346f00 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x7 : 203a79636e657461 x6 : ffffff80f615273c <4>[ 1470.900859] [0: Binder:4157_2: 8735] x5 : 000000000000221f x4 : 000000000000000c <4>[ 1470.900859] [0: Binder:4157_2: 8735] x3 : 000000000000000a x2 : 0000000000000000 <4>[ 1470.900859] [0: Binder:4157_2: 8735] x1 : 00000000000001c0 x0 : 0000000000000041 Similar solution as d855e6f. Make the structs volatile to prevent optimization. Signed-off-by: John Vincent <git@tensevntysevn.cf> Signed-off-by: Samuel Pascua <sgpascua@ngcp.ph> |
||
---|---|---|
.. | ||
acpm | ||
cal-if | ||
cpif | ||
debug | ||
dm | ||
ect_parser | ||
exynos-hdcp | ||
exynos-pd | ||
exynos-pm | ||
gnssif | ||
pm_qos | ||
xperf | ||
exynos-afm.c | ||
exynos-asv.c | ||
exynos-asv.h | ||
exynos-bcm_dbg-8825.c | ||
exynos-bcm_dbg-9925.c | ||
exynos-bcm_dbg-dt.c | ||
exynos-bcm_dbg-dump.c | ||
exynos-bcm_dbg.c | ||
exynos-bcm_dbg.h | ||
exynos-chipid.c | ||
exynos-chipid_v2.c | ||
exynos-cm.c | ||
exynos-cpu-profiler.c | ||
exynos-cpuhp.c | ||
exynos-cpupm.c | ||
exynos-el2.c | ||
exynos-flexpmu-dbg.c | ||
exynos-gpu-profiler.c | ||
exynos-mcinfo.c | ||
exynos-mif-profiler.c | ||
exynos-migov.c | ||
exynos-pmu-if.c | ||
exynos-pmu.c | ||
exynos-pmu.h | ||
exynos-ppmpu.c | ||
exynos-regulator-coupler.c | ||
exynos-s2mpu.c | ||
exynos-sci.c | ||
exynos-sci_dbg.c | ||
exynos-sdm.c | ||
exynos-seclog.c | ||
exynos-seh.c | ||
exynos-ssp.c | ||
exynos-tzasc.c | ||
exynos-ufcc.c | ||
exynos-wow.c | ||
exynos4-pmu.c | ||
exynos3250-pmu.c | ||
exynos5250-pmu.c | ||
exynos5420-pmu.c | ||
exynos5422-asv.c | ||
exynos5422-asv.h | ||
imgloader.c | ||
Kconfig | ||
Makefile | ||
memlogger.c | ||
pm_domains.c | ||
s3c-pm-check.c | ||
s3c-pm-debug.c | ||
secmem.c | ||
sysevent.c | ||
sysevent_notif.c | ||
usi_v2.c |