Message ID | 20180928133248eucas1p27feaea76c3193825e319943c60491962~Yk5t7fL-z0673006730eucas1p2K@eucas1p2.samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: SAMSUNG: limit SAMSUNG_PM_CHECK config option to non-Exynos platforms | expand |
On Fri, Sep 28, 2018 at 03:32:46PM +0200, Bartlomiej Zolnierkiewicz wrote: > "S3C2410 PM Suspend Memory CRC" feature (controlled by > SAMSUNG_PM_CHECK config option) is incompatible with highmem > (uses phys_to_virt() instead of proper mapping) which is used by > the majority of Exynos boards. The issue manifests itself in OOPS > on affected boards, i.e. on Odroid-U3 I got the following one: > > [ 18.757127] Unable to handle kernel paging request at virtual address f0000000 > [ 18.757127] pgd = 1c0f9bb4 > [ 18.757127] [f0000000] *pgd=00000000 > [ 18.757127] Internal error: Oops: 5 [#1] PREEMPT SMP ARM > [ 18.757127] Modules linked in: > [ 18.757127] CPU: 0 PID: 1357 Comm: rtcwake Not tainted 4.19.0-rc1-next-20180830 #35 > [ 18.757127] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) > [ 18.757127] PC is at crc32_le+0x30/0x150 > [ 18.757127] LR is at s3c_pm_makecheck+0x34/0x54 > [ 18.757127] pc : [<c0458034>] lr : [<c0121f8c>] psr: 000000d3 > [ 18.757127] sp : ed2e3db0 ip : 00002000 fp : 00002000 > [ 18.757127] r10: 00000000 r9 : c0c2f6e8 r8 : c0fc0734 > [ 18.757127] r7 : 01000200 r6 : efffce40 r5 : ec68c000 r4 : effffffc > [ 18.757127] r3 : c0a25dc0 r2 : 00000000 r1 : effffffc r0 : ffffffff > [ 18.757127] Flags: nzcv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none > [ 18.757127] Control: 10c5387d Table: 6d24c04a DAC: 00000051 > [ 18.757127] Process rtcwake (pid: 1357, stack limit = 0x104b670f) > [ 18.757127] Stack: (0xed2e3db0 to 0xed2e4000) > [ 18.757127] 3da0: c0fc0734 00000000 70000000 ec68c000 > [ 18.757127] 3dc0: efffce40 01000200 c0fc0734 c0c2f6e8 00000000 c0fac13c efffce40 ec680000 > [ 18.757127] 3de0: c0121f58 c0121efc c0fc773c c0f0f3cc ec680000 c0121f58 01000200 c0121ecc > [ 18.757127] 3e00: c0fc773c c0f0d9e0 c0ce4d00 00000000 c0fac13c c01210b8 c0121054 c16d17ec > [ 18.757127] 3e20: 00000003 c018893c c0f07470 ec60b300 ec60b880 c017cc5c 00000000 60000053 > [ 18.757127] 3e40: c0f07470 c0faa913 00000003 c0f07470 c0fac13c c0c2f6f8 c0faa913 c0a035c4 > [ 18.757127] 3e60: c0c2f71c c0189534 00000001 00000006 00000000 00000003 c0c286c8 c16d180c > [ 18.757127] 3e80: 00000003 ec41c940 00000000 00000004 00000000 c0186ce8 00000004 ec4210c0 > [ 18.757127] 3ea0: 00000004 ec41c940 00000004 00000000 ec4210d0 c09db434 00000004 c02fa63c > [ 18.757127] 3ec0: ec4210c0 ec41c940 ed2e3f80 c02f97a4 00000000 00000000 c0a0dec4 b6f1a000 > [ 18.757127] 3ee0: ed1f8f00 ed2e3f80 00000004 ed2e2000 b6f1a000 c027b198 00000001 c017ccd4 > [ 18.757127] 3f00: 00000001 c0f53b64 ed1301f4 c0198fa4 c0faa925 c01992d8 d166c958 00000000 > [ 18.757127] 3f20: 00000000 c027cad0 00000001 00000000 c027b4b8 00000000 ed118554 ed1f8f00 > [ 18.757127] 3f40: ed1f8f00 00000004 b6f1a000 00000000 ed2e3f80 c027b418 b6f1a000 c023e65c > [ 18.757127] 3f60: 00000022 00000000 00000000 ed1f8f00 ed1f8f00 00000004 b6f1a000 c027b5d8 > [ 18.757127] 3f80: 00000000 00000000 00000000 00000004 b6f1a000 000160e0 00000004 c01011c4 > [ 18.757127] 3fa0: 00000004 c0101000 00000004 b6f1a000 00000004 b6f1a000 00000004 00000000 > [ 18.757127] 3fc0: 00000004 b6f1a000 000160e0 00000004 00000004 b6f1a000 00000004 00000000 > [ 18.757127] 3fe0: 00000000 be880b2c b6e21a6c b6e77a0c 60000050 00000004 00000000 00000000 > [ 18.757127] [<c0458034>] (crc32_le) from [<c0121f8c>] (s3c_pm_makecheck+0x34/0x54) > [ 18.757127] [<c0121f8c>] (s3c_pm_makecheck) from [<c0121efc>] (s3c_pm_run_res+0x74/0x8c) > [ 18.757127] [<c0121efc>] (s3c_pm_run_res) from [<c0121ecc>] (s3c_pm_run_res+0x44/0x8c) > [ 18.757127] [<c0121ecc>] (s3c_pm_run_res) from [<c01210b8>] (exynos_suspend_enter+0x64/0x148) > [ 18.757127] [<c01210b8>] (exynos_suspend_enter) from [<c018893c>] (suspend_devices_and_enter+0x9ec/0xe74) > [ 18.757127] [<c018893c>] (suspend_devices_and_enter) from [<c0189534>] (pm_suspend+0x770/0xc04) > [ 18.757127] [<c0189534>] (pm_suspend) from [<c0186ce8>] (state_store+0x6c/0xcc) > [ 18.757127] [<c0186ce8>] (state_store) from [<c09db434>] (kobj_attr_store+0x14/0x20) > [ 18.757127] [<c09db434>] (kobj_attr_store) from [<c02fa63c>] (sysfs_kf_write+0x4c/0x50) > [ 18.757127] [<c02fa63c>] (sysfs_kf_write) from [<c02f97a4>] (kernfs_fop_write+0xfc/0x1e4) > [ 18.757127] [<c02f97a4>] (kernfs_fop_write) from [<c027b198>] (__vfs_write+0x2c/0x140) > [ 18.757127] [<c027b198>] (__vfs_write) from [<c027b418>] (vfs_write+0xa4/0x160) > [ 18.757127] [<c027b418>] (vfs_write) from [<c027b5d8>] (ksys_write+0x40/0x8c) > [ 18.757127] [<c027b5d8>] (ksys_write) from [<c0101000>] (ret_fast_syscall+0x0/0x28) > [ 18.757127] Exception stack(0xed2e3fa8 to 0xed2e3ff0) > [ 18.757127] 3fa0: 00000004 b6f1a000 00000004 b6f1a000 00000004 00000000 > [ 18.757127] 3fc0: 00000004 b6f1a000 000160e0 00000004 00000004 b6f1a000 00000004 00000000 > [ 18.757127] 3fe0: 00000000 be880b2c b6e21a6c b6e77a0c > [ 18.757127] Code: 0a00002a e59f3120 e1a04001 e1a0c00b (e5945004) > [ 18.757127] ---[ end trace 213166221066122e ]--- > > Add PLAT_S3C24XX, ARCH_S3C64XX and ARCH_S5PV210 dependencies to > SAMSUNG_PM_CHECK config option to hide it on Exynos platforms. > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > --- > arch/arm/plat-samsung/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Thanks, applied with reduced OOPS log (all these addresses and register values do not look relevant and they blow up the commit message). Best regards, Krzysztof
Index: b/arch/arm/plat-samsung/Kconfig =================================================================== --- a/arch/arm/plat-samsung/Kconfig 2018-09-28 15:20:00.057911275 +0200 +++ b/arch/arm/plat-samsung/Kconfig 2018-09-28 15:20:00.053911275 +0200 @@ -256,7 +256,7 @@ config S3C_PM_DEBUG_LED_SMDK config SAMSUNG_PM_CHECK bool "S3C2410 PM Suspend Memory CRC" - depends on PM + depends on PM && (PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210) select CRC32 help Enable the PM code's memory area checksum over sleep. This option
"S3C2410 PM Suspend Memory CRC" feature (controlled by SAMSUNG_PM_CHECK config option) is incompatible with highmem (uses phys_to_virt() instead of proper mapping) which is used by the majority of Exynos boards. The issue manifests itself in OOPS on affected boards, i.e. on Odroid-U3 I got the following one: [ 18.757127] Unable to handle kernel paging request at virtual address f0000000 [ 18.757127] pgd = 1c0f9bb4 [ 18.757127] [f0000000] *pgd=00000000 [ 18.757127] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [ 18.757127] Modules linked in: [ 18.757127] CPU: 0 PID: 1357 Comm: rtcwake Not tainted 4.19.0-rc1-next-20180830 #35 [ 18.757127] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 18.757127] PC is at crc32_le+0x30/0x150 [ 18.757127] LR is at s3c_pm_makecheck+0x34/0x54 [ 18.757127] pc : [<c0458034>] lr : [<c0121f8c>] psr: 000000d3 [ 18.757127] sp : ed2e3db0 ip : 00002000 fp : 00002000 [ 18.757127] r10: 00000000 r9 : c0c2f6e8 r8 : c0fc0734 [ 18.757127] r7 : 01000200 r6 : efffce40 r5 : ec68c000 r4 : effffffc [ 18.757127] r3 : c0a25dc0 r2 : 00000000 r1 : effffffc r0 : ffffffff [ 18.757127] Flags: nzcv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none [ 18.757127] Control: 10c5387d Table: 6d24c04a DAC: 00000051 [ 18.757127] Process rtcwake (pid: 1357, stack limit = 0x104b670f) [ 18.757127] Stack: (0xed2e3db0 to 0xed2e4000) [ 18.757127] 3da0: c0fc0734 00000000 70000000 ec68c000 [ 18.757127] 3dc0: efffce40 01000200 c0fc0734 c0c2f6e8 00000000 c0fac13c efffce40 ec680000 [ 18.757127] 3de0: c0121f58 c0121efc c0fc773c c0f0f3cc ec680000 c0121f58 01000200 c0121ecc [ 18.757127] 3e00: c0fc773c c0f0d9e0 c0ce4d00 00000000 c0fac13c c01210b8 c0121054 c16d17ec [ 18.757127] 3e20: 00000003 c018893c c0f07470 ec60b300 ec60b880 c017cc5c 00000000 60000053 [ 18.757127] 3e40: c0f07470 c0faa913 00000003 c0f07470 c0fac13c c0c2f6f8 c0faa913 c0a035c4 [ 18.757127] 3e60: c0c2f71c c0189534 00000001 00000006 00000000 00000003 c0c286c8 c16d180c [ 18.757127] 3e80: 00000003 ec41c940 00000000 00000004 00000000 c0186ce8 00000004 ec4210c0 [ 18.757127] 3ea0: 00000004 ec41c940 00000004 00000000 ec4210d0 c09db434 00000004 c02fa63c [ 18.757127] 3ec0: ec4210c0 ec41c940 ed2e3f80 c02f97a4 00000000 00000000 c0a0dec4 b6f1a000 [ 18.757127] 3ee0: ed1f8f00 ed2e3f80 00000004 ed2e2000 b6f1a000 c027b198 00000001 c017ccd4 [ 18.757127] 3f00: 00000001 c0f53b64 ed1301f4 c0198fa4 c0faa925 c01992d8 d166c958 00000000 [ 18.757127] 3f20: 00000000 c027cad0 00000001 00000000 c027b4b8 00000000 ed118554 ed1f8f00 [ 18.757127] 3f40: ed1f8f00 00000004 b6f1a000 00000000 ed2e3f80 c027b418 b6f1a000 c023e65c [ 18.757127] 3f60: 00000022 00000000 00000000 ed1f8f00 ed1f8f00 00000004 b6f1a000 c027b5d8 [ 18.757127] 3f80: 00000000 00000000 00000000 00000004 b6f1a000 000160e0 00000004 c01011c4 [ 18.757127] 3fa0: 00000004 c0101000 00000004 b6f1a000 00000004 b6f1a000 00000004 00000000 [ 18.757127] 3fc0: 00000004 b6f1a000 000160e0 00000004 00000004 b6f1a000 00000004 00000000 [ 18.757127] 3fe0: 00000000 be880b2c b6e21a6c b6e77a0c 60000050 00000004 00000000 00000000 [ 18.757127] [<c0458034>] (crc32_le) from [<c0121f8c>] (s3c_pm_makecheck+0x34/0x54) [ 18.757127] [<c0121f8c>] (s3c_pm_makecheck) from [<c0121efc>] (s3c_pm_run_res+0x74/0x8c) [ 18.757127] [<c0121efc>] (s3c_pm_run_res) from [<c0121ecc>] (s3c_pm_run_res+0x44/0x8c) [ 18.757127] [<c0121ecc>] (s3c_pm_run_res) from [<c01210b8>] (exynos_suspend_enter+0x64/0x148) [ 18.757127] [<c01210b8>] (exynos_suspend_enter) from [<c018893c>] (suspend_devices_and_enter+0x9ec/0xe74) [ 18.757127] [<c018893c>] (suspend_devices_and_enter) from [<c0189534>] (pm_suspend+0x770/0xc04) [ 18.757127] [<c0189534>] (pm_suspend) from [<c0186ce8>] (state_store+0x6c/0xcc) [ 18.757127] [<c0186ce8>] (state_store) from [<c09db434>] (kobj_attr_store+0x14/0x20) [ 18.757127] [<c09db434>] (kobj_attr_store) from [<c02fa63c>] (sysfs_kf_write+0x4c/0x50) [ 18.757127] [<c02fa63c>] (sysfs_kf_write) from [<c02f97a4>] (kernfs_fop_write+0xfc/0x1e4) [ 18.757127] [<c02f97a4>] (kernfs_fop_write) from [<c027b198>] (__vfs_write+0x2c/0x140) [ 18.757127] [<c027b198>] (__vfs_write) from [<c027b418>] (vfs_write+0xa4/0x160) [ 18.757127] [<c027b418>] (vfs_write) from [<c027b5d8>] (ksys_write+0x40/0x8c) [ 18.757127] [<c027b5d8>] (ksys_write) from [<c0101000>] (ret_fast_syscall+0x0/0x28) [ 18.757127] Exception stack(0xed2e3fa8 to 0xed2e3ff0) [ 18.757127] 3fa0: 00000004 b6f1a000 00000004 b6f1a000 00000004 00000000 [ 18.757127] 3fc0: 00000004 b6f1a000 000160e0 00000004 00000004 b6f1a000 00000004 00000000 [ 18.757127] 3fe0: 00000000 be880b2c b6e21a6c b6e77a0c [ 18.757127] Code: 0a00002a e59f3120 e1a04001 e1a0c00b (e5945004) [ 18.757127] ---[ end trace 213166221066122e ]--- Add PLAT_S3C24XX, ARCH_S3C64XX and ARCH_S5PV210 dependencies to SAMSUNG_PM_CHECK config option to hide it on Exynos platforms. Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> --- arch/arm/plat-samsung/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)