Bug 1088640 - Kernel WARNING in __video_register_device
Kernel WARNING in __video_register_device
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel
Current
Other Other
: P5 - None : Normal (vote)
: ---
Assigned To: E-mail List
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2018-04-09 10:06 UTC by Johannes Thumshirn
Modified: 2022-07-21 17:22 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Thumshirn 2018-04-09 10:06:02 UTC
I have the following new splat in dmesg when booting (kernel is 4.16.0-3.g2592f12-default from Kernel:stable, user-space is Leap 15 Beta):

[   14.924038] rmi4_smbus 9-002c: registering SMbus-connected sensor
[   14.978310] rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, product: TM3075-002, fw id: 1741313
[   15.031284] WARNING: CPU: 0 PID: 988 at ../drivers/media/v4l2-core/v4l2-dev.c:945 __video_register_device+0x478/0x510 [videodev]
[   15.031286] Modules linked in: rmi_smbus(+) rmi_core videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 bnep videodev videobuf2_common btusb btrtl btbcm btintel bluetooth ecdh_generic msr arc4 snd_hda_codec_realtek snd_hda_codec_hdmi iwlmvm snd_hda_codec_generic mac80211 intel_rapl mei_wdt x86_pkg_temp_thermal intel_powerclamp coretemp iTCO_wdt kvm_intel iTCO_vendor_support wmi_bmof snd_hda_intel kvm iwlwifi snd_hda_codec snd_hda_core snd_hwdep snd_pcm rtsx_pci_ms irqbypass cfg80211 e1000e memstick mei_me snd_timer thinkpad_acpi i2c_i801 intel_pch_thermal pcspkr ptp joydev rfkill shpchp lpc_ich mei ac battery snd pps_core thermal wmi soundcore btrfs xor zstd_decompress zstd_compress xxhash raid6_pq dm_crypt hid_generic usbhid rtsx_pci_sdmmc crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel
[   15.031334]  mmc_core i915 aesni_intel aes_x86_64 crypto_simd cryptd glue_helper i2c_algo_bit xhci_pci serio_raw drm_kms_helper ehci_pci xhci_hcd ehci_hcd syscopyarea sysfillrect sysimgblt fb_sys_fops usbcore rtsx_pci drm video button dm_mirror dm_region_hash dm_log sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua
[   15.031355] CPU: 0 PID: 988 Comm: systemd-udevd Not tainted 4.16.0-3.g2592f12-default #1 openSUSE Tumbleweed (unreleased)
[   15.031356] Hardware name: LENOVO 20CL001LMH/20CL001LMH, BIOS N10ET33W (1.12 ) 04/06/2015
[   15.031362] RIP: 0010:__video_register_device+0x478/0x510 [videodev]
[   15.031363] RSP: 0000:ffffb8f601aaf7c0 EFLAGS: 00010202
[   15.031365] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[   15.031366] RDX: ffffffffc0d02c80 RSI: ffffffffffffffff RDI: ffffffffc0d02c80
[   15.031367] RBP: ffffffffc0d1f900 R08: ffffffffc0d1f900 R09: 0000000000000000
[   15.031368] R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffc0cf24b2
[   15.031369] R13: 0000000000000001 R14: ffff97b9500101b8 R15: ffff97b950010578
[   15.031371] FS:  00007f23c8c08d40(0000) GS:ffff97b96dc00000(0000) knlGS:0000000000000000
[   15.031372] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   15.031373] CR2: 00007f4af4af5000 CR3: 000000021403e001 CR4: 00000000003606f0
[   15.031379] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   15.031380] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   15.031381] Call Trace:
[   15.031388]  rmi_f54_probe+0x408/0x440 [rmi_core]
[   15.031393]  driver_probe_device+0x30b/0x480
[   15.031395]  ? __driver_attach+0xe0/0xe0
[   15.031397]  bus_for_each_drv+0x59/0x90
[   15.031399]  __device_attach+0xb5/0x130
[   15.031401]  bus_probe_device+0x8a/0xa0
[   15.031406]  device_add+0x43c/0x670
[   15.031409]  rmi_register_function+0x5e/0xd0 [rmi_core]
[   15.031412]  rmi_create_function+0x113/0x1a0 [rmi_core]
[   15.031415]  ? rmi_irq_fn+0xd0/0xd0 [rmi_core]
[   15.031418]  rmi_scan_pdt+0xc2/0x1a0 [rmi_core]
[   15.031422]  rmi_init_functions+0x49/0x100 [rmi_core]
[   15.031425]  rmi_driver_probe+0x14a/0x3c0 [rmi_core]
[   15.031427]  driver_probe_device+0x30b/0x480
[   15.031429]  ? __driver_attach+0xe0/0xe0
[   15.031431]  bus_for_each_drv+0x59/0x90
[   15.031433]  __device_attach+0xb5/0x130
[   15.031435]  bus_probe_device+0x8a/0xa0
[   15.031438]  device_add+0x43c/0x670
[   15.031441]  rmi_register_transport_device+0x7e/0xf0 [rmi_core]
[   15.031445]  rmi_smb_probe+0x1ca/0x275 [rmi_smbus]
[   15.031447]  ? rmi_smb_resume+0x70/0x70 [rmi_smbus]
[   15.031451]  i2c_device_probe+0x1e3/0x270
[   15.031453]  driver_probe_device+0x30b/0x480
[   15.031455]  __driver_attach+0xb8/0xe0
[   15.031456]  ? driver_probe_device+0x480/0x480
[   15.031457]  ? driver_probe_device+0x480/0x480
[   15.031460]  bus_for_each_dev+0x65/0x90
[   15.031462]  bus_add_driver+0x161/0x260
[   15.031464]  ? 0xffffffffc0a3a000
[   15.031466]  driver_register+0x57/0xc0
[   15.031467]  ? 0xffffffffc0a3a000
[   15.031469]  i2c_register_driver+0x3d/0x90
[   15.031471]  ? 0xffffffffc0a3a000
[   15.031474]  do_one_initcall+0x4e/0x192
[   15.031476]  ? __vunmap+0x6d/0xb0
[   15.031480]  do_init_module+0x5b/0x20a
[   15.031482]  load_module+0x19ad/0x1f30
[   15.031486]  ? SYSC_finit_module+0xb7/0xd0
[   15.031488]  SYSC_finit_module+0xb7/0xd0
[   15.031491]  do_syscall_64+0x76/0x140
[   15.031493]  entry_SYSCALL_64_after_hwframe+0x42/0xb7
[   15.031495] RIP: 0033:0x7f23c7a79139
[   15.031496] RSP: 002b:00007ffeb3ace5f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[   15.031498] RAX: ffffffffffffffda RBX: 0000559fbb0ed7f0 RCX: 00007f23c7a79139
[   15.031498] RDX: 0000000000000000 RSI: 00007f23c83b583d RDI: 0000000000000014
[   15.031499] RBP: 00007f23c83b583d R08: 0000000000000000 R09: 0000559fbb099310
[   15.031500] R10: 0000000000000014 R11: 0000000000000246 R12: 0000000000020000
[   15.031501] R13: 0000559fbb129a60 R14: 0000000000000000 R15: 0000000003938700
[   15.031503] Code: 40 c4 89 e8 5b 5d 41 5c 41 5d 41 5e c3 0f 0b bd ea ff ff ff 5b 89 e8 5d 41 5c 41 5d 41 5e c3 0f 0b bd ea ff ff ff e9 84 fe ff ff <0f> 0b e9 d8 fc ff ff 48 c7 c6 30 09 cf c0 48 c7 c7 bc 24 cf c0 
[   15.031536] ---[ end trace 18d3bed42e0ab8d6 ]---
[   15.031540] BUG: unable to handle kernel NULL pointer dereference at 00000000000002f1
[   15.031548] IP: __video_register_device+0x1ab/0x510 [videodev]
[   15.031552] PGD 0 P4D 0 
[   15.031556] Oops: 0000 [#1] PREEMPT SMP PTI
[   15.031558] Modules linked in: rmi_smbus(+) rmi_core videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 bnep videodev videobuf2_common btusb btrtl btbcm btintel bluetooth ecdh_generic msr arc4 snd_hda_codec_realtek snd_hda_codec_hdmi iwlmvm snd_hda_codec_generic mac80211 intel_rapl mei_wdt x86_pkg_temp_thermal intel_powerclamp coretemp iTCO_wdt kvm_intel iTCO_vendor_support wmi_bmof snd_hda_intel kvm iwlwifi snd_hda_codec snd_hda_core snd_hwdep snd_pcm rtsx_pci_ms irqbypass cfg80211 e1000e memstick mei_me snd_timer thinkpad_acpi i2c_i801 intel_pch_thermal pcspkr ptp joydev rfkill shpchp lpc_ich mei ac battery snd pps_core thermal wmi soundcore btrfs xor zstd_decompress zstd_compress xxhash raid6_pq dm_crypt hid_generic usbhid rtsx_pci_sdmmc crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel
[   15.031598]  mmc_core i915 aesni_intel aes_x86_64 crypto_simd cryptd glue_helper i2c_algo_bit xhci_pci serio_raw drm_kms_helper ehci_pci xhci_hcd ehci_hcd syscopyarea sysfillrect sysimgblt fb_sys_fops usbcore rtsx_pci drm video button dm_mirror dm_region_hash dm_log sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua
[   15.031616] CPU: 0 PID: 988 Comm: systemd-udevd Tainted: G        W        4.16.0-3.g2592f12-default #1 openSUSE Tumbleweed (unreleased)
[   15.031618] Hardware name: LENOVO 20CL001LMH/20CL001LMH, BIOS N10ET33W (1.12 ) 04/06/2015
[   15.031623] RIP: 0010:__video_register_device+0x1ab/0x510 [videodev]
[   15.031625] RSP: 0000:ffffb8f601aaf7c0 EFLAGS: 00010202
[   15.031628] RAX: ffffffffc0d02c80 RBX: 0000000000000000 RCX: ffffffffc0d03480
[   15.031629] RDX: 0000000000000001 RSI: ffff97b950010118 RDI: ffffffffc0d02c80
[   15.031631] RBP: ffffffffc0d1f900 R08: ffffffffc0d1f900 R09: 0000000000000000
[   15.031633] R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffc0cf24b2
[   15.031635] R13: 0000000000000001 R14: ffff97b9500101b8 R15: ffff97b950010578
[   15.031637] FS:  00007f23c8c08d40(0000) GS:ffff97b96dc00000(0000) knlGS:0000000000000000
[   15.031639] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   15.031641] CR2: 00000000000002f1 CR3: 000000021403e001 CR4: 00000000003606f0
[   15.031643] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   15.031644] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   15.031646] Call Trace:
[   15.031651]  rmi_f54_probe+0x408/0x440 [rmi_core]
[   15.031654]  driver_probe_device+0x30b/0x480
[   15.031657]  ? __driver_attach+0xe0/0xe0
[   15.031660]  bus_for_each_drv+0x59/0x90
[   15.031662]  __device_attach+0xb5/0x130
[   15.031665]  bus_probe_device+0x8a/0xa0
[   15.031668]  device_add+0x43c/0x670
[   15.031672]  rmi_register_function+0x5e/0xd0 [rmi_core]
[   15.031675]  rmi_create_function+0x113/0x1a0 [rmi_core]
[   15.031679]  ? rmi_irq_fn+0xd0/0xd0 [rmi_core]
[   15.031683]  rmi_scan_pdt+0xc2/0x1a0 [rmi_core]
[   15.031687]  rmi_init_functions+0x49/0x100 [rmi_core]
[   15.031690]  rmi_driver_probe+0x14a/0x3c0 [rmi_core]
[   15.031694]  driver_probe_device+0x30b/0x480
[   15.031696]  ? __driver_attach+0xe0/0xe0
[   15.031699]  bus_for_each_drv+0x59/0x90
[   15.031702]  __device_attach+0xb5/0x130
[   15.031704]  bus_probe_device+0x8a/0xa0
[   15.031707]  device_add+0x43c/0x670
[   15.031710]  rmi_register_transport_device+0x7e/0xf0 [rmi_core]
[   15.031713]  rmi_smb_probe+0x1ca/0x275 [rmi_smbus]
[   15.031715]  ? rmi_smb_resume+0x70/0x70 [rmi_smbus]
[   15.031717]  i2c_device_probe+0x1e3/0x270
[   15.031719]  driver_probe_device+0x30b/0x480
[   15.031721]  __driver_attach+0xb8/0xe0
[   15.031722]  ? driver_probe_device+0x480/0x480
[   15.031724]  ? driver_probe_device+0x480/0x480
[   15.031726]  bus_for_each_dev+0x65/0x90
[   15.031728]  bus_add_driver+0x161/0x260
[   15.031729]  ? 0xffffffffc0a3a000
[   15.031731]  driver_register+0x57/0xc0
[   15.031732]  ? 0xffffffffc0a3a000
[   15.031734]  i2c_register_driver+0x3d/0x90
[   15.031736]  ? 0xffffffffc0a3a000
[   15.031737]  do_one_initcall+0x4e/0x192
[   15.031739]  ? __vunmap+0x6d/0xb0
[   15.031741]  do_init_module+0x5b/0x20a
[   15.031743]  load_module+0x19ad/0x1f30
[   15.031747]  ? SYSC_finit_module+0xb7/0xd0
[   15.031748]  SYSC_finit_module+0xb7/0xd0
[   15.031751]  do_syscall_64+0x76/0x140
[   15.031753]  entry_SYSCALL_64_after_hwframe+0x42/0xb7
[   15.031754] RIP: 0033:0x7f23c7a79139
[   15.031755] RSP: 002b:00007ffeb3ace5f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[   15.031757] RAX: ffffffffffffffda RBX: 0000559fbb0ed7f0 RCX: 00007f23c7a79139
[   15.031758] RDX: 0000000000000000 RSI: 00007f23c83b583d RDI: 0000000000000014
[   15.031759] RBP: 00007f23c83b583d R08: 0000000000000000 R09: 0000559fbb099310
[   15.031760] R10: 0000000000000014 R11: 0000000000000246 R12: 0000000000020000
[   15.031761] R13: 0000559fbb129a60 R14: 0000000000000000 R15: 0000000003938700
[   15.031763] Code: c7 05 4e 49 02 00 00 00 00 00 48 8d 88 00 08 00 00 eb 09 48 83 c0 08 48 39 c1 74 31 48 8b 10 48 85 d2 74 ef 49 8b b6 f0 02 00 00 <48> 39 b2 f0 02 00 00 75 df 48 63 92 50 03 00 00 f0 48 0f ab 15 
[   15.031788] RIP: __video_register_device+0x1ab/0x510 [videodev] RSP: ffffb8f601aaf7c0
[   15.031789] CR2: 00000000000002f1
[   15.031791] ---[ end trace 18d3bed42e0ab8d7 ]---
[   15.268971] uvcvideo: Found UVC 1.00 device Integrated Camera (04ca:703c)

The WARNING comes from the following code:

        vdev->minor = i + minor_offset;
        vdev->num = nr;
        devnode_set(vdev);

        /* Should not happen since we thought this minor was free */
        WARN_ON(video_device[vdev->minor] != NULL);
        vdev->index = get_index(vdev);
        video_device[vdev->minor] = vdev;
        mutex_unlock(&videodev_lock);

This looks like a regression from:
4839c58f034a media: v4l2-dev: convert VFL_TYPE_* into an enum

as minor_offset comes from an evaluation in:

        switch (type) {
        case VFL_TYPE_GRABBER:
                minor_offset = 0;
                minor_cnt = 64;
                break;
        case VFL_TYPE_RADIO:
                minor_offset = 64;
                minor_cnt = 64;
                break;
        case VFL_TYPE_VBI:
                minor_offset = 224;
                minor_cnt = 32;
                break;
        default:
                minor_offset = 128;
                minor_cnt = 64;
                break;
        }

Note: I'm also missing my internal trackpad with 4.16.x (worked with 4.15) and suspect this being a follow up issue (but not yet confirmed).
Comment 1 Takashi Iwai 2018-04-09 10:20:32 UTC
Likely this one:
  https://www.spinics.net/lists/intel-gfx/msg161294.html
Comment 2 Takashi Iwai 2018-04-09 10:22:42 UTC
The media upstream tree already contains the fix:
a95845ba184b854106972f5d8f50354c2d272c06
    media: v4l2-core: fix size of devnode_nums[] bitarray
Comment 3 Takashi Iwai 2018-04-09 10:26:39 UTC
... and now backporting to stable and master branch.
Comment 4 Takashi Iwai 2018-04-09 10:30:17 UTC
The fix was pushed to both branches.
Comment 5 Johannes Thumshirn 2018-04-09 10:57:53 UTC
Thanks for the quick turn around. Testing it once it's build
Comment 6 Johannes Thumshirn 2018-04-16 07:11:45 UTC
The splat's gone with 4.16.1-2.g096b538-default and sibling usb busses are alive again.

Thanks for the quick fix Takashi.