[Bug 1899633] Re: Repeated kernel warnings/stacktraces with kernel 5.4 and newer
Stefan Bader
1899633 at bugs.launchpad.net
Mon Oct 19 09:35:11 UTC 2020
The kernel check was added in [1] v5.4-rc1 by:
Author: Hans Verkuil <hverkuil-cisco at xs4all.nl>
Date: Tue Jul 23 04:21:25 2019 -0400
media: v4l2-dev/ioctl: require non-zero device_caps, verify sane querycap results
Now that all V4L2 drivers set device_caps in struct video_device, we can add
a check for this to ensure all future drivers fill this in.
Also verify that when the querycap ioctl is called the driver didn't mess
with the device_caps value and that capabilities is a superset of device_caps.
Signed-off-by: Hans Verkuil <hverkuil-cisco at xs4all.nl>
Reviewed-by: Sakari Ailus <sakari.ailus at linux.intel.com>
[hverkuil-cisco at xs4all.nl: fix too-long line]
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung at kernel.org>
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3c1350501c21db8e3b1a38d9e97db29694305c3b
** Patch added: "v2: clarify why upstreaming is not needed"
https://bugs.launchpad.net/ubuntu/+source/v4l2loopback/+bug/1899633/+attachment/5424119/+files/focal-proposed-fix.debdiff
** Patch removed: "focal-proposed-fix.debdiff"
https://bugs.launchpad.net/ubuntu/+source/v4l2loopback/+bug/1899633/+attachment/5421730/+files/focal-proposed-fix.debdiff
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1899633
Title:
Repeated kernel warnings/stacktraces with kernel 5.4 and newer
Status in v4l2loopback package in Ubuntu:
Fix Released
Status in v4l2loopback source package in Focal:
In Progress
Bug description:
Release: 20.04/Focal Fossa
[SRU Justification]
Impact: Starting with kernel version 5.4 the v4l2-core started to add
sanity checking on drivers when querying capabilities. First drivers
are not supposed to modify an initially set device_caps attribute. And
second, the returned set of capabilities must be a superset of those
in device_caps. The v4l2loopback module fails on both checks which
results in repeated warnings (with additional stack trace) starting
with:
- WARNING: CPU: 2 PID: 7234 at drivers/media/v4l2-core/v4l2-ioctl.c:1064 v4l_querycap+0x8f/0xa0 [videodev]
- WARNING: CPU: 2 PID: 7234 at drivers/media/v4l2-core/v4l2-ioctl.c:1069 v4l_querycap+0x8f/0xa0 [videodev]
Fix: The proposed fix adds compat code which stops modifying
device_caps after initial setup for kernel versions 5.4 and later.
Also for those versions the initial setup excludes
V4L2_CAP_VIDEO_CAPTURE and V4L2_CAP_VIDEO_OUTPUT as those capabilities
might be optionally set when calling v4l_querycap() to indicate
readyness.
Testcase: Inserting the DKMS module the following way should start showing the above warnings:
sudo modprobe v4l2loopback exclusive_caps=1
Once the fixed version is used, there should no longer be any warnings.
Regression Potential: The change affects the internal device_caps
variable only. If that is unexpectedly used by anything external (the
kernel code should be assumed to expect the modified form) the
loopback device might become unusable for recording/playback. I have
been using the modified driver for a while now as v4l2sink in obs-
studio and saw now issues.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/v4l2loopback/+bug/1899633/+subscriptions
More information about the Ubuntu-sponsors
mailing list