All of lore.kernel.org
 help / color / mirror / Atom feed
* [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove
@ 2026-08-11 12:53 syzbot
  2026-08-11 15:09 ` usb: gadget: pch_udc: don't call pch_udc_remove() from the probe error path Vasileios Almpanis
  0 siblings, 1 reply; 3+ messages in thread
From: syzbot @ 2026-08-11 12:53 UTC (permalink / raw)
  To: dakr, driver-core, gregkh, linux-kernel, linux-usb, rafael,
	syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    d58772d8520c Merge tag 'regmap-fix-v7.2-rc7' of git://git...
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10996149580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=c44651ea7dd2f307
dashboard link: https://syzkaller.appspot.com/bug?extid=3e2e533aa1b2a75525e7
compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=17bc2a9e580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=17293132580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-d58772d8.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/caffbd0a7ec1/vmlinux-d58772d8.xz
kernel image: https://storage.googleapis.com/syzbot-assets/686d959b6f96/bzImage-d58772d8.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+3e2e533aa1b2a75525e7@syzkaller.appspotmail.com

pch_udc 0000:00:03.0: pch_udc_probe: request_irq(23) fail
------------[ cut here ]------------
kobject: '(null)' (ffff888035ce0110): is not initialized, yet kobject_put() is being called.
WARNING: lib/kobject.c:734 at kobject_put+0x252/0x640 lib/kobject.c:734, CPU#0: syz.0.17/5908
Modules linked in:
CPU: 0 UID: 0 PID: 5908 Comm: syz.0.17 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:kobject_put+0x258/0x640 lib/kobject.c:734
Code: 59 f6 48 89 da 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 5e 03 00 00 48 8d 3d de 47 83 05 48 8b 33 48 89 da <67> 48 0f b9 3a e9 0b fe ff ff e8 b9 a8 59 f6 be 03 00 00 00 4c 89
RSP: 0018:ffffc900035b7918 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: ffff888035ce0110 RCX: ffffffff8bb0c8c4
RDX: ffff888035ce0110 RSI: 0000000000000000 RDI: ffffffff91341290
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff888035ce014c
R13: dffffc0000000000 R14: ffff888035ce1978 R15: ffff888035ce0608
FS:  000055558de32500(0000) GS:ffff8880d5dec000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000557c252125d8 CR3: 0000000040736000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 put_device+0x1f/0x30 drivers/base/core.c:3880
 pch_udc_remove+0x47/0x510 drivers/usb/gadget/udc/pch_udc.c:2986
 pch_udc_probe+0xcc6/0x1130 drivers/usb/gadget/udc/pch_udc.c:3109
 local_pci_probe+0xdd/0x1b0 drivers/pci/pci-driver.c:332
 pci_call_probe+0x176/0x800 drivers/pci/pci-driver.c:394
 __pci_device_probe drivers/pci/pci-driver.c:455 [inline]
 pci_device_probe+0x1cd/0x370 drivers/pci/pci-driver.c:489
 call_driver_probe drivers/base/dd.c:628 [inline]
 really_probe+0x241/0xa60 drivers/base/dd.c:706
 __driver_probe_device+0x20e/0x450 drivers/base/dd.c:868
 device_driver_attach+0xd1/0x220 drivers/base/dd.c:1203
 bind_store+0xf4/0x190 drivers/base/bus.c:267
 drv_attr_store+0x74/0xb0 drivers/base/bus.c:125
 sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145
 kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0x6ac/0x1050 fs/read_write.c:687
 ksys_write+0x12a/0x250 fs/read_write.c:739
 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:0x7f60b4b9e0d9
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 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 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffdce022f28 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f60b4e25fa0 RCX: 00007f60b4b9e0d9
RDX: 000000000000000d RSI: 0000200000000240 RDI: 0000000000000005
RBP: 00007ffdce022f90 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007f60b4e25fac R14: 00007f60b4e25fa0 R15: 00007f60b4e25fa0
 </TASK>
----------------
Code disassembly (best guess):
   0:	59                   	pop    %rcx
   1:	f6 48 89 da          	testb  $0xda,-0x77(%rax)
   5:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
   c:	fc ff df
   f:	48 c1 ea 03          	shr    $0x3,%rdx
  13:	80 3c 02 00          	cmpb   $0x0,(%rdx,%rax,1)
  17:	0f 85 5e 03 00 00    	jne    0x37b
  1d:	48 8d 3d de 47 83 05 	lea    0x58347de(%rip),%rdi        # 0x5834802
  24:	48 8b 33             	mov    (%rbx),%rsi
  27:	48 89 da             	mov    %rbx,%rdx
* 2a:	67 48 0f b9 3a       	ud1    (%edx),%rdi <-- trapping instruction
  2f:	e9 0b fe ff ff       	jmp    0xfffffe3f
  34:	e8 b9 a8 59 f6       	call   0xf659a8f2
  39:	be 03 00 00 00       	mov    $0x3,%esi
  3e:	4c                   	rex.WR
  3f:	89                   	.byte 0x89


---
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] 3+ messages in thread

* usb: gadget: pch_udc: don't call pch_udc_remove() from the probe error path
  2026-08-11 12:53 [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove syzbot
@ 2026-08-11 15:09 ` Vasileios Almpanis
  2026-08-11 15:43   ` [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove syzbot
  0 siblings, 1 reply; 3+ messages in thread
From: Vasileios Almpanis @ 2026-08-11 15:09 UTC (permalink / raw)
  To: syzbot+3e2e533aa1b2a75525e7; +Cc: linux-kernel, syzkaller-bugs

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d58772d8520c7ef247c4b95c9bd76d3a25da9ff5

diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
index 0a6886428739..5704aff2b09b 100644
--- a/drivers/usb/gadget/udc/pch_udc.c
+++ b/drivers/usb/gadget/udc/pch_udc.c
@@ -2979,16 +2979,8 @@ static void pch_udc_shutdown(struct pci_dev *pdev)
 	pch_udc_set_disconnect(dev);
 }
 
-static void pch_udc_remove(struct pci_dev *pdev)
+static void pch_udc_cleanup(struct pch_udc_dev *dev)
 {
-	struct pch_udc_dev	*dev = pci_get_drvdata(pdev);
-
-	usb_del_gadget_udc(&dev->gadget);
-
-	/* gadget driver must not be registered */
-	if (dev->driver)
-		dev_err(&pdev->dev,
-			"%s: gadget driver still bound!!!\n", __func__);
 	/* dma pool cleanup */
 	dma_pool_destroy(dev->data_requests);
 
@@ -3016,6 +3008,20 @@ static void pch_udc_remove(struct pci_dev *pdev)
 	pch_udc_exit(dev);
 }
 
+static void pch_udc_remove(struct pci_dev *pdev)
+{
+	struct pch_udc_dev	*dev = pci_get_drvdata(pdev);
+
+	usb_del_gadget_udc(&dev->gadget);
+
+	/* gadget driver must not be registered */
+	if (dev->driver)
+		dev_err(&pdev->dev,
+			"%s: gadget driver still bound!!!\n", __func__);
+
+	pch_udc_cleanup(dev);
+}
+
 static int __maybe_unused pch_udc_suspend(struct device *d)
 {
 	struct pch_udc_dev *dev = dev_get_drvdata(d);
@@ -3106,7 +3112,7 @@ static int pch_udc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	return 0;
 
 finished:
-	pch_udc_remove(pdev);
+	pch_udc_cleanup(dev);
 	return retval;
 }
 

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove
  2026-08-11 15:09 ` usb: gadget: pch_udc: don't call pch_udc_remove() from the probe error path Vasileios Almpanis
@ 2026-08-11 15:43   ` syzbot
  0 siblings, 0 replies; 3+ messages in thread
From: syzbot @ 2026-08-11 15:43 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs, vasilisalmpanis

Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+3e2e533aa1b2a75525e7@syzkaller.appspotmail.com
Tested-by: syzbot+3e2e533aa1b2a75525e7@syzkaller.appspotmail.com

Tested on:

commit:         d58772d8 Merge tag 'regmap-fix-v7.2-rc7' of git://git...
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
console output: https://syzkaller.appspot.com/x/log.txt?x=17712a9e580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=c44651ea7dd2f307
dashboard link: https://syzkaller.appspot.com/bug?extid=3e2e533aa1b2a75525e7
compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch:          https://syzkaller.appspot.com/x/patch.diff?x=13be2a9e580000

Note: testing is done by a robot and is best-effort only.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-11 15:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-11 12:53 [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove syzbot
2026-08-11 15:09 ` usb: gadget: pch_udc: don't call pch_udc_remove() from the probe error path Vasileios Almpanis
2026-08-11 15:43   ` [syzbot] [usb?] WARNING: kobject bug in pch_udc_remove syzbot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.