daedalus-v4l2-dkms: 79256dc -> 6ffe92b — fix kernel panic from #7

Kernel-only bump.  Fixes the hard-reboot regression introduced by
the daedalus-v4l2#7 split-completion design and observed on higgs
(Pi CM5) during the first mpv vaapi-copy playback of 720p H.264:
device_run now removes src + dst from m2m_ctx's rdy_queue at the
moment it picks them up, not at buf_done time.  Without this, a
parked dst_buf (waiting for libavcodec's display-order release)
stayed in the rdy_queue and got re-picked by the next device_run
after SRC_CONSUMED's job_finish released the scheduler — two
inflight entries on the same vb2_buffer, later HAS_PIXELS calls
list_del on an already-detached list_head, panic.

DAEDALUS_PROTO_VERSION stays at 1 — daemon (userspace
daedalus-v4l2) need NOT bump in lockstep with this DKMS update.
The existing daedalus-v4l2 0.1.0+r28+g79256dc is wire-compatible
with daedalus-v4l2-dkms 0.1.0+r30+g6ffe92b.

Refs:
  * reauktion/daedalus-v4l2#8
This commit is contained in:
2026-05-21 13:56:42 +02:00
parent eb89f12c3e
commit a0be2dcc9f
3 changed files with 35 additions and 10 deletions
+10 -7
View File
@@ -16,14 +16,17 @@
pkgname=daedalus-v4l2-dkms pkgname=daedalus-v4l2-dkms
_module=daedalus_v4l2 _module=daedalus_v4l2
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon # Kernel module-only bump to 6ffe92b — fixes the panic regression
# bit-versioned together so the chardev wire protocol stays in sync. # introduced by 79256dc's split-completion design (daedalus-v4l2#8):
# PROTO_VERSION 0 → 1 at this pin (H.264 B-frame reorder fix); must # claim src/dst from m2m's rdy_queue at device_run time, not at
# install both packages atomically. # buf_done; otherwise a parked dst_buf gets re-picked by the next
_commit=79256dc7ef41f83873ca9c23db20f5888858e65d # device_run after SRC_CONSUMED's job_finish releases the scheduler.
# PROTO_VERSION stays at 1; daedalus-v4l2 (daemon) need NOT bump in
# lockstep — daemon ABI is unchanged.
_commit=6ffe92bcacccbf228c398a10c21a6818f07c67d2
pkgver=0.1.0.r28.79256dc pkgver=0.1.0.r30.6ffe92b
pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix) pkgrel=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic)
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5" pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
arch=('any') arch=('any')
url="https://git.reauktion.de/reauktion/daedalus-v4l2" url="https://git.reauktion.de/reauktion/daedalus-v4l2"
+3 -3
View File
@@ -14,9 +14,9 @@
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh # Sibling userspace package: ../daedalus-v4l2/build-deb.sh
set -euo pipefail set -euo pipefail
UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d UPSTREAM_COMMIT=6ffe92bcacccbf228c398a10c21a6818f07c67d2
PKGVER=0.1.0+r28+g79256dc PKGVER=0.1.0+r30+g6ffe92b
PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix); still carries the #64 multi-kernel postinst fix PKGREL=1 # reset for new upstream pin (6ffe92b — claim src/dst at device_run, fixes #8 panic); still carries the #64 multi-kernel postinst fix
MODULE_NAME=daedalus_v4l2 MODULE_NAME=daedalus_v4l2
HERE=$(dirname "$(readlink -f "$0")") HERE=$(dirname "$(readlink -f "$0")")
+22
View File
@@ -1,3 +1,25 @@
daedalus-v4l2-dkms (0.1.0+r30+g6ffe92b-1) bookworm trixie; urgency=medium
* Bump to 6ffe92b — fixes the kernel panic regression introduced
by 79256dc's split-completion design (closes daedalus-v4l2#8).
`device_run` now removes both src + dst from `m2m_ctx`'s
rdy_queue at pickup time, not at `buf_done` time. Without
this, after `SRC_CONSUMED`'s `job_finish` released the m2m
scheduler, the NEXT `device_run` saw the still-queued parked
dst_buf and paired it with a fresh src — two inflight entries
referencing the same vb2_buffer, the later `HAS_PIXELS`
triggered list_del on an already-detached list_head, smashing
the rdy_queue → hard reboot on Pi CM5 during `mpv vaapi-copy`
playback of 720p H.264 (2026-05-21).
* Wire protocol unchanged — DAEDALUS_PROTO_VERSION stays at 1.
Daemon (userspace daedalus-v4l2 package) need NOT bump in
lockstep with this DKMS update; the existing
daedalus-v4l2 0.1.0+r28+g79256dc is wire-compatible with
daedalus-v4l2-dkms 0.1.0+r30+g6ffe92b.
* Carries forward the #64 multi-kernel postinst fix.
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 14:00:00 +0000
daedalus-v4l2-dkms (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium daedalus-v4l2-dkms (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium
* Bump to 79256dc — H.264 B-frame display reorder fix (closes * Bump to 79256dc — H.264 B-frame display reorder fix (closes