[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZzlKvSbkMe4iIbi4@codewreck.org>
Date: Sun, 17 Nov 2024 10:45:33 +0900
From: asmadeus@...ewreck.org
To: Lizhi Xu <lizhi.xu@...driver.com>
Cc: syzbot <syzbot+885c03ad650731743489@...kaller.appspotmail.com>,
akpm@...ux-foundation.org, ericvh@...nel.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
linux_oss@...debyte.com, lucho@...kov.net,
syzkaller-bugs@...glegroups.com, v9fs@...ts.linux.dev,
David Howells <dhowells@...hat.com>
Subject: Re: [syzbot] [mm?] [v9fs?] BUG: stack guard page was hit in sys_open
Lizhi Xu,
now a reproducer was found it would be great if you could also test your
patch on this; it looks like the same problem as [1]
[1] https://lkml.kernel.org/r/672b7858.050a0220.350062.0256.GAE@google.com
Thanks,
(full quote for context, no other below)
syzbot wrote on Sat, Nov 16, 2024 at 05:38:22PM -0800:
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: e8bdb3c8be08 Merge tag 'riscv-for-linus-6.12-rc8' of git:/..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=136a52e8580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=327b6119dd928cbc
> dashboard link: https://syzkaller.appspot.com/bug?extid=885c03ad650731743489
> compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1642d2c0580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14547130580000
>
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-e8bdb3c8.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/3fca1f7d05f3/vmlinux-e8bdb3c8.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/51d966b1b453/bzImage-e8bdb3c8.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+885c03ad650731743489@...kaller.appspotmail.com
>
> BUG: TASK stack guard page was hit at ffffc90005abfff8 (stack is ffffc90005ac0000..ffffc90005ac8000)
> Oops: stack guard page: 0000 [#1] PREEMPT SMP KASAN NOPTI
> CPU: 0 UID: 0 PID: 6005 Comm: syz-executor698 Not tainted 6.12.0-rc7-syzkaller-00189-ge8bdb3c8be08 #0
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
> RIP: 0010:mark_lock+0xb0/0xc60 kernel/locking/lockdep.c:4703
> Code: fe 09 0f 87 e3 00 00 00 41 83 fe 08 49 89 fc 48 89 f3 0f 84 97 00 00 00 41 bd 01 00 00 00 44 89 f1 41 d3 e5 4d 63 ed 48 89 df <e8> cb 6b ff ff 48 ba 00 00 00 00 00 fc ff df 48 8d 78 60 48 89 f9
> RSP: 0018:ffffc90005ac0000 EFLAGS: 00010002
> RAX: 0000000000000000 RBX: ffff888029b953b0 RCX: 0000000000000003
> RDX: 0000000000000002 RSI: ffff888029b953b0 RDI: ffff888029b953b0
> RBP: ffffc90005ac0138 R08: 0000000000000000 R09: 0000000000000006
> R10: ffffffff96e2ed1f R11: 0000000000000002 R12: ffff888029b94880
> R13: 0000000000000200 R14: 0000000000000009 R15: 1ffff92000b58006
> FS: 00007f59e396f6c0(0000) GS:ffff88806a600000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffc90005abfff8 CR3: 000000003c6a2000 CR4: 0000000000352ef0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> <#DF>
> </#DF>
> <TASK>
> mark_usage kernel/locking/lockdep.c:4646 [inline]
> __lock_acquire+0x906/0x3ce0 kernel/locking/lockdep.c:5156
> lock_acquire.part.0+0x11b/0x380 kernel/locking/lockdep.c:5825
> rcu_lock_acquire include/linux/rcupdate.h:337 [inline]
> rcu_read_lock include/linux/rcupdate.h:849 [inline]
> page_ext_get+0x3a/0x310 mm/page_ext.c:525
> __set_page_owner+0x96/0x560 mm/page_owner.c:322
> set_page_owner include/linux/page_owner.h:32 [inline]
> post_alloc_hook+0x2d1/0x350 mm/page_alloc.c:1556
> prep_new_page mm/page_alloc.c:1564 [inline]
> get_page_from_freelist+0xfce/0x2f80 mm/page_alloc.c:3474
> __alloc_pages_noprof+0x223/0x25a0 mm/page_alloc.c:4750
> alloc_pages_mpol_noprof+0x2c9/0x610 mm/mempolicy.c:2265
> alloc_slab_page mm/slub.c:2412 [inline]
> allocate_slab mm/slub.c:2578 [inline]
> new_slab+0x2c9/0x410 mm/slub.c:2631
> ___slab_alloc+0xdac/0x1880 mm/slub.c:3818
> __slab_alloc.constprop.0+0x56/0xb0 mm/slub.c:3908
> __slab_alloc_node mm/slub.c:3961 [inline]
> slab_alloc_node mm/slub.c:4122 [inline]
> kmem_cache_alloc_noprof+0x2a7/0x2f0 mm/slub.c:4141
> p9_tag_alloc+0x9c/0x870 net/9p/client.c:281
> p9_client_prepare_req+0x19f/0x4d0 net/9p/client.c:644
> p9_client_zc_rpc.constprop.0+0x105/0x880 net/9p/client.c:793
> p9_client_read_once+0x443/0x820 net/9p/client.c:1570
> p9_client_read+0x13f/0x1b0 net/9p/client.c:1534
> v9fs_issue_read+0x115/0x310 fs/9p/vfs_addr.c:74
> netfs_retry_read_subrequests fs/netfs/read_retry.c:60 [inline]
> netfs_retry_reads+0x153a/0x1d00 fs/netfs/read_retry.c:232
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_retry_reads+0x155e/0x1d00 fs/netfs/read_retry.c:235
> netfs_rreq_assess+0x5d3/0x870 fs/netfs/read_collect.c:371
> netfs_rreq_terminated+0xe5/0x110 fs/netfs/read_collect.c:407
> netfs_dispatch_unbuffered_reads fs/netfs/direct_read.c:103 [inline]
> netfs_unbuffered_read fs/netfs/direct_read.c:127 [inline]
> netfs_unbuffered_read_iter_locked+0x12f6/0x19b0 fs/netfs/direct_read.c:221
> netfs_unbuffered_read_iter+0xc5/0x100 fs/netfs/direct_read.c:256
> v9fs_file_read_iter+0xbf/0x100 fs/9p/vfs_file.c:361
> __kernel_read+0x3f1/0xb50 fs/read_write.c:527
> integrity_kernel_read+0x7f/0xb0 security/integrity/iint.c:28
> ima_calc_file_hash_tfm+0x2c9/0x3e0 security/integrity/ima/ima_crypto.c:480
> ima_calc_file_shash security/integrity/ima/ima_crypto.c:511 [inline]
> ima_calc_file_hash+0x1ba/0x490 security/integrity/ima/ima_crypto.c:568
> ima_collect_measurement+0x89f/0xa40 security/integrity/ima/ima_api.c:293
> process_measurement+0x1271/0x2370 security/integrity/ima/ima_main.c:372
> ima_file_check+0xc1/0x110 security/integrity/ima/ima_main.c:572
> security_file_post_open+0x8e/0x210 security/security.c:3129
> do_open fs/namei.c:3776 [inline]
> path_openat+0x1419/0x2d60 fs/namei.c:3933
> do_filp_open+0x1dc/0x430 fs/namei.c:3960
> do_sys_openat2+0x17a/0x1e0 fs/open.c:1415
> do_sys_open fs/open.c:1430 [inline]
> __do_sys_open fs/open.c:1438 [inline]
> __se_sys_open fs/open.c:1434 [inline]
> __x64_sys_open+0x154/0x1e0 fs/open.c:1434
> do_syscall_x64 arch/x86/entry/common.c:52 [inline]
> do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f59e39b43e9
> Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 18 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007f59e396f218 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
> RAX: ffffffffffffffda RBX: 00007f59e3a3e308 RCX: 00007f59e39b43e9
> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000140
> RBP: 00007f59e3a3e300 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 00007f59e3a3e30c
> R13: 00007f59e3a0b074 R14: 0030656c69662f2e R15: 00000000ffffff3c
> </TASK>
> Modules linked in:
> ---[ end trace 0000000000000000 ]---
> RIP: 0010:mark_lock+0xb0/0xc60 kernel/locking/lockdep.c:4703
> Code: fe 09 0f 87 e3 00 00 00 41 83 fe 08 49 89 fc 48 89 f3 0f 84 97 00 00 00 41 bd 01 00 00 00 44 89 f1 41 d3 e5 4d 63 ed 48 89 df <e8> cb 6b ff ff 48 ba 00 00 00 00 00 fc ff df 48 8d 78 60 48 89 f9
> RSP: 0018:ffffc90005ac0000 EFLAGS: 00010002
> RAX: 0000000000000000 RBX: ffff888029b953b0 RCX: 0000000000000003
> RDX: 0000000000000002 RSI: ffff888029b953b0 RDI: ffff888029b953b0
> RBP: ffffc90005ac0138 R08: 0000000000000000 R09: 0000000000000006
> R10: ffffffff96e2ed1f R11: 0000000000000002 R12: ffff888029b94880
> R13: 0000000000000200 R14: 0000000000000009 R15: 1ffff92000b58006
> FS: 00007f59e396f6c0(0000) GS:ffff88806a600000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: ffffc90005abfff8 CR3: 000000003c6a2000 CR4: 0000000000352ef0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> ----------------
> Code disassembly (best guess):
> 0: fe 09 decb (%rcx)
> 2: 0f 87 e3 00 00 00 ja 0xeb
> 8: 41 83 fe 08 cmp $0x8,%r14d
> c: 49 89 fc mov %rdi,%r12
> f: 48 89 f3 mov %rsi,%rbx
> 12: 0f 84 97 00 00 00 je 0xaf
> 18: 41 bd 01 00 00 00 mov $0x1,%r13d
> 1e: 44 89 f1 mov %r14d,%ecx
> 21: 41 d3 e5 shl %cl,%r13d
> 24: 4d 63 ed movslq %r13d,%r13
> 27: 48 89 df mov %rbx,%rdi
> * 2a: e8 cb 6b ff ff call 0xffff6bfa <-- trapping instruction
> 2f: 48 ba 00 00 00 00 00 movabs $0xdffffc0000000000,%rdx
> 36: fc ff df
> 39: 48 8d 78 60 lea 0x60(%rax),%rdi
> 3d: 48 89 f9 mov %rdi,%rcx
>
>
> ---
> If you want syzbot to run the reproducer, reply with:
> #syz test: git://repo/address.git branch-or-commit-hash
> If you attach or paste a git patch, syzbot will apply it before testing.
--
Dominique Martinet | Asmadeus
Powered by blists - more mailing lists