From 2a3041442454875e5e83ac813479cdc1e1e28dd7 Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Wed, 21 Sep 2022 17:35:34 +0800 Subject: [PATCH] erofs: fix panic when CONFIG_ROCKCHIP_RAMDISK=y on ARM Internal error: Oops - BUG: 0 [#1] THUMB2 Modules linked in: CPU: 0 PID: 271 Comm: busybox Not tainted 5.10.110 #117 Hardware name: Generic DT based system PC is at __vm_insert_mixed+0x1e/0xda LR is at vmf_insert_mixed+0xf/0x12 pc : [] lr : [] psr: 20000133 sp : b668fdb0 ip : 00000000 fp : 00000000 r10: 00000000 r9 : b0bb25a8 r8 : 00005001 r7 : 00010000 r6 : 000043a8 r5 : b6656528 r4 : 0000018f r3 : 00007ffb r2 : 00005001 r1 : 00010000 r0 : b6656528 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA Thumb Segment user Control: 50c53c7d Table: 00d6c059 DAC: 00000055 Process busybox (pid: 271, stack limit = 0xaf1f1034) [] (__vm_insert_mixed) from [] (vmf_insert_mixed+0xf/0x12) [] (vmf_insert_mixed) from [] (dax_iomap_pte_fault+0x429/0x470) [] (dax_iomap_pte_fault) from [] (erofs_dax_huge_fault+0xf/0x18) [] (erofs_dax_huge_fault) from [] (__do_fault+0x23/0x3a) [] (__do_fault) from [] (handle_mm_fault+0x259/0x45e) [] (handle_mm_fault) from [] (do_page_fault+0x10f/0x184) [] (do_page_fault) from [] (do_DataAbort+0x27/0x80) [] (do_DataAbort) from [] (__dabt_usr+0x4f/0x60) Signed-off-by: Tao Huang Change-Id: Id241bf92d60a473dc6baa88d65bb17a775875713 --- fs/erofs/data.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/erofs/data.c b/fs/erofs/data.c index ffc298d39ae2..479c6b00bf35 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -444,6 +444,9 @@ static int erofs_file_mmap(struct file *file, struct vm_area_struct *vma) vma->vm_ops = &erofs_dax_vm_ops; vma->vm_flags |= VM_HUGEPAGE; +#if defined(CONFIG_ROCKCHIP_RAMDISK) && defined(CONFIG_ARM) + vma->vm_flags |= VM_MIXEDMAP; +#endif return 0; } #else