Messages in this thread | | | From | Dmitry Vyukov <> | Date | Fri, 27 May 2022 15:01:46 +0200 | Subject | Re: [syzbot] riscv/fixes test error: lost connection to test machine |
| |
On Fri, 27 May 2022 at 14:55, syzbot <syzbot+2c5da6a0a16a0c4f34aa@syzkaller.appspotmail.com> wrote: > > Hello, > > syzbot found the following issue on: > > HEAD commit: c932edeaf6d6 riscv: dts: microchip: fix gpio1 reg property.. > 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=1418add5f00000 > kernel config: https://syzkaller.appspot.com/x/.config?x=aa6b5702bdf14a17 > dashboard link: https://syzkaller.appspot.com/bug?extid=2c5da6a0a16a0c4f34aa > compiler: riscv64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2 > userspace arch: riscv64 > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+2c5da6a0a16a0c4f34aa@syzkaller.appspotmail.com
The CONFIG_KASAN_VMALLOC allows riscv kernel to boot, but now Go processes started crashing with:
1970/01/01 00:06:55 fuzzer started runtime: lfstack.push invalid packing: node=0xffffff5908a940 cnt=0x1 packed=0xffff5908a9400001 -> node=0xffff5908a940 fatal error: lfstack.push runtime stack: runtime.throw({0x30884c, 0xc}) /usr/local/go/src/runtime/panic.go:1198 +0x60 runtime.(*lfstack).push(0xdb3850, 0xffffff5908a940) /usr/local/go/src/runtime/lfstack.go:30 +0x1a8
Go runtime tries to shove some data into the upper 16 bits of pointers assuming they are unused. However, the original pointer node=0xffffff5908a940 suggest riscv now has 56-bit users-space address space? Documentation/riscv/vm-layout.rst claims 48-bit pointers: " The RISC-V privileged architecture document states that the 64bit addresses "must have bits 63–48 all equal to bit 47, or else a page-fault exception will occur.": ... 0000000000000000 | 0 | 0000003fffffffff | 256 GB | user-space virtual memory, different per mm "
| |