Hi, I had the following when rtl2832_sdr was loading: Linux version 6.13.0-rc2 (root@am64) (gcc-14 (Debian 14.2.0-8) 14.2.0, GNU ld (GNU Binutils for Debian) 2.43.50.20241204) #6236 SMP PREEMPT_RT Mon Dec 9 10:25:04 ACDT 2024 usb 9-5: new low-speed USB device number 2 using ohci-pci usb 4-3: New USB device found, idVendor=0bda, idProduct=2838, bcdDevice= 1.00 usb 4-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 4-3: Product: RTL2838UHIDIR usb 4-3: Manufacturer: Realtek usb 4-3: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state usb 4-3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer dvbdev: DVB: registering new adapter (Realtek RTL2832U reference design) usb 4-3: media controller created dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered. i2c i2c-5: Added multiplexed i2c bus 6 rtl2832 5-0010: Realtek RTL2832 successfully attached usb 4-3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))... dvbdev: dvb_create_media_entity: media entity 'Realtek RTL2832 (DVB-T)' registered. i2c i2c-6: fc0012: Fitipower FC0012 successfully identified videodev: Linux video capture interface: v2.00 [drm] ib test on ring 6 succeeded ------------[ cut here ]------------ WARNING: CPU: 1 PID: 453 at drivers/media/common/videobuf2/videobuf2-core.c:2661 vb2_core_queue_init+0x272/0x280 [videobuf2_common] Modules linked in: rtl2832_sdr videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev fc0012 rtl2832 i2c_mux dvb_usb_rtl28xxu(+) dvb_usb_v2 dvb_core mc radeon(+) snd_emu10k1_synth snd_emux_synth snd_seq_midi_emul snd_seq_virmidi snd_seq_midi snd_seq_midi_event drm_ttm_helper snd_seq ttm snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg drm_client_lib drm_suballoc_helper snd_emu10k1 drm_display_helper snd_hda_codec edac_mce_amd sha512_ssse3 sha512_generic sha256_ssse3 snd_util_mem sha1_ssse3 drm_kms_helper aesni_intel snd_ac97_codec snd_hda_core ac97_bus snd_rawmidi snd_seq_device snd_hwdep k10temp drm gf128mul snd_pcm crypto_simd cryptd pcspkr at24 evdev serio_raw acpi_cpufreq emu10k1_gp gameport regmap_i2c i2c_algo_bit snd_timer video snd wmi soundcore sp5100_tco button ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage hid_generic usbhid hid sg sr_mod cdrom sd_mod ata_generic firewire_ohci ahci crc32_pclmul crc32c_intel firewire_core crc_itu_t pata_atiixp xhci_pci_renesas libahci ohci_pci i2c_piix4 i2c_smbus xhci_pci ehci_pci ohci_hcd libata ehci_hcd xhci_hcd r8169 realtek mdio_devres scsi_mod usbcore libphy scsi_common usb_common CPU: 1 UID: 0 PID: 453 Comm: udevd Not tainted 6.13.0-rc2 #6236 Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./F2A78M-HD2, BIOS F2 05/28/2014 RIP: 0010:vb2_core_queue_init+0x272/0x280 [videobuf2_common] Code: 90 0f 1f 80 00 00 00 00 eb be 0f 0b eb ba 0f 0b 90 0f 1f 80 00 00 00 00 eb ae 0f 0b eb aa 0f 0b 90 0f 1f 80 00 00 00 00 eb 9e <0f> 0b eb 9a 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 RSP: 0018:ffffb26cc13d3780 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff90e6856d85a0 RCX: ffffffffc0d03320 RDX: 0000000000000001 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff90e6837ada80 R08: 0000000000001000 R09: 0000000000000000 R10: ffff90e6856d8000 R11: 6f7475612e312e72 R12: 0000000000000000 R13: ffff90e6856d8000 R14: ffff90e6856d8790 R15: ffff90e6856d85a0 FS: 00007fbae6471840(0000) GS:ffff90e9af880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f6c22049e76 CR3: 0000000102ba4000 CR4: 00000000000406f0 Call Trace: <TASK> ? vb2_core_queue_init+0x272/0x280 [videobuf2_common] ? __warn.cold+0xad/0x111 ? vb2_core_queue_init+0x272/0x280 [videobuf2_common] ? report_bug+0x10e/0x1a0 ? handle_bug+0x53/0x90 ? exc_invalid_op+0x1f/0x90 ? asm_exc_invalid_op+0x16/0x20 ? vb2_core_queue_init+0x272/0x280 [videobuf2_common] rtl2832_sdr_probe+0x188/0x490 [rtl2832_sdr] ? __pfx___device_attach_driver+0x10/0x10 platform_probe+0x4d/0xa0 ? driver_sysfs_add+0x73/0xd0 really_probe+0xde/0x350 ? pm_runtime_barrier+0x61/0xb0 __driver_probe_device+0x78/0x110 driver_probe_device+0x2d/0xc0 __device_attach_driver+0x8c/0x100 bus_for_each_drv+0x86/0xe0 __device_attach+0xb0/0x1b0 bus_probe_device+0x92/0xb0 device_add+0x654/0x870 ? dev_set_name+0x43/0x50 platform_device_add+0xe6/0x250 platform_device_register_full+0x117/0x1a0 rtl2832u_tuner_attach+0x2e0/0x9e0 [dvb_usb_rtl28xxu] dvb_usbv2_probe.cold+0xba6/0xccd [dvb_usb_v2] ? __pm_runtime_set_status+0x19b/0x2e0 usb_probe_interface+0x16e/0x360 [usbcore] really_probe+0xde/0x350 ? pm_runtime_barrier+0x61/0xb0 ? __pfx___driver_attach+0x10/0x10 __driver_probe_device+0x78/0x110 driver_probe_device+0x2d/0xc0 __driver_attach+0xc9/0x1c0 bus_for_each_dev+0x6a/0xb0 ? migrate_enable+0xbf/0xf0 bus_add_driver+0x139/0x220 driver_register+0x6e/0xc0 usb_register_driver+0x93/0x140 [usbcore] ? __pfx_rtl28xxu_usb_driver_init+0x10/0x10 [dvb_usb_rtl28xxu] do_one_initcall+0x42/0x210 ? __kmalloc_cache_noprof+0x98/0x240 do_init_module+0x60/0x210 init_module_from_file+0x89/0xc0 __x64_sys_finit_module+0x143/0x390 do_syscall_64+0x47/0x110 entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fbae62a25b9 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 8b 0d 37 88 0d 00 f7 d8 64 89 01 48 RSP: 002b:00007ffdcfa41df8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000055a9baaadff0 RCX: 00007fbae62a25b9 RDX: 0000000000000000 RSI: 00007fbae63a2541 RDI: 000000000000000d RBP: 0000000000000000 R08: 00007fbae637bad0 R09: 000055a9baaa2540 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fbae63a2541 R13: 0000000000020000 R14: 000055a9baab55f0 R15: 0000000000000000 </TASK> ---[ end trace 0000000000000000 ]--- rtl2832_sdr rtl2832_sdr.1.auto: Could not initialize vb2 queue rtl2832_sdr rtl2832_sdr.1.auto: probe with driver rtl2832_sdr failed with error -22 usb 4-3: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected usbcore: registered new interface driver dvb_usb_rtl28xxu It was git-bisected back to: commit 8fcd2795d22a7b6aa0671aaa67a74c0f776707af Author: Hans Verkuil <hverkuil@xxxxxxxxx> Date: Mon Oct 14 17:06:33 2024 +0200 media: rtl2832_sdr: drop vb2_ops_wait_prepare/finish Since commit 88785982a19d ("media: vb2: use lock if wait_prepare/finish are NULL") it is no longer needed to set the wait_prepare/finish vb2_ops callbacks as long as the lock field in vb2_queue is set. Since the vb2_ops_wait_prepare/finish callbacks already rely on that field, we can safely drop these callbacks. This simplifies the code and this is a step towards the goal of deleting these callbacks. Signed-off-by: Hans Verkuil <hverkuil@xxxxxxxxx> diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c b/drivers/media/dvb-frontends/rtl2832_sdr.c index 922c1662f1f0..05254d8717db 100644 --- a/drivers/media/dvb-frontends/rtl2832_sdr.c +++ b/drivers/media/dvb-frontends/rtl2832_sdr.c @@ -947,8 +947,6 @@ static const struct vb2_ops rtl2832_sdr_vb2_ops = { .buf_queue = rtl2832_sdr_buf_queue, .start_streaming = rtl2832_sdr_start_streaming, .stop_streaming = rtl2832_sdr_stop_streaming, - .wait_prepare = vb2_ops_wait_prepare, - .wait_finish = vb2_ops_wait_finish, }; static int rtl2832_sdr_g_tuner(struct file *file, void *priv, Reversing this patch to the current Linus git head kernel resulted in an apparently successful load: [ 19.678284] rtl2832 5-0010: Realtek RTL2832 successfully attached [ 20.477909] rtl2832_sdr rtl2832_sdr.1.auto: Registered as swradio0 [ 20.477916] rtl2832_sdr rtl2832_sdr.1.auto: Realtek RTL2832 SDR attached [ 20.477919] rtl2832_sdr rtl2832_sdr.1.auto: SDR API is still slightly experimental and functionality changes may follow I have not tested the sdr functionality though. Arthur Marsh.