emi26 - firmware loader 2-1:1.0: emi26_probe start Oops: genera[ 190.968410][ T5580] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] CPU: 0 UID: 0 PID: 5580 Comm: kworker/0:3 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026 Workqueue: usb_hub_wq hub_event RIP: 0010:ihex_binrec_size include/linux/ihex.h:26 [inline] RIP: 0010:__ihex_next_binrec include/linux/ihex.h:35 [inline] RIP: 0010:ihex_validate_fw include/linux/ihex.h:54 [inline] RIP: 0010:request_ihex_firmware include/linux/ihex.h:74 [inline] RIP: 0010:emi26_load_firmware drivers/usb/misc/emi26.c:86 [inline] RIP: 0010:emi26_probe+0x283/0x1690 drivers/usb/misc/emi26.c:232 Code: ff 89 de e8 6f 64 97 00 85 db 0f 84 d9 01 00 00 e8 62 60 97 00 48 bb 00 00 00 00 00 fc ff df 49 8d 7e 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7e 05 48 89 f8 48 c1 e8 03 0f b6 04 RSP: 0018:ffffc90004c5ed20 EFLAGS: 00010247 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: 0000000000100000 RDX: ffffc9001a81d000 RSI: 000000000000e12b RDI: 0000000000000004 RBP: ffffc90004c5ee50 R08: 0000000000000000 R09: 0000000000000000 R10: dffffc0000000000 R11: fffffbfff1fa1890 R12: fffffffffffffffa R13: 1fffffffffffffff R14: 0000000000000000 R15: 1fffffffffffffff FS: 0000000000000000(0000) GS:ffff8881259f2000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c42ae87 CR3: 000000003af9e000 CR4: 00000000003526f0 Call Trace: usb_probe_interface+0x788/0xe50 drivers/usb/core/driver.c:399 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __device_attach_driver+0x270/0x410 drivers/base/dd.c:1026 bus_for_each_drv+0x25b/0x2f0 drivers/base/bus.c:500 __device_attach+0x2c7/0x450 drivers/base/dd.c:1098 device_initial_probe+0xa1/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x12d/0x220 drivers/base/bus.c:620 device_add+0x7d7/0xb80 drivers/base/core.c:3772 usb_set_configuration+0x1ad8/0x2180 drivers/usb/core/message.c:2268 usb_generic_driver_probe+0x8d/0x150 drivers/usb/core/generic.c:250 usb_probe_device+0x1c3/0x3b0 drivers/usb/core/driver.c:293 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __device_attach_driver+0x270/0x410 drivers/base/dd.c:1026 bus_for_each_drv+0x25b/0x2f0 drivers/base/bus.c:500 __device_attach+0x2c7/0x450 drivers/base/dd.c:1098 device_initial_probe+0xa1/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x12d/0x220 drivers/base/bus.c:620 device_add+0x7d7/0xb80 drivers/base/core.c:3772 usb_new_device+0x98d/0x1610 drivers/usb/core/hub.c:2695 hub_port_connect drivers/usb/core/hub.c:5567 [inline] hub_port_connect_change drivers/usb/core/hub.c:5707 [inline] port_event drivers/usb/core/hub.c:5871 [inline] hub_event+0x28cf/0x4cf0 drivers/usb/core/hub.c:5953 process_one_work+0xaaf/0x1480 kernel/workqueue.c:3379 process_scheduled_works kernel/workqueue.c:3462 [inline] worker_thread+0xb05/0x10d0 kernel/workqueue.c:3543 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:ihex_binrec_size include/linux/ihex.h:26 [inline] RIP: 0010:__ihex_next_binrec include/linux/ihex.h:35 [inline] RIP: 0010:ihex_validate_fw include/linux/ihex.h:54 [inline] RIP: 0010:request_ihex_firmware include/linux/ihex.h:74 [inline] RIP: 0010:emi26_load_firmware drivers/usb/misc/emi26.c:86 [inline] RIP: 0010:emi26_probe+0x283/0x1690 drivers/usb/misc/emi26.c:232 Code: ff 89 de e8 6f 64 97 00 85 db 0f 84 d9 01 00 00 e8 62 60 97 00 48 bb 00 00 00 00 00 fc ff df 49 8d 7e 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7e 05 48 89 f8 48 c1 e8 03 0f b6 04 RSP: 0018:ffffc90004c5ed20 EFLAGS: 00010247 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: 0000000000100000 RDX: ffffc9001a81d000 RSI: 000000000000e12b RDI: 0000000000000004 RBP: ffffc90004c5ee50 R08: 0000000000000000 R09: 0000000000000000 R10: dffffc0000000000 R11: fffffbfff1fa1890 R12: fffffffffffffffa R13: 1fffffffffffffff R14: 0000000000000000 R15: 1fffffffffffffff FS: 0000000000000000(0000) GS:ffff8881259f2000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c42ae87 CR3: 000000003af9e000 CR4: 00000000003526f0 ---------------- Code disassembly (best guess), 1 bytes skipped: 0: 89 de mov %ebx,%esi 2: e8 6f 64 97 00 call 0x976476 7: 85 db test %ebx,%ebx 9: 0f 84 d9 01 00 00 je 0x1e8 f: e8 62 60 97 00 call 0x976076 14: 48 bb 00 00 00 00 00 movabs $0xdffffc0000000000,%rbx 1b: fc ff df 1e: 49 8d 7e 04 lea 0x4(%r14),%rdi 22: 48 89 f8 mov %rdi,%rax 25: 48 c1 e8 03 shr $0x3,%rax * 29: 0f b6 04 18 movzbl (%rax,%rbx,1),%eax <-- trapping instruction 2d: 84 c0 test %al,%al 2f: 75 47 jne 0x78 31: 49 8d 7e 05 lea 0x5(%r14),%rdi 35: 48 89 f8 mov %rdi,%rax 38: 48 c1 e8 03 shr $0x3,%rax 3c: 0f .byte 0xf 3d: b6 04 mov $0x4,%dh