* [syzbot] [kernel?] BUG: unable to handle kernel paging request in cirrus_primary_plane_helper_atomic_update
@ 2026-08-16 15:10 syzbot
2026-09-13 9:04 ` Forwarded: [PATCH] configfs: unhash dentry before dropping the item syzbot
0 siblings, 1 reply; 5+ messages in thread
From: syzbot @ 2026-08-16 15:10 UTC (permalink / raw)
To: linux-kernel, syzkaller-bugs
Hello,
syzbot found the following issue on:
HEAD commit: 3eb40771c00a Merge tag 'soc-fixes-7.2-3' of git://git.kern..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13949949580000
kernel config: https://syzkaller.appspot.com/x/.config?x=1d67342c314f228d
dashboard link: https://syzkaller.appspot.com/bug?extid=2442951a6abb004df963
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10d696c6580000
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+2442951a6abb004df963@syzkaller.appspotmail.com
BUG: unable to handle page fault for address: ffffc900030a7000
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 1c000067 P4D 1c000067 PUD 1d6a8067 PMD 25dcb067 PTE 0
Oops: Oops: 0002 [#1] SMP KASAN NOPTI
CPU: 3 UID: 0 PID: 5985 Comm: syz-executor238 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:rep_movs arch/x86/lib/iomem.c:13 [inline]
RIP: 0010:string_memcpy_toio arch/x86/lib/iomem.c:64 [inline]
RIP: 0010:memcpy_toio+0x87/0xe0 arch/x86/lib/iomem.c:110
Code: b6 fc 49 89 dd 31 ff 41 83 e5 02 4c 89 ee e8 70 3f b6 fc 4d 85 ed 75 33 e8 c6 44 b6 fc 48 89 e9 48 89 df 4c 89 e6 48 c1 e9 02 <f3> a5 40 f6 c5 02 74 02 66 a5 40 f6 c5 01 74 01 a4 e8 a3 44 b6 fc
RSP: 0018:ffffc900036ef4f0 EFLAGS: 00010206
RAX: 0000000000000000 RBX: ffffc900030a6d20 RCX: 00000000000000d8
RDX: ffff88802dc8a540 RSI: ffffc90003c31f60 RDI: ffffc900030a7000
RBP: 0000000000000640 R08: 0000000000000007 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffc90003c31c80
R13: 0000000000000000 R14: ffffc900030a6d20 R15: 0000000000000640
FS: 0000000000000000(0000) GS:ffff8880d5ede000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffc900030a7000 CR3: 000000003cd11000 CR4: 0000000000352ef0
Call Trace:
<TASK>
iosys_map_memcpy_to include/linux/iosys-map.h:285 [inline]
drm_fb_memcpy+0x459/0x620 drivers/gpu/drm/drm_format_helper.c:442
cirrus_primary_plane_helper_atomic_update+0xb1d/0xfe0 drivers/gpu/drm/tiny/cirrus-qemu.c:358
drm_atomic_helper_commit_planes+0x497/0xf10 drivers/gpu/drm/drm_atomic_helper.c:3038
drm_atomic_helper_commit_tail+0x7f/0x130 drivers/gpu/drm/drm_atomic_helper.c:1989
commit_tail+0x338/0x430 drivers/gpu/drm/drm_atomic_helper.c:2074
drm_atomic_helper_commit+0x303/0x380 drivers/gpu/drm/drm_atomic_helper.c:2312
drm_atomic_commit+0x230/0x300 drivers/gpu/drm/drm_atomic.c:1789
drm_client_modeset_commit_atomic+0x6a6/0x7e0 drivers/gpu/drm/drm_client_modeset.c:1104
drm_client_modeset_commit_locked+0x14d/0x580 drivers/gpu/drm/drm_client_modeset.c:1207
drm_client_modeset_commit+0x4f/0x80 drivers/gpu/drm/drm_client_modeset.c:1233
__drm_fb_helper_restore_fbdev_mode_unlocked.part.0+0x137/0x160 drivers/gpu/drm/drm_fb_helper.c:138
__drm_fb_helper_restore_fbdev_mode_unlocked drivers/gpu/drm/drm_fb_helper.c:126 [inline]
drm_fb_helper_restore_fbdev_mode_unlocked+0x93/0xc0 drivers/gpu/drm/drm_fb_helper.c:169
drm_fbdev_client_restore+0x1b/0x30 drivers/gpu/drm/clients/drm_fbdev_client.c:45
drm_client_dev_restore+0x205/0x2a0 drivers/gpu/drm/drm_client_event.c:118
drm_lastclose drivers/gpu/drm/drm_file.c:408 [inline]
drm_release+0x2c6/0x360 drivers/gpu/drm/drm_file.c:441
__fput+0x3ff/0xb50 fs/file_table.c:512
task_work_run+0x150/0x240 kernel/task_work.c:233
exit_task_work include/linux/task_work.h:40 [inline]
do_exit+0x951/0x2ae0 kernel/exit.c:1009
do_group_exit+0xd5/0x2a0 kernel/exit.c:1152
__do_sys_exit_group kernel/exit.c:1163 [inline]
__se_sys_exit_group kernel/exit.c:1161 [inline]
__x64_sys_exit_group+0x3e/0x50 kernel/exit.c:1161
x64_sys_call+0x102c/0x1530 arch/x86/include/generated/asm/syscalls_64.h:232
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f6d6a4b3905
Code: Unable to access opcode bytes at 0x7f6d6a4b38db.
RSP: 002b:00007ffd867f5c08 EFLAGS: 00000202 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007f6d6a4b3905
RDX: 00000000000000e7 RSI: ffffffffffffffd8 RDI: 0000000000000001
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000001
R13: 00007f6d6a548100 R14: 00007f6d6a54a388 R15: 00007f6d6a54a3a0
</TASK>
Modules linked in:
CR2: ffffc900030a7000
---[ end trace 0000000000000000 ]---
RIP: 0010:rep_movs arch/x86/lib/iomem.c:13 [inline]
RIP: 0010:string_memcpy_toio arch/x86/lib/iomem.c:64 [inline]
RIP: 0010:memcpy_toio+0x87/0xe0 arch/x86/lib/iomem.c:110
Code: b6 fc 49 89 dd 31 ff 41 83 e5 02 4c 89 ee e8 70 3f b6 fc 4d 85 ed 75 33 e8 c6 44 b6 fc 48 89 e9 48 89 df 4c 89 e6 48 c1 e9 02 <f3> a5 40 f6 c5 02 74 02 66 a5 40 f6 c5 01 74 01 a4 e8 a3 44 b6 fc
RSP: 0018:ffffc900036ef4f0 EFLAGS: 00010206
RAX: 0000000000000000 RBX: ffffc900030a6d20 RCX: 00000000000000d8
RDX: ffff88802dc8a540 RSI: ffffc90003c31f60 RDI: ffffc900030a7000
RBP: 0000000000000640 R08: 0000000000000007 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffc90003c31c80
R13: 0000000000000000 R14: ffffc900030a6d20 R15: 0000000000000640
FS: 0000000000000000(0000) GS:ffff8880d5ede000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffc900030a7000 CR3: 000000003cd11000 CR4: 0000000000352ef0
----------------
Code disassembly (best guess):
0: b6 fc mov $0xfc,%dh
2: 49 89 dd mov %rbx,%r13
5: 31 ff xor %edi,%edi
7: 41 83 e5 02 and $0x2,%r13d
b: 4c 89 ee mov %r13,%rsi
e: e8 70 3f b6 fc call 0xfcb63f83
13: 4d 85 ed test %r13,%r13
16: 75 33 jne 0x4b
18: e8 c6 44 b6 fc call 0xfcb644e3
1d: 48 89 e9 mov %rbp,%rcx
20: 48 89 df mov %rbx,%rdi
23: 4c 89 e6 mov %r12,%rsi
26: 48 c1 e9 02 shr $0x2,%rcx
* 2a: f3 a5 rep movsl %ds:(%rsi),%es:(%rdi) <-- trapping instruction
2c: 40 f6 c5 02 test $0x2,%bpl
30: 74 02 je 0x34
32: 66 a5 movsw %ds:(%rsi),%es:(%rdi)
34: 40 f6 c5 01 test $0x1,%bpl
38: 74 01 je 0x3b
3a: a4 movsb %ds:(%rsi),%es:(%rdi)
3b: e8 a3 44 b6 fc call 0xfcb644e3
---
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@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 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.
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Forwarded: [PATCH] configfs: unhash dentry before dropping the item
2026-08-16 15:10 [syzbot] [kernel?] BUG: unable to handle kernel paging request in cirrus_primary_plane_helper_atomic_update syzbot
@ 2026-09-13 9:04 ` syzbot
0 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-09-13 9:04 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] configfs: unhash dentry before dropping the item
Author: jchuang26@m.fudan.edu.cn
#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 958f35cbb8955ca3fa439cd9f2092cb42414aa8c
Reported-by: syzbot+2442951a6abb004df963@syzkaller.appspotmail.com
diff --git a/drivers/gpu/drm/tiny/cirrus-qemu.c b/drivers/gpu/drm/tiny/cirrus-qemu.c
index 075221b43..f66e33f18 100644
--- a/drivers/gpu/drm/tiny/cirrus-qemu.c
+++ b/drivers/gpu/drm/tiny/cirrus-qemu.c
@@ -68,6 +68,7 @@ struct cirrus_device {
/* HW resources */
void __iomem *vram;
+ resource_size_t vram_size;
void __iomem *mmio;
};
@@ -298,6 +299,7 @@ static const uint64_t cirrus_primary_plane_format_modifiers[] = {
static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane,
struct drm_atomic_commit *state)
{
+ struct cirrus_device *cirrus = to_cirrus(plane->dev);
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane);
struct drm_framebuffer *fb = new_plane_state->fb;
struct drm_crtc *new_crtc = new_plane_state->crtc;
@@ -319,7 +321,7 @@ static int cirrus_primary_plane_helper_atomic_check(struct drm_plane *plane,
/* validate size constraints */
if (fb->pitches[0] > CIRRUS_MAX_PITCH)
return -EINVAL;
- else if (fb->pitches[0] > CIRRUS_VRAM_SIZE / fb->height)
+ else if (fb->pitches[0] > cirrus->vram_size / fb->height)
return -EINVAL;
return 0;
@@ -514,6 +516,7 @@ static int cirrus_pipe_init(struct cirrus_device *cirrus)
static enum drm_mode_status cirrus_mode_config_mode_valid(struct drm_device *dev,
const struct drm_display_mode *mode)
{
+ struct cirrus_device *cirrus = to_cirrus(dev);
const struct drm_format_info *format = drm_format_info(DRM_FORMAT_XRGB8888);
u64 pitch;
@@ -525,7 +528,7 @@ static enum drm_mode_status cirrus_mode_config_mode_valid(struct drm_device *dev
return MODE_BAD_WIDTH;
if (pitch > CIRRUS_MAX_PITCH)
return MODE_BAD_WIDTH; /* maximum programmable pitch */
- if (pitch > CIRRUS_VRAM_SIZE / mode->vdisplay)
+ if (pitch > cirrus->vram_size / mode->vdisplay)
return MODE_MEM;
return MODE_OK;
@@ -602,8 +605,10 @@ static int cirrus_pci_probe(struct pci_dev *pdev,
dev = &cirrus->dev;
+ cirrus->vram_size = min_t(resource_size_t, pci_resource_len(pdev, 0),
+ CIRRUS_VRAM_SIZE);
cirrus->vram = devm_ioremap(&pdev->dev, pci_resource_start(pdev, 0),
- pci_resource_len(pdev, 0));
+ cirrus->vram_size);
if (cirrus->vram == NULL)
return -ENOMEM;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Forwarded: [PATCH] configfs: unhash dentry before dropping the item
2026-07-30 0:19 [syzbot] [fs?] KASAN: slab-use-after-free Write in config_item_get syzbot
2026-09-10 12:24 ` Forwarded: [PATCH] configfs: unhash dentry before dropping the item syzbot
2026-09-11 8:15 ` syzbot
@ 2026-09-11 11:55 ` syzbot
2 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-09-11 11:55 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] configfs: unhash dentry before dropping the item
Author: jchuang26@m.fudan.edu.cn
#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a7c1290eef60711c10289c056ad32ed1f2b47b12
Reported-by: syzbot+6b16e3d085833cbf3e25@syzkaller.appspotmail.com
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 3c88f13f1..d9c222ff0 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -418,6 +418,16 @@ static void configfs_remove_dir(struct dentry *d)
pr_warn("remove_dir (%pd): attributes remain", d);
}
+ /*
+ * The dentry can still have external references (e.g. from a
+ * concurrent configfs_symlink() path lookup), in which case
+ * simple_rmdir() will not have unhashed it yet. Make sure the
+ * dentry is unreachable before the caller drops the last
+ * reference to the config_item, since configfs_symlink() resolves
+ * targets by taking a reference through a hashed dentry.
+ */
+ d_drop(d);
+
pr_debug(" o %pd removing done (%d)\n", d, d_count(d));
dput(parent);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Forwarded: [PATCH] configfs: unhash dentry before dropping the item
2026-07-30 0:19 [syzbot] [fs?] KASAN: slab-use-after-free Write in config_item_get syzbot
2026-09-10 12:24 ` Forwarded: [PATCH] configfs: unhash dentry before dropping the item syzbot
@ 2026-09-11 8:15 ` syzbot
2026-09-11 11:55 ` syzbot
2 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-09-11 8:15 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] configfs: unhash dentry before dropping the item
Author: jchuang26@m.fudan.edu.cn
#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a7c1290eef60711c10289c056ad32ed1f2b47b12
Reported-by: syzbot+6b16e3d085833cbf3e25@syzkaller.appspotmail.com
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 3c88f13f1..b0812432f 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1552,12 +1552,14 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
if (sd->s_type & CONFIGFS_USET_DIR) {
configfs_detach_group(dentry);
+ d_drop(dentry);
mutex_lock(&subsys->su_mutex);
client_disconnect_notify(parent_item, item);
unlink_group(to_config_group(item));
} else {
configfs_detach_item(dentry);
+ d_drop(dentry);
mutex_lock(&subsys->su_mutex);
client_disconnect_notify(parent_item, item);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Forwarded: [PATCH] configfs: unhash dentry before dropping the item
2026-07-30 0:19 [syzbot] [fs?] KASAN: slab-use-after-free Write in config_item_get syzbot
@ 2026-09-10 12:24 ` syzbot
2026-09-11 8:15 ` syzbot
2026-09-11 11:55 ` syzbot
2 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2026-09-10 12:24 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] configfs: unhash dentry before dropping the item
Author: alsowereme@outlook.com
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a7c1290eef60711c10289c056ad32ed1f2b47b12
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-13 9:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-16 15:10 [syzbot] [kernel?] BUG: unable to handle kernel paging request in cirrus_primary_plane_helper_atomic_update syzbot
2026-09-13 9:04 ` Forwarded: [PATCH] configfs: unhash dentry before dropping the item syzbot
-- strict thread matches above, loose matches on Subject: below --
2026-07-30 0:19 [syzbot] [fs?] KASAN: slab-use-after-free Write in config_item_get syzbot
2026-09-10 12:24 ` Forwarded: [PATCH] configfs: unhash dentry before dropping the item syzbot
2026-09-11 8:15 ` syzbot
2026-09-11 11:55 ` syzbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®