From 7e60834fb10cc5b57dfc01e920224fb8ac28696f Mon Sep 17 00:00:00 2001 From: xiaoy3 Date: Fri, 23 Nov 2018 15:00:07 +0800 Subject: [PATCH] tzlog_dump:Fix the issue that hang in M logo after device crash hardreset can not reset DDR issue, that lead to tzlog_dump_probe bad address log : tzlog_dump probe failed [ 1.968067,6] tzlog_dump soc:tzlog_dump: tzlog_dump_size 30000 [ 1.968078,6] tzlog_dump soc:tzlog_dump: tzlog_dump_addr eefa2000 [ 1.968147,6] Unable to handle kernel paging request at virtual address ffffff808b1a60a8 [ 1.968151,6] pgd = ffffffc0e7fa8000 [ 1.968155,5] [ffffff808b1a60a8] *pgd=0000000000000000, *pud=0000000000000000 [ 1.968189,6] ------------[ cut here ]------------ [ 1.968193,6] Kernel BUG at ffffff828ce51310 [verbose debug info unavailable] [ 1.968197,6] Internal error: Oops: 96000005 [#1] PREEMPT SMP [ 1.968202,6] Modules linked in: tzlog_dump(O+) mmi_info(O) mmi_annotate(O) sensors_class(O) watchdogtest(O) utags(O) exfat(O) machine_ext_dlkm(O) machine_dlkm(O) wcd9335_dlkm(O) cpe_lsm_dlkm(O) wcd_cpe_dlkm(O) analog_cdc_dlkm(O) digital_cdc_dlkm(O) stub_dlkm(O) mbhc_dlkm(O) wsa881x_analog_dlkm(O) wsa881x_dlkm(O) wcd9xxx_dlkm(O) wcd_core_dlkm(O) hdmi_dlkm(O) swr_ctrl_dlkm(O) swr_dlkm(O) pinctrl_wcd_dlkm(O) native_dlkm(O) platform_dlkm(O) cirrus_playback(O) usf_dlkm(O) q6_dlkm(O) adsp_loader_dlkm(O) apr_dlkm(O) q6_notifier_dlkm(O) [ 1.968267,6] CPU: 6 PID: 448 Comm: modprobe Tainted: G O 4.9.112-perf+ #1 [ 1.968271,6] Hardware name: river (DT) [ 1.968275,6] task: ffffffc0e7bc8000 task.stack: ffffffc0e7e5c000 [ 1.968284,6] PC is at tzlog_dump_probe+0x1f8/0x580 [tzlog_dump] [ 1.968290,6] LR is at tzlog_dump_probe+0x1e4/0x580 [tzlog_dump] [ 1.968294,6] pc : [] lr : [] pstate: 20400145 [ 1.968296,6] sp : ffffffc0e7e5fa20 [ 1.968299,6] x29: ffffffc0e7e5fa30 Change-Id: I70a5f2e3cd67bad6ce16732e23a90125adc1b8a3 Signed-off-by: xiaoy3 Reviewed-on: https://gerrit.mot.com/1273103 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Reviewed-by: Zhenxin Xi Tested-by: Jira Key Submit-Approved: Jira Key --- drivers/tzlog_dump/tzlog_dump.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tzlog_dump/tzlog_dump.c b/drivers/tzlog_dump/tzlog_dump.c index 0cdc0e22df8f..89cc9590923e 100644 --- a/drivers/tzlog_dump/tzlog_dump.c +++ b/drivers/tzlog_dump/tzlog_dump.c @@ -290,6 +290,7 @@ static int tzlog_dump_probe(struct platform_device *pdev) } tzlog_dump_annotate(); + memset_io(tzdbg_data, 0, pdata->mem_size); err: return err; }