[syzbot] [riscv?] riscv/fixes boot error: kernel BUG in __phys_addr_symbol
Alexandre Ghiti
alex at ghiti.fr
Fri Dec 8 09:53:54 PST 2023
On 08/12/2023 18:18, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: eb46a0076501 riscv: Check if the code to patch lies in the..
> git tree: git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git fixes
> console output: https://syzkaller.appspot.com/x/log.txt?x=14aa707ae80000
> kernel config: https://syzkaller.appspot.com/x/.config?x=a5c1ede998d7cef2
> dashboard link: https://syzkaller.appspot.com/bug?extid=afb726d49f84c8d95ee1
> compiler: riscv64-linux-gnu-gcc (Debian 12.2.0-13) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
> userspace arch: riscv64
>
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/a741b348759c/non_bootable_disk-eb46a007.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/472c8c5dc639/vmlinux-eb46a007.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/21ee09184ba1/Image-eb46a007.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+afb726d49f84c8d95ee1 at syzkaller.appspotmail.com
>
> ------------[ cut here ]------------
> kernel BUG at arch/riscv/mm/physaddr.c:31!
> Kernel BUG [#1]
> Modules linked in:
> CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc1-syzkaller-geb46a0076501 #0
> Hardware name: riscv-virtio,qemu (DT)
> epc : __phys_addr_symbol+0x144/0x150 arch/riscv/mm/physaddr.c:31
> ra : __phys_addr_symbol+0x144/0x150 arch/riscv/mm/physaddr.c:31
> epc : ffffffff800200b4 ra : ffffffff800200b4 sp : ff20000000013d10
> gp : ffffffff861f60a0 tp : ff6000000b260000 t0 : 26747970652d3e69
> t1 : fffffffef0a8ad5d t2 : 0000000000000000 s0 : ff20000000013d40
> s1 : ff60000003a00000 a0 : 0000000000000006 a1 : ffffffff80000000
> a2 : 0000000000000002 a3 : ffffffff800200b4 a4 : 0000000000000000
> a5 : ff6000000b261000 a6 : 0000000000000003 a7 : ffffffff85456aef
> s2 : ffffffff8816d000 s3 : ffffffff80000000 s4 : ffffffff84e6f2b0
> s5 : ff60000003a00000 s6 : 0000000000000000 s7 : 0000000000000000
> s8 : ffffffff861f5c40 s9 : 0000000000000000 s10: 0000000000000000
> s11: 0000000000000000 t3 : ffffffffffffffff t4 : fffffffef0a8ad5d
> t5 : fffffffef0a8ad5e t6 : ff60000013e80c70
> status: 0000000200000120 badaddr: 0000000000000000 cause: 0000000000000003
> [<ffffffff800200b4>] __phys_addr_symbol+0x144/0x150 arch/riscv/mm/physaddr.c:31
> [<ffffffff80019ede>] __set_memory+0x1c0/0x762 arch/riscv/mm/pageattr.c:308
> [<ffffffff8001a4a4>] set_memory_rw_nx+0x24/0x30 arch/riscv/mm/pageattr.c:346
> [<ffffffff80008778>] set_kernel_memory arch/riscv/include/asm/set_memory.h:27 [inline]
> [<ffffffff80008778>] free_initmem+0x52/0x8c arch/riscv/kernel/setup.c:323
> [<ffffffff837334e6>] kernel_init+0x44/0x21e init/main.c:1450
> [<ffffffff83745cb2>] ret_from_fork+0xe/0x1c arch/riscv/kernel/entry.S:221
> Code: 84b3 4124 b745 4985 1996 bf65 7097 0025 80e7 ecc0 (9002) 7097
> ---[ end trace 0000000000000000 ]---
Ok, that's for me, lm_alias() actually does not work for linear mapping
addresses since it assumes that the address lies in the kernel mapping,
my bad. I'll fix that either by "extending" lm_alias() to linear mapping
addresses or directly in the riscv code, not sure right now what's the
best solution.
Thanks for the report,
Alex
> ----------------
> Code disassembly (best guess):
> 0: 412484b3 sub s1,s1,s2
> 4: b745 j 0xffffffffffffffa4
> 6: 4985 li s3,1
> 8: 1996 sll s3,s3,0x25
> a: bf65 j 0xffffffffffffffc2
> c: 00257097 auipc ra,0x257
> 10: ecc080e7 jalr -308(ra) # 0x256ed8
> * 14: 9002 ebreak <-- trapping instruction
> 16: 97 70 Address 0x16 is out of bounds.
>
>
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller at googlegroups.com.
>
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
>
> If the report is already addressed, let syzbot know by replying with:
> #syz fix: exact-commit-title
>
> If you want to overwrite report's subsystems, reply with:
> #syz set subsystems: new-subsystem
> (See the list of subsystem names on the web dashboard)
>
> If the report is a duplicate of another one, reply with:
> #syz dup: exact-subject-of-another-report
>
> If you want to undo deduplication, reply with:
> #syz undup
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
More information about the linux-riscv
mailing list