diff --git a/arch/daedalus-v4l2-dkms/PKGBUILD b/arch/daedalus-v4l2-dkms/PKGBUILD index b26432949..75f52969c 100644 --- a/arch/daedalus-v4l2-dkms/PKGBUILD +++ b/arch/daedalus-v4l2-dkms/PKGBUILD @@ -16,14 +16,17 @@ pkgname=daedalus-v4l2-dkms _module=daedalus_v4l2 -# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon -# bit-versioned together so the chardev wire protocol stays in sync. -# PROTO_VERSION 0 → 1 at this pin (H.264 B-frame reorder fix); must -# install both packages atomically. -_commit=79256dc7ef41f83873ca9c23db20f5888858e65d +# Kernel module-only bump to 6ffe92b — fixes the panic regression +# introduced by 79256dc's split-completion design (daedalus-v4l2#8): +# claim src/dst from m2m's rdy_queue at device_run time, not at +# buf_done; otherwise a parked dst_buf gets re-picked by the next +# 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 -pkgrel=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix) +pkgver=0.1.0.r30.6ffe92b +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" arch=('any') url="https://git.reauktion.de/reauktion/daedalus-v4l2" diff --git a/debian/daedalus-v4l2-dkms/build-deb.sh b/debian/daedalus-v4l2-dkms/build-deb.sh index b10f4e7f8..927c29a8a 100755 --- a/debian/daedalus-v4l2-dkms/build-deb.sh +++ b/debian/daedalus-v4l2-dkms/build-deb.sh @@ -14,9 +14,9 @@ # Sibling userspace package: ../daedalus-v4l2/build-deb.sh set -euo pipefail -UPSTREAM_COMMIT=79256dc7ef41f83873ca9c23db20f5888858e65d -PKGVER=0.1.0+r28+g79256dc -PKGREL=1 # reset for new upstream pin (79256dc — H.264 B-frame reorder fix); still carries the #64 multi-kernel postinst fix +UPSTREAM_COMMIT=6ffe92bcacccbf228c398a10c21a6818f07c67d2 +PKGVER=0.1.0+r30+g6ffe92b +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 HERE=$(dirname "$(readlink -f "$0")") diff --git a/debian/daedalus-v4l2-dkms/debian/changelog b/debian/daedalus-v4l2-dkms/debian/changelog index f825493e8..1f745d752 100644 --- a/debian/daedalus-v4l2-dkms/debian/changelog +++ b/debian/daedalus-v4l2-dkms/debian/changelog @@ -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 Thu, 21 May 2026 14:00:00 +0000 + daedalus-v4l2-dkms (0.1.0+r28+g79256dc-1) bookworm trixie; urgency=medium * Bump to 79256dc — H.264 B-frame display reorder fix (closes